[merkaartor] 01/08: Imported Upstream version 0.18.3~rc1

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Mon Jun 6 20:54:40 UTC 2016


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

sebastic pushed a commit to branch master
in repository merkaartor.

commit 44d208a2e16081e794fab1ed5e3f8462ee5e80e2
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Mon Jun 6 20:11:24 2016 +0200

    Imported Upstream version 0.18.3~rc1
---
 .drone.sec                                         |    1 +
 .drone.yml                                         |   30 +
 .travis.yml                                        |   37 +-
 .tx/config                                         |    9 +
 3rdparty/quazip-0.7/NEWS.txt                       |    2 +-
 3rdparty/quazip-0.7/doc/html/classQuaZip.html      |    2 +-
 .../doc/html/structQuaZipFileInfo64.html           |    2 +-
 3rdparty/quazip-0.7/doc/latex/classQuaZip.tex      |    2 +-
 .../doc/latex/structQuaZipFileInfo64.tex           |    2 +-
 3rdparty/quazip-0.7/quazip/quazip.h                |    2 +-
 3rdparty/quazip-0.7/quazip/quazipfile.cpp          |    2 +-
 AUTHORS                                            |    9 +-
 CHANGELOG                                          |   88 +-
 COMPILE.md                                         |  222 +
 HACKING                                            |   11 -
 HACKING.md                                         |   61 +
 INSTALL                                            |  137 -
 Icons/128x128/merkaartor.png                       |  Bin 0 -> 33958 bytes
 Icons/16x16/merkaartor.png                         |  Bin 0 -> 1030 bytes
 Icons/192x192/merkaartor.png                       |  Bin 0 -> 68817 bytes
 Icons/22x22/merkaartor.png                         |  Bin 0 -> 1624 bytes
 Icons/24x24/merkaartor.png                         |  Bin 0 -> 1849 bytes
 Icons/256x256/merkaartor.png                       |  Bin 0 -> 113391 bytes
 Icons/32x32/merkaartor.png                         |  Bin 0 -> 2972 bytes
 Icons/36x36/merkaartor.png                         |  Bin 0 -> 3640 bytes
 Icons/40x40/merkaartor.png                         |  Bin 0 -> 4364 bytes
 Icons/42x42/merkaartor.png                         |  Bin 0 -> 4746 bytes
 Icons/512x512/merkaartor.png                       |  Bin 0 -> 384401 bytes
 Icons/64x64/merkaartor.png                         |  Bin 0 -> 10057 bytes
 Icons/72x72/merkaartor.png                         |  Bin 0 -> 12385 bytes
 Icons/80x80/merkaartor.png                         |  Bin 0 -> 14910 bytes
 Icons/8x8/merkaartor.png                           |  Bin 0 -> 555 bytes
 Icons/96x96/merkaartor.png                         |  Bin 0 -> 20628 bytes
 README.md                                          |   45 +
 Styles/Merkaartor.mas                              | 1085 +++
 TODO                                               |    5 -
 ci/travis-linux-install.sh                         |   13 +
 ci/travis-linux-script.sh                          |    6 +
 ci/travis-osx-install.sh                           |   27 +
 ci/travis-osx-script.sh                            |   46 +
 interfaces/IImageManager.h                         |    4 +-
 .../MCadastreFranceBackground/CadastreFrance.cpp   |    2 +-
 .../MCadastreFranceBackground/CadastreFrance.h     |    2 +-
 plugins/background/MGdalBackground/GdalAdapter.cpp |    2 +-
 plugins/background/MGdalBackground/GdalAdapter.h   |    6 +-
 .../MGeoTiffBackground/GeoTiffAdapter.cpp          |    2 +-
 .../background/MGeoTiffBackground/GeoTiffAdapter.h |    6 +-
 .../MGosmoreBackground/GosmoreAdapter.cpp          |    5 +-
 .../background/MGosmoreBackground/GosmoreAdapter.h |    8 +-
 .../MMsBingMapBackground/msbingmapadapter.h        |    4 +-
 .../background/MNavitBackground/NavitAdapter.cpp   |    2 +-
 plugins/background/MNavitBackground/NavitAdapter.h |    8 +-
 plugins/background/MNavitBackground/NavitBin.cpp   |    5 +-
 plugins/background/MNavitBackground/NavitZip.cpp   |    6 +-
 .../MSpatialiteBackground/SpatialiteAdapter.cpp    |    4 +-
 .../MSpatialiteBackground/SpatialiteAdapter.h      |   10 +-
 .../WalkingPapersAdapter.cpp                       |    4 +-
 .../WalkingPapersAdapter.h                         |    8 +-
 .../MYahooBackground/yahoolegalmapadapter.cpp      |    4 +-
 .../MYahooBackground/yahoolegalmapadapter.h        |    6 +-
 .../MYahooTiledBackground/yahootiledmapadapter.cpp |    4 +-
 .../MYahooTiledBackground/yahootiledmapadapter.h   |    6 +-
 plugins/common.pri                                 |    4 +
 share/Projections.xml                              |    3 +-
 share/TmsServersList.xml                           |   15 +-
 share/WmsServersList.xml                           |   17 +-
 src/Backend/MemoryBackend.cpp                      |  153 +-
 src/Backend/MemoryBackend.h                        |    3 +
 src/Commands/Command.cpp                           |   10 +-
 src/Config.pri                                     |   16 +-
 src/Docks/DirtyDock.ui                             |    6 +-
 src/Docks/FeaturesDock.cpp                         |   57 +-
 src/Docks/FeaturesDock.h                           |    4 +-
 src/Docks/FeaturesDock.ui                          |   51 +-
 src/Docks/GeoImageDock.cpp                         |   20 +-
 src/Docks/GeoImageDock.h                           |    9 +-
 src/Docks/PropertiesDock.cpp                       |    8 +-
 src/Docks/PropertiesDock.h                         |    7 +-
 src/Features/Feature.cpp                           |    6 +-
 src/Features/Feature.h                             |   10 +-
 src/Features/Node.cpp                              |    4 +-
 src/Features/Node.h                                |    2 +-
 src/Features/Relation.h                            |    2 +-
 src/Features/TrackSegment.h                        |    4 +-
 src/Features/Way.cpp                               |   10 +-
 src/Features/Way.h                                 |    2 +-
 src/GPS/qgpsdevice.cpp                             |    7 +
 src/ImportExport/ImportCSVDialog.cpp               |    8 +-
 src/ImportExport/ImportCSVDialog.ui                |   16 +-
 src/ImportExport/ImportExportGdal.cpp              |   10 +-
 src/ImportExport/ImportExportOSC.cpp               |    2 +-
 src/ImportExport/ImportNMEA.cpp                    |    5 +-
 src/Interactions/CreateNodeInteraction.cpp         |    2 +-
 src/Interactions/CreateRoundaboutDock.ui           |   94 +-
 src/Interactions/CreateRoundaboutInteraction.cpp   |   97 +-
 src/Interactions/CreateRoundaboutInteraction.h     |    4 +
 src/Interactions/Interaction.cpp                   |   87 +-
 src/Interactions/Interaction.h                     |   21 +-
 src/Interactions/MoveNodeInteraction.cpp           |    1 +
 src/Interactions/RotateInteraction.h               |    2 +-
 src/Layers/ImageMapLayer.cpp                       |   38 +-
 src/Layers/Layer.cpp                               |    6 +-
 src/Layers/Layer.h                                 |    6 +-
 src/Layers/OsmRenderLayer.cpp                      |   18 +-
 src/Layers/OsmRenderLayer.h                        |    3 +
 src/Main.cpp                                       |   63 +-
 src/MainWindow.cpp                                 |  406 +-
 src/MainWindow.h                                   |    9 +-
 src/MainWindow.ui                                  |  351 +-
 src/PaintStyle/FeaturePainter.cpp                  |   12 +-
 src/PaintStyle/Painter.cpp                         |    2 +-
 src/PaintStyle/PrimitivePainter.cpp                |    4 +-
 src/Preferences/BookmarksList.cpp                  |    2 +-
 src/Preferences/MerkaartorPreferences.cpp          |   87 +-
 src/Preferences/MerkaartorPreferences.h            |    4 +
 src/Preferences/TMSPreferencesDialog.cpp           |   10 +-
 src/Preferences/TMSPreferencesDialog.ui            |   13 +-
 src/Preferences/TmsServersList.cpp                 |    6 +-
 src/Preferences/TmsServersList.h                   |    2 +-
 src/Preferences/WMSPreferencesDialog.cpp           |   87 +-
 src/Preferences/WMSPreferencesDialog.h             |   13 +
 src/Preferences/WMSPreferencesDialog.ui            |   40 +-
 src/Preferences/WmsServersList.cpp                 |    6 +-
 src/QMapControl/WmscMapAdapter.h                   |    4 +-
 src/QMapControl/browserimagemanager.cpp            |   15 +-
 src/QMapControl/browserimagemanager.h              |    6 +-
 src/QMapControl/imagemanager.cpp                   |   13 +-
 src/QMapControl/imagemanager.h                     |    6 +-
 src/QMapControl/mapcontrol.cpp                     |    2 +-
 src/QMapControl/mapcontrol.h                       |    8 +-
 src/QMapControl/mapnetwork.cpp                     |   18 +-
 src/QMapControl/tilemapadapter.h                   |    4 +-
 src/QMapControl/wmsmapadapter.h                    |    4 +-
 src/Render/MapRenderer.cpp                         |  146 -
 src/Render/NativeRenderDialog.cpp                  |   24 +-
 src/Sync/DirtyList.cpp                             |   74 +-
 src/Sync/DirtyListExecutorOSC.cpp                  |    6 +-
 src/Sync/DownloadOSM.cpp                           |  115 +-
 src/Sync/DownloadOSM.h                             |    3 +-
 src/Sync/SyncListDialog.ui                         |  263 +-
 src/TagTemplate/TagTemplate.cpp                    |   32 +-
 src/Tools/QFatFs/QFat.cpp                          |    2 +-
 src/Utils/EditCompleterDelegate.cpp                |    2 +-
 src/Utils/OsmLink.cpp                              |   41 +
 src/Utils/SlippyMapWidget.cpp                      |  208 +-
 src/Utils/SlippyMapWidget.h                        |    6 +-
 src/Utils/TagSelector.cpp                          |   73 +-
 src/Utils/TagSelector.h                            |    6 +-
 src/common/AboutDialog.ui                          |  113 +-
 src/common/Document.cpp                            |    5 +-
 src/common/FeatureManipulations.cpp                |    3 +-
 src/common/Global.cpp                              |    4 +-
 src/common/Global.h                                |    4 +-
 src/common/MapView.cpp                             |   27 +-
 src/common/MapView.h                               |    6 +
 src/common/Projection.cpp                          |   12 +-
 src/common/TagModel.cpp                            |   15 +-
 src/merkaartor.desktop                             |    2 +-
 src/qextserialport/posix_qextserialport.cpp        |    2 +-
 src/src.pro                                        |   84 +-
 translations/README                                |   25 -
 translations/README.md                             |   25 +
 translations/merkaartor_ar.ts                      | 6117 ++++++++---------
 translations/merkaartor_cs.ts                      | 6902 +++++++++----------
 translations/merkaartor_de.ts                      | 6331 +++++++++---------
 .../{merkaartor_et.ts => merkaartor_en.ts}         | 4295 ++++++------
 translations/merkaartor_es.ts                      | 5967 +++++++++--------
 translations/merkaartor_et.ts                      | 6179 ++++++++---------
 translations/merkaartor_fr.ts                      | 6335 +++++++++---------
 translations/merkaartor_hr.ts                      | 5559 +++++++--------
 translations/merkaartor_hu.ts                      | 6221 ++++++++---------
 .../{merkaartor_pl.ts => merkaartor_id_ID.ts}      | 7068 ++++++++++----------
 translations/merkaartor_it.ts                      | 5984 +++++++++--------
 translations/merkaartor_ja.ts                      | 5738 ++++++++--------
 translations/merkaartor_nl.ts                      | 5827 ++++++++--------
 translations/merkaartor_pl.ts                      | 5867 ++++++++--------
 translations/merkaartor_pt.ts                      | 6207 ++++++++---------
 translations/merkaartor_pt_BR.ts                   | 6112 ++++++++---------
 translations/merkaartor_ru.ts                      | 6166 ++++++++---------
 translations/merkaartor_sk.ts                      | 6185 ++++++++---------
 translations/merkaartor_sv.ts                      | 5831 ++++++++--------
 translations/merkaartor_uk.ts                      | 5889 ++++++++--------
 windows/copydeps.sh                                |   14 +
 windows/installer.nsi                              |   11 +-
 windows/upload-to-bintray.pl                       |   33 +
 185 files changed, 64541 insertions(+), 61626 deletions(-)

diff --git a/.drone.sec b/.drone.sec
new file mode 100644
index 0000000..b27cc84
--- /dev/null
+++ b/.drone.sec
@@ -0,0 +1 @@
+eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.YRyQNtOWUCipDm08cZdCER8J8tjoqs-4Heyz-1qT14-dN7bFFkP_fg-Z2Ug-jo78tT7YMtN6y6yTFIv_Wt_jhDqbsAV9ZoKJcIYfKhbLBctQxIUuR8YAXlXDyFbRert1PegbLYMru-FARnupadcQVfPrbunrEWmAJyYQewKJcsO5pGmD8C9q5AkQam4NvD_pp1pxvcFYx_PP3PYVYJCxqZT2GzLEyyaDLNbck3yslN1rleiZI9OzTXO6X9BgOOcsS7IzTN0ZhLVDOP5o2oXcOm_uIai5A1Uuk3lPrczCflTe6_k5_Yh7Wzt2qU6qmDOIoQVzZdjMfmTWOdhXYRvz1Q.Yt3jxqjGb0obh2HQ.1kGJv08npX27KP2-Li2UYL973tKQFDiSO5Sio6v1U2uMla7dicOJkT8pzyianXKx22hWNsUWdqPCS4s-jXg4u [...]
diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..5b45f84
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,30 @@
+# This is a build file to tea-ci.org (fork of drone with msys2 support)
+clone:
+    tags: true
+    depth: 200
+branches:
+  - master
+  - tea-ci
+build:
+  image: teaci/msys$$arch
+  pull: true
+  shell: mingw$$arch
+  environment:
+    - BINTRAY_TOKEN=$$BINTRAY_TOKEN
+  commands:
+    - if [ $$arch = 32 ]; then target=i686; fi
+    - if [ $$arch = 64 ]; then target=x86_64; fi
+    - wget http://stuff.krakonos.org/upload && chmod +x upload
+    - pacman -S --noconfirm --needed --noprogressbar unzip curl mingw-w64-${target}-nsis mingw-w64-${target}-qt5 mingw-w64-${target}-gdal mingw-w64-${target}-proj mingw-w64-${target}-openjpeg2 mingw-w64-${target}-json-c msys/perl-common-sense
+    - pacman -S --noconfirm --needed --noprogressbar mingw-w64-${target}-netcdf mingw-w64-${target}-nspr mingw-w64-${target}-nss mingw-w64-${target}-postgresql
+    - qmake -r
+    - make -j8 release
+    - lrelease src/src.pro
+    - sh windows/copydeps.sh
+    - makensis.exe windows/installer.nsi
+    - windows/upload-to-bintray.pl windows/merkaartor-*.exe
+
+matrix:
+  arch:
+    - 64
+    - 32
diff --git a/.travis.yml b/.travis.yml
index 229da78..9e7007d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,30 @@
+sudo: required
+dist: trusty
 env:
- - QT=4
- - QT=5
+    - QT=4
+    - QT=5
+os:
+    - linux
+    - osx
+git:
+    depth: 9999999
 
 install:
- - sudo apt-add-repository -y ppa:ubuntu-sdk-team/ppa
- - sudo apt-get update -qq
- - sudo apt-cache search qt
- - sudo apt-get install gdb libgdal-dev libproj-dev
- - sudo apt-get install libqt4-xml libqt4-network libqt4-gui libqt4-svg libqt4-webkit libqt4-dev qt4-qmake
- - sudo apt-get install libqt5xml5* libqt5network5* libqt5gui5* libqt5svg5* libqt5webkit5* libqt5quick5* qtdeclarative5-dev qttools5-dev qtbase5-dev qt5-qmake qtchooser
- - qtchooser -list-versions
-
+    - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ./ci/travis-linux-install.sh; fi
+    - if [ "${TRAVIS_OS_NAME}" = "osx" ];   then ./ci/travis-osx-install.sh;   fi
 
 script:
-  - qtchooser -qt=qt$QT -run-tool=qmake
-  - make
+    - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ./ci/travis-linux-script.sh; fi
+    - if [ "${TRAVIS_OS_NAME}" = "osx" ];   then ./ci/travis-osx-script.sh;   fi
+
+deploy:
+    on:
+        branch:
+            - travis-ci
+            - master
+        condition: $TRAVIS_OS_NAME = osx
+    provider: bintray
+    file: binaries/bin/deploy.json
+    user: krakonos
+    key:
+      secure: CMTTCxFAUirt3f+LOOC3ngJKzyqNuLO1il4Vmd8Jq5isAfiiShzs0Qj+8vvsdl7ebyVBQ5srTmwOY1z6B/Jzl5gpHPR3Y2oYt4hFaAkKU6nnlCELX7N/pS1TAXgX8NZjjod0xlfV2700eWDDBRs7gjGWQKhKzRVlMByWYeWV68c=
diff --git a/.tx/config b/.tx/config
new file mode 100644
index 0000000..159bb2d
--- /dev/null
+++ b/.tx/config
@@ -0,0 +1,9 @@
+[main]
+host = https://www.transifex.com
+
+[merkaartor.merkaartor_ents]
+file_filter = translations/merkaartor_<lang>.ts
+source_file = translations/merkaartor_en.ts
+source_lang = en
+type = QT
+
diff --git a/3rdparty/quazip-0.7/NEWS.txt b/3rdparty/quazip-0.7/NEWS.txt
index 7388f50..9da6dc4 100644
--- a/3rdparty/quazip-0.7/NEWS.txt
+++ b/3rdparty/quazip-0.7/NEWS.txt
@@ -12,7 +12,7 @@ QuaZIP changes
           need more precise dates and times than default ones.
         * QuaZipNewInfo may now be initialized from QuaZipFileInfo64.
         * No more crashes when using QSaveFile as QIODevice for ZIP.
-        * The new QuaZip::setAutoClose() method allows to leave the
+        * The new QuaZip::setAutoClose() method allows leaving the
           QIODevice open when you close the QuaZip instance.
         * qztest now depends on quazip, no longer breaking the build.
 
diff --git a/3rdparty/quazip-0.7/doc/html/classQuaZip.html b/3rdparty/quazip-0.7/doc/html/classQuaZip.html
index ff96640..3c3b784 100644
--- a/3rdparty/quazip-0.7/doc/html/classQuaZip.html
+++ b/3rdparty/quazip-0.7/doc/html/classQuaZip.html
@@ -441,7 +441,7 @@ class </td><td class="memItemRight" valign="bottom"><b>QuaZipPrivate</b></t
 <p>If the ZIP file is accessed via explicitly set QIODevice, then this device is opened in the necessary mode. If the device was already opened by some other means, then QuaZIP checks if the open mode is compatible to the mode needed for the requested operation. If necessary, seeking is performed to position the device properly.</p>
 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if successful, <code>false</code> otherwise.</dd></dl>
 <dl class="section note"><dt>Note</dt><dd>ZIP/UNZIP API open calls do not return error code - they just return <code>NULL</code> indicating an error. But to make things easier, <a class="el" href="quazip_8h_source.html">quazip.h</a> header defines additional error code <code>UNZ_ERROROPEN</code> and <a class="el" href="classQuaZip.html#a28b91a6282ddd9382c96a069572c6fb4" title="Returns the error code of the last operation. ">getZipError()</a> will return it if the open call of the ZIP/UNZ [...]
-<p>Argument <em>ioApi</em> specifies IO function set for ZIP/UNZIP package to use. See unzip.h, zip.h and ioapi.h for details. Note that IO API for <a class="el" href="classQuaZip.html" title="ZIP archive. ">QuaZip</a> is different from the original package. The file path argument was changed to be of type <code>voidpf</code>, and <a class="el" href="classQuaZip.html" title="ZIP archive. ">QuaZip</a> passes a QIODevice pointer there. This QIODevice is either set explicitly via <a class=" [...]
+<p>Argument <em>ioApi</em> specifies IO function set for ZIP/UNZIP package to use. See unzip.h, zip.h and ioapi.h for details. Note that IO API for <a class="el" href="classQuaZip.html" title="ZIP archive. ">QuaZip</a> is different from the original package. The file path argument was changed to be of type <code>voidpf</code>, and <a class="el" href="classQuaZip.html" title="ZIP archive. ">QuaZip</a> passes a QIODevice pointer there. This QIODevice is either set explicitly via <a class=" [...]
 <dl class="section note"><dt>Note</dt><dd>If the zip64 support is needed, the ioApi argument <em>must</em> be NULL because due to the backwards compatibility issues it can be used to provide a 32-bit API only.</dd>
 <dd>
 If the <a class="el" href="classQuaZip.html#a54bfc924762774ccf9f99be075ba7b0e">no-auto-close</a> feature is used, then the <em>ioApi</em> argument <em>should</em> be NULL because the old API doesn't support the 'fake close' operation, causing slight memory leaks and other possible troubles (like closing the output device in case when an error occurs during opening).</dd></dl>
diff --git a/3rdparty/quazip-0.7/doc/html/structQuaZipFileInfo64.html b/3rdparty/quazip-0.7/doc/html/structQuaZipFileInfo64.html
index 0140e04..9f74dca 100644
--- a/3rdparty/quazip-0.7/doc/html/structQuaZipFileInfo64.html
+++ b/3rdparty/quazip-0.7/doc/html/structQuaZipFileInfo64.html
@@ -285,7 +285,7 @@ QByteArray </td><td class="memItemRight" valign="bottom"><a class="el" href
 </div><div class="memdoc">
 
 <p>Last modification date and time. </p>
-<p>This is the time stored in the standard ZIP header. This format only allows to store time with 2-second precision, so the seconds will always be even and the milliseconds will always be zero. If you need more precise date and time, you can try to call the <a class="el" href="structQuaZipFileInfo64.html#af4b19399367cf5bf24026344e0631ccb" title="Returns the NTFS modification time. ">getNTFSmTime()</a> function or its siblings, provided that the archive itself contains these NTFS times. </p>
+<p>This is the time stored in the standard ZIP header. This format only allows storing time with 2-second precision, so the seconds will always be even and the milliseconds will always be zero. If you need more precise date and time, you can try to call the <a class="el" href="structQuaZipFileInfo64.html#af4b19399367cf5bf24026344e0631ccb" title="Returns the NTFS modification time. ">getNTFSmTime()</a> function or its siblings, provided that the archive itself contains these NTFS times. </p>
 
 <p>Referenced by <a class="el" href="classQuaZip.html#a7ba6daf39263c308c683e7f72f74e0ae">QuaZip::getCurrentFileInfo()</a>, and <a class="el" href="structQuaZipFileInfo64.html#ada29945c7ee4c9df6fbe95864793aade">toQuaZipFileInfo()</a>.</p>
 
diff --git a/3rdparty/quazip-0.7/doc/latex/classQuaZip.tex b/3rdparty/quazip-0.7/doc/latex/classQuaZip.tex
index 662fb77..5c8116b 100644
--- a/3rdparty/quazip-0.7/doc/latex/classQuaZip.tex
+++ b/3rdparty/quazip-0.7/doc/latex/classQuaZip.tex
@@ -298,7 +298,7 @@ If the Z\-I\-P file is accessed via explicitly set Q\-I\-O\-Device, then this de
 \begin{DoxyNote}{Note}
 Z\-I\-P/\-U\-N\-Z\-I\-P A\-P\-I open calls do not return error code -\/ they just return {\ttfamily N\-U\-L\-L} indicating an error. But to make things easier, \doxyref{quazip.\-h}{p.}{quazip_8h_source} header defines additional error code {\ttfamily U\-N\-Z\-\_\-\-E\-R\-R\-O\-R\-O\-P\-E\-N} and \doxyref{get\-Zip\-Error()}{p.}{classQuaZip_a28b91a6282ddd9382c96a069572c6fb4} will return it if the open call of the Z\-I\-P/\-U\-N\-Z\-I\-P A\-P\-I returns {\ttfamily N\-U\-L\-L}.
 \end{DoxyNote}
-Argument {\itshape io\-Api} specifies I\-O function set for Z\-I\-P/\-U\-N\-Z\-I\-P package to use. See unzip.\-h, zip.\-h and ioapi.\-h for details. Note that I\-O A\-P\-I for \doxyref{Qua\-Zip}{p.}{classQuaZip} is different from the original package. The file path argument was changed to be of type {\ttfamily voidpf}, and \doxyref{Qua\-Zip}{p.}{classQuaZip} passes a Q\-I\-O\-Device pointer there. This Q\-I\-O\-Device is either set explicitly via \doxyref{set\-Io\-Device()}{p.}{classQua [...]
+Argument {\itshape io\-Api} specifies I\-O function set for Z\-I\-P/\-U\-N\-Z\-I\-P package to use. See unzip.\-h, zip.\-h and ioapi.\-h for details. Note that I\-O A\-P\-I for \doxyref{Qua\-Zip}{p.}{classQuaZip} is different from the original package. The file path argument was changed to be of type {\ttfamily voidpf}, and \doxyref{Qua\-Zip}{p.}{classQuaZip} passes a Q\-I\-O\-Device pointer there. This Q\-I\-O\-Device is either set explicitly via \doxyref{set\-Io\-Device()}{p.}{classQua [...]
 
 \begin{DoxyNote}{Note}
 If the zip64 support is needed, the io\-Api argument {\itshape must} be N\-U\-L\-L because due to the backwards compatibility issues it can be used to provide a 32-\/bit A\-P\-I only.
diff --git a/3rdparty/quazip-0.7/doc/latex/structQuaZipFileInfo64.tex b/3rdparty/quazip-0.7/doc/latex/structQuaZipFileInfo64.tex
index 7a4798f..4902665 100644
--- a/3rdparty/quazip-0.7/doc/latex/structQuaZipFileInfo64.tex
+++ b/3rdparty/quazip-0.7/doc/latex/structQuaZipFileInfo64.tex
@@ -197,7 +197,7 @@ The N\-T\-F\-S creation time, U\-T\-C
 
 Last modification date and time. 
 
-This is the time stored in the standard Z\-I\-P header. This format only allows to store time with 2-\/second precision, so the seconds will always be even and the milliseconds will always be zero. If you need more precise date and time, you can try to call the \doxyref{get\-N\-T\-F\-Sm\-Time()}{p.}{structQuaZipFileInfo64_af4b19399367cf5bf24026344e0631ccb} function or its siblings, provided that the archive itself contains these N\-T\-F\-S times. 
+This is the time stored in the standard Z\-I\-P header. This format only allows storing time with 2-\/second precision, so the seconds will always be even and the milliseconds will always be zero. If you need more precise date and time, you can try to call the \doxyref{get\-N\-T\-F\-Sm\-Time()}{p.}{structQuaZipFileInfo64_af4b19399367cf5bf24026344e0631ccb} function or its siblings, provided that the archive itself contains these N\-T\-F\-S times. 
 
 Referenced by Qua\-Zip\-::get\-Current\-File\-Info(), and to\-Qua\-Zip\-File\-Info().
 
diff --git a/3rdparty/quazip-0.7/quazip/quazip.h b/3rdparty/quazip-0.7/quazip/quazip.h
index 0dd4023..71d1db9 100644
--- a/3rdparty/quazip-0.7/quazip/quazip.h
+++ b/3rdparty/quazip-0.7/quazip/quazip.h
@@ -173,7 +173,7 @@ class QUAZIP_EXPORT QuaZip {
      * set explicitly via setIoDevice() or the QuaZip(QIODevice*)
      * constructor, or it is created internally when opening the archive
      * by its file name. The default API (qioapi.cpp) just delegates
-     * everything to the QIODevice API. Not only this allows to use a
+     * everything to the QIODevice API. Not only this allows using a
      * QIODevice instead of file name, but also has a nice side effect
      * of raising the file size limit from 2G to 4G (in non-zip64 archives).
      *
diff --git a/3rdparty/quazip-0.7/quazip/quazipfile.cpp b/3rdparty/quazip-0.7/quazip/quazipfile.cpp
index 3f674b0..0312233 100644
--- a/3rdparty/quazip-0.7/quazip/quazipfile.cpp
+++ b/3rdparty/quazip-0.7/quazip/quazipfile.cpp
@@ -70,7 +70,7 @@ class QuaZipFilePrivate {
     /// Sets the zip error.
     /**
       This function is marked as const although it changes one field.
-      This allows to call it from const functions that don't change
+      This allows calling it from const functions that don't change
       anything by themselves.
       */
     void setZipError(int zipError) const;
diff --git a/AUTHORS b/AUTHORS
index 1a8dafc..58698ea 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,10 +1,13 @@
-Copyright 2006-2014 Bart Vanhauwaert, Chris Browet, Ladislav Láska and others
+Copyright 2006-2016 Bart Vanhauwaert, Chris Browet, Ladislav Láska and others
 
-AUTHORS
+ACTIVE CONTRIBUTORS
+
+Ladislav Láska <krakonos at krakonos.org>
+
+PAST CONTRIBUTORS
 
 Bart Vanhauwaert bvh-osm at irule.be
 Chris "Koying" Browet
-Ladislav Láska <krakonos at krakonos.org>
 Elrond elrond+openstreetmap.org at samba-tng.org
 Oliver Heesakkers
 Patric Cameron
diff --git a/CHANGELOG b/CHANGELOG
index 135924b..5fa8135 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -74,7 +74,7 @@ v0.18
     * ADD : Self-contained style packages (*.msz)
     * FIX : mutex deadlock (refs #3319)
     * FIX : Protect updatemeta (fixes #3317)
-    * ADD : Allow to show/hide the toolbars labels (toolbar context menu)
+    * ADD : Allow showing/hiding the toolbars labels (toolbar context menu)
     * ADD : "Select parent(s)" & "Download missing children" to the Feature menu (refs #3314)
     * FIX : force redrawing the osm map when zooming (fixes #3316)
     * FIX : Mutex-lock update of the painters (fixes #3315)
@@ -122,9 +122,9 @@ v0.18
     * FIX : do not create  ~/.merkaartor in portable mode
     * FIX : Handle UTF8 in GDAL fields
     * CHG : When doing GDAL imports, always confirm input projection
-    * ADD : Allow to use projection chooser in projection editor
-    * ADD : Allow to enter WKT in projection chooser
-    * ADD : Goto dialog: Allow to show/edit coordinates in projected units
+    * ADD : Allow using projection chooser in projection editor
+    * ADD : Allow entering WKT in projection chooser
+    * ADD : Goto dialog: Allow showing/editing coordinates in projected units
     * FIX : Only check styles for POI nodes
     * FIX : Feature dock: Relations not shown in "All' tab
     * FIX : log2 not available on FreeBSD (fixes #3211)
@@ -136,17 +136,17 @@ v0.18
 v0.17
     * FIX : Problem importing OSM comprising new features
     * ADD : Move "validation" style rules to a new "Validation.mas" style
-    * ADD : Allow to align background image with <SPACE>+pan
+    * ADD : Allow aligning background image with <SPACE>+pan
     * CHG : Rename "Create rectangle" to "Create rectangular building" and automatically add "building=yes"
     * ADD : Remember "Create polygon" last number of sides
-    * ADD : "Relation->Add to Multipolygon"; allows to create or add to a multipolygon relation (closes 2889)
+    * ADD : "Relation->Add to Multipolygon"; allows creating or adding to a multipolygon relation (closes 2889)
     * ADD : Network timeout preference
     * CHG : Paste Tags : Allow any<->any pasting but only takes top level features into account (fixes #3174)
     * FIX : When loading history from MDC, do not import the command if the layer is not found + save layers dirty level in MDC (fixes #3176)
     * FIX : Locked zoom was bugged since passage to real pixel per Meter (fixes #3175)
     * FIX : Allow creating a way in non-separate move mode with a virtual node selected (fixes #3172)
     * FIX : Revert to custom icon for move interaction on MAC (fixes #3170)
-    * FIX : GeoTIFF + GDAL backgrounds: Allow to specify an automatic "source" tag via the plugin menu
+    * FIX : GeoTIFF + GDAL backgrounds: Allow specifying an automatic "source" tag via the plugin menu
     * ADD : Bing Maps plugin
     * FIX : GDAL + GeoTIFF : if a ESRI World File (.tfw, *.wld) is present, override file geotransform
     * FIX : GDAL + GeoTIFF : if the projection cannot be determined, ask for it rather than fail
@@ -154,15 +154,15 @@ v0.17
     * FIX : Cannot access TMS servers that Min-zoom equals Max-zoom (fixes #3157)
     * ADD : GDAL raster background plugin
     * FIX : WMS Editor - Handle Styles properly
-    * ADD : Explicitely add GML to the list of supported format (via GDAL)
+    * ADD : Explicitly add GML to the list of supported format (via GDAL)
     * ADD : Bicycle style by Markus Straub
-    * ADD : Styles : allow to texture areas with an icon
-    * CHG : When opening/importing, always fallback to GDAL if available. Allows to open most GDAL supported geomtery files.
+    * ADD : Styles : allow texturing areas with an icon
+    * CHG : When opening/importing, always fallback to GDAL if available. Allows opening most GDAL supported geomtery files.
     * ADD : Vector map layers
     * ADD : Allow "[*] is xxx" (or "*=xxx") construct in tag selection. Means a feature match if any of its tags has xxx as a value (fixes #3146)
-    * ADD : Do not allow to delete OSM nodes in non-downloaded areas (refs #3083)
+    * ADD : Do not allow deleting OSM nodes in non-downloaded areas (refs #3083)
     * ADD : Save the downloaded areas in the MDC. Expired after 12h.
-    * ADD : Allow to specify the Nominatim url in preferences
+    * ADD : Allow specifying the Nominatim url in preferences
     * ADD : French Cadastre plugin
     * FIX : Infloop on next/previous image when none visible (fixes #3135)
     * CHG : Do not wait for "CLOSE changeset" response
@@ -171,7 +171,7 @@ v0.17
     * ADD : Auto-add "source" tag when drawing over a background map; define the value in the WMS and TMS editors
     * FIX : Filter out invalid value for first Tag list column width (fixes #3129)
     * FIX : Remove tags from autocomplete suggestions when cleared from features (fixes #3113)
-    * ADD : Allow to start merkaartor with a document template specified in preferences
+    * ADD : Allow starting merkaartor with a document template specified in preferences
     * CHG : Layers & View settings are now saved in a $HOME/Startup.mdc document rather than thru QSettings
     * ADD : New CL options: "--ignore-preferences" && "--reset-preferences"
     * FIX : Re-enable PgUp/PgDown in Geoimage dock (dock must be focused) (fixes #3126); coincidentaly, PgUp/PgDown for zooming only works when the map view is focused.
@@ -183,7 +183,7 @@ v0.17
     * FIX : remove dependency on GDAL data files when importing OSGB36 shapefiles + correct projection (closes #3119)
     * ADD : New preference: "Allow node/way creation in select mode". When checked, allows double-click to create a node and double-click on a node to start a way in select mode.
     * ADD : When drawing ways, double-clicking finishes the current way (Potlach/JOSM style)
-    * ADD : Way segments: Keeping ALT depressed allows to move way segment
+    * ADD : Way segments: Keeping ALT depressed allows moving a way segment
     * ADD : In Road creation mode, double-click creates a new node
     * ADD : Hardcoded PgUp/PgDown for Zoom in/Zoom out (Potlach style)
     * ADD : Snap to angle functionality when creating way: keeping "o" pressed snap to 45° angles, "h" snap to 30° angles
@@ -193,13 +193,13 @@ v0.17
     * ADD : Cut functionality
     * ADD : double-clicking a feature selects the feature and its children
     * CHG : style update
-    * ADD : Style Editor: allow to filter the style list
+    * ADD : Style Editor: allow filtering the style list
     * FIX : Styles: draw icons for ways, too
-    * FIX : allow to shrink properties dock
+    * FIX : allow shrinking properties dock
     * ADD : Support for XAPI
     * ADD : ":dirty" and ":uploaded" pseudo tags for finding/filtering
     * CHG : Remove builtin "Dirty" and "Uploaded" layers. Those are now managed at feature level.
-    * ADD : Allow to rename a layer by double-clicking on its name
+    * ADD : Allow renaming a layer by double-clicking on its name
     * FIX : Initial viewport issue
     * ADD : View menu item allowing to highlight "dirty" features, i.e., features ready for upload
     * FIX : Do not export incomplete features
@@ -226,14 +226,14 @@ v0.17
     * FIX : problem with "Bottom-left standard" TMS
     * ADD : Printing
     * ADD : Hungarian translation by Peter Sulyok
-    * CHG : Allow to pan with middle mouse button
+    * CHG : Allow panning with middle mouse button
     * ADD : Toolbar editor (create/modify tollbars)
     * FIX : OSX fix
     * FIX : Draw relations children dashed to avoid multiple parent drawing
     * FIX : Fix several issues with features dock.
     * FIX : Fix reappearance of deleted features.
     * FIX : Fix WayRemoveNodeCommand reversibility.
-    * ADD : Allow to move complete relations
+    * ADD : Allow moving complete relations
     * FIX : WMS'es in EPSG:4326 not showing
     * FIX : Don't overzoom on layer zoom (and don't allow if the bbox is null). fixes #3046
     * ADD : Add a "portable" mode to merkaartor via command-line ("-p") or build setting ("PORTABLE=1")
@@ -257,12 +257,12 @@ v0.16
     * FIX : Make JOSM happy about our .osm export (fixes #2952)
     * ADD : Preliminary support for OpenStreetBugs (Refs #983)
     * ADD : POC of a Gosmore map adapter
-    * FIX : Allow to "Force Upload" relations, too (fixes #2926)
+    * FIX : Allow one to "Force Upload" relations, too (fixes #2926)
     * FIX : Update Feature dock when document content changes (fixes #2923)
     * CHG : Change way the virtual nodes are handled
     * CHG : Allow tag pasting between different classes of features
     * CHG : Use a different spatial index provider
-    * ADD : Allow to delete features from the context menu of the Features dock
+    * ADD : Allow deleting features from the context menu of the Features dock
     * ADD : Accept mlon/mlat URLs as emitted by mkgmap logging
     * ADD : Walking Papers backgound plugin + load WP scans as geotagged images
     * ADD : Import from OSC (osmChange format)
@@ -272,10 +272,10 @@ v0.16
     * ADD : CSV POI import
     * FIX : crash when closing layer with virtual nodes (fixes #2858)
     * ADD : OSGB36 to the default list of projections
-    * CHG : Allow to add images to a GeoTIFF layer
+    * CHG : Allow adding images to a GeoTIFF layer
     * ADD : Add SHP feature attributes as not uploadable OSM Feature tags
-    * FIX : Allow to load OS VectorMap District shapefiles
-    * ADD : Allow to save geotagged images
+    * FIX : Allow loading OS VectorMap District shapefiles
+    * ADD : Allow saving geotagged images
     * CHG : Enhanced support for geotagged images drag&drop
     * CHG : Geotag support enhancements
     * FIX : use gpsd api and implement gpsd-ng
@@ -284,12 +284,12 @@ v0.16
     * FIX : crash when closing layers containing photos (fixes #2828)
     * CHG : Allow importing geotagged photos when no track layer is present (closes #2827)
     * ADD : Templates xsd (by Jonathan Bennett) (closes #2809; closes #2707)
-    * ADD : allow to re-order relation members (closes #2759)
+    * ADD : allow re-ordering relation members (closes #2759)
     * FIX : solves a problem when hovering large relations
     * ADD : add a projection editor
     * ADD : allow google maps links in goto and download dialogs
     * FIX : abort tile downloading when zooming
-    * ADD : Allow to tile (and cache) arbitrary WMS'es (only EPSG:4326 and google projection supported)
+    * ADD : Allow tiling (and caching) arbitrary WMS'es (only EPSG:4326 and google projection supported)
     * CHG : rework "Zoom lock" and move it to the view menu
     * ADD : support for WMS-C servers (see http://wiki.openstreetmap.org/wiki/Merkaartor/Documentation#WMS-C_Servers) (closes #2598)
     * FIX : problem when joining ways
@@ -304,7 +304,7 @@ v0.16
     * FIX : OSX Qt system translations location (by Aleksandar)
     * FIX : Update language of language combo after language change (by Alaeksandar)
     * FIX : Only allow virtual node updates after relations resolution (by Trav)(closes #2782)
-    * ADD : Allow to zoom on the location of a GeoTIFF image
+    * ADD : Allow zooming on the location of a GeoTIFF image
     * FIX : Do not updateindex() if the feature is deleted
     * FIX : roads not always refreshed when changing type or properties (fixes #2773)
     * FIX : Cannot cleanly copy tags from one relation to another (fixes #2746)
@@ -335,7 +335,7 @@ v0.15
     * ADD : GeoTIFF background plugin (closes #1025)
     * ADD : Grabbing hand icon in signle mouse mode
     * FIX : Layers menu entry for background layer is wrong at startup. Patch by Trav (closes #2641)
-    * ADD : When in "single mouse button" mode, allow to cancel most operation with a right-click
+    * ADD : When in "single mouse button" mode, allow canceling most operation with a right-click
     * ADD : "Zoom lock" mode. Zoom steps are locked to TMS ones and projection is locked to Mercator
     * FIX : get sharper Yahoo images (closes #2623)
     * FIX : tag value "Fast food" should be "fast_food" (closes #2625)
@@ -345,7 +345,7 @@ v0.15
     * FIX : URL's in about dialog (fixes #2606)
     * FIX : Export trackpoints time when exporting GPX (fixes #2594)
     * ADD : Virtual nodes allow fast creation of intermediary nodes (closes #821)
-    * ADD : Allow to move node in Node creation mode (closes #1910)
+    * ADD : Allow moving node in Node creation mode (closes #1910)
     * CHG : Only generate log files on request (--log) on release builds
     * FIX : speedup epsg:4326 projection
     * FIX : WMS projection related bugfixes
@@ -362,7 +362,7 @@ v0.15
     * ADD : Mac OS X icon (closes #2254)
     * FIX : Force custom Qt style if Qt runtime version < 4.5.1 (fixes #2204)
     * ADD : Allow all platforms to connect to a gpsd backend
-    * FIX : Set gpsd output to NMEA; allow to save log
+    * FIX : Set gpsd output to NMEA; allow saving log
     * FIX : Do not draw background if saved pixmap is null as a copy of a null pixmap seems to crash on Mac (fixes #2262)
     * FIX : Fixes MacOSX plugin dir (fixes #2253)
     * FIX : Handle latlong projection in SHP files (fixes #2183)
@@ -384,12 +384,12 @@ v0.14
     * ADD : Add a Features dock displaying the features in the current viewport
     * ADD : Add a case-sensitiveness option to the search + search by ID (closes #1509)
     * CHG : Remove support for osmarender (fixes #1966)
-    * ADD : Allow multi-selection of layers; allow to show/hide or readonly several layers at once (closes #1798)
+    * ADD : Allow multi-selection of layers; allow one to show/hide or readonly several layers at once (closes #1798)
     * ADD : Also export routes in GPX
     * ADD : Paste features as a whole (closes #1807)
     * ADD : Spatial indexing of features for faster display with large downloaded areas.
     * ADD : Built-in list of epsg projections (from proj4)
-    * CHG : Replaced "Commit..." command by "Force Upload". Allows to force update of existing features or to upload imported features (such as SHP, KML, ...)
+    * CHG : Replaced "Commit..." command by "Force Upload". Allows forcing update of existing features or to upload imported features (such as SHP, KML, ...)
     * FIX : User preferences thru OSM preferences system works again
     * FIX : Support projections when importing SHP files
     * ADD : Drag & drop re-ordering of the layers
@@ -413,7 +413,7 @@ v0.14
     * ADD : log file for debugging output
     * ADD : standard command-line arguments (-h, -v, ...) (fixes #1712)
     * FIX : Use application-wide proxy (fixes #1763)
-    * ADD : Allow to specify a user/password for the proxy (untested by me)
+    * ADD : Allow specifying a user/password for the proxy (untested by me)
     * FIX : Photo localization patch from Toby Speight.
     * FIX : Set version of newly uploaded objects at 1.
     * FIX : Graphical corruption on Intel chipsets when "Show downloaded areas" was enabled
@@ -423,7 +423,7 @@ v0.14
     * FIX : API 0.6: Error when deleting a road with no nodes (fixes #1732)
     * FIX : Correctly handle plural forms in MapLayer information
     * FIX : API 0.6: Do not add "created_by" to changed features (fixes #1728)
-    * FIX : API 0.6: Allow to define a comment on a changeset (fixes #1731)
+    * FIX : API 0.6: Allow defining a comment on a changeset (fixes #1731)
     * FIX : API 0.6 fixes
     * FIX : Nodes fetched by relations are incomplete and not completed by "download more" (fixes #1715)
     * ADD : Initial support for Symbian S60v5
@@ -435,9 +435,9 @@ v0.14
     * FIX : OSM/GPX import optimisations (by Trav)
     * FIX : <Esc> in Name property inspector causes AV (fixes #1672)
     * CHG : Move vector background from SHP to OSB
-    * CHG : Preferences are uploaded to OSM in binary, base-64 encoded, 254 char slice. Allow to bypass the 255 char per preference limitation.
+    * CHG : Preferences are uploaded to OSM in binary, base-64 encoded, 254 char slice. Allow bypassing the 255 char per preference limitation.
     * CHG : Preferences lists (Bookmarks, WMS servers, ...) are now distributed and saved as XML in ~/.merkaartor. Allow proper merging (fixes #1401)
-    * ADD : Allow to choose which Qt style to use via a combobox
+    * ADD : Allow choosing which Qt style to use via a combobox
     * CHG : Implement the custom styles as plugins
     * FIX : English language warning
     * ADD : Switch to template-based projection handling; remove dependency on libproj
@@ -461,7 +461,7 @@ v0.13
     * FIX : Crash on layer close
     * FIX : Hardening upload process
     * FIX : Remove the deleted road from parent when joining
-    * FIX : allow to split/join roads belonging to not-completely-downloaded relations
+    * FIX : allow spliting/joining roads belonging to not-completely-downloaded relations
     * FIX : Avert crashes by using guarded pointers
     * FIX : In case of a failed "Download more", do not delete layer if it was a previously existing one.
     * FIX : GeoTagged images are drawn to the full size of GeoImageDock
@@ -477,7 +477,7 @@ v0.13
     * FIX : Handle Undoes while creating single/double roads (fixes #1621)
     * FIX : Re-apply custom shortcuts after retranslateUI (fixes #1620)
     * FIX : Insufficent precision for WMS bbox requests at high zoom (fixes #1618)
-    * ADD : Allow to force the custom Qt style thru Config.pri
+    * ADD : Allow forcing the custom Qt style thru Config.pri
     * FIX : Do not remove incomplete downloaded relation; make them readonly and display them in red (temporary)
     * FIX : Painting slowdowns (+ memory consumption) when relations are involved (fixes #1528)
     * FIX : Split roads not added to Relation (fixes #1586)
@@ -501,10 +501,10 @@ v0.13
     * FIX : Add missing tr() calls in render dialogs.
     * FIX : Messagebox-Cancel after deleting a line did not work (fixes #1392)
     * ADD : Native SVG renderer
-    * ADD : Allow to break roads (and areas) with a single node (fixes #1505)
+    * ADD : Allow breaking roads (and areas) with a single node (fixes #1505)
     * ADD : Relation member context menu for center and zoom on the properties
     dock
-    * ADD : Allow to remove a member from a relation thru the properties dock.
+    * ADD : Allow removing a member from a relation thru the properties dock.
     * FIX : switch to skulpture 2.2 custom style by default
     * FIX : Don't allow templates combo to grow depending on content (fixes #1482)
     * FIX : Allow disabling "Don't connect GPX nodes separated more than.." by setting it to 0. (fixes #1488)
@@ -603,7 +603,7 @@ v0.12
     * FIX : Upload of a modified single GPX track node was not working anymore (fixes #1141)
     * ADD : Support for GeoTagged images. qmake GEOIMAGE=1 to activate. requires exiv2 (by Timo Schlüßler)
     * ADD : Move to the next field on enter in properties dock tags (by Travers Carter) (Refs #1137)
-    * ADD : revised OSB format. Allows to use large map files directly from disk with low memory footprint.
+    * ADD : revised OSB format. Allows using large map files directly from disk with low memory footprint.
     * FIX : Native render doesn't render anything at high lat/long values(by Travers Carter)  (Closes #1135)
     * FIX : Expand tables in the properties dock to the available width by default (by Travers Carter) (Closes #1136)
     * FIX : make download dialog a less cluttered
@@ -721,7 +721,7 @@ v0.11
     * ADD : french translation
     * ADD : Merkaartor document (*.mdc)
     * FIX : Apply button in Preferences now updates the main window immediately
-    * FIX : if a feature contains a node more than once, if the node is deleted, only the first occurence is removed
+    * FIX : if a feature contains a node more than once, if the node is deleted, only the first occurrence is removed
     * ADD : merge nodes function
     * FIX : don't ignore "width" tags on export
     * ADD : translation capabilities
@@ -839,7 +839,7 @@ v0.07 18 aug 2007
     * ADD : nice painting for water
     * ADD : file->new menu option to start a new map
     * FIX : change current directory when opening a file
-    * FIX : surpress drawing artefact when creating a new segment
+    * FIX : suppress drawing artefact when creating a new segment
     * FIX : avoid Qt to have to process download notifications recursively
     * ADD : scripts to create the windows installation package
     * ADD : create way from selected segments tool
@@ -855,7 +855,7 @@ v0.06 5 dec 2006
     * ADD : type combobox to set highway tag
     * FIX : no busy waiting for OSM download
     * ADD : progress dialog while downloading from OSM
-    * FIX : refresh view immediatly after download
+    * FIX : refresh view immediately after download
     * FIX : download segments outside original bounding box for roads
     * FIX : don't call QStatusbar methods from a paintEvent
     * FIX : speed up drawing of roads when zoomed out
diff --git a/COMPILE.md b/COMPILE.md
new file mode 100644
index 0000000..5e9d1fb
--- /dev/null
+++ b/COMPILE.md
@@ -0,0 +1,222 @@
+# Compiling Merkaartor
+
+These are the instructions for compiling Merkaartor from git source. Here is the
+short version, given you have all the dependencies and are familiar with your
+build environment:
+
+```
+$ git clone https://github.com/openstreetmap/merkaartor.git && cd merkaartor
+$ qmake -r
+$ make -j8 release
+```
+
+And run it using:
+
+```
+$ binaries/bin/merkaartor
+```
+
+If this is not enough, here are more detailed instructions:
+
+## Prerequisites
+
+You will need the following packages installed:
+
+ - Working C++ compiler
+ - Qt 4.x (4.4.0 or newer) or Qt 5.x (5.3.1 or later)
+ - Proj.4
+ - GDAL (2.0.0 or newer for GDAL exports)
+ - spatialite-4.1.0 or newer for GDAL exports
+ - (For Windows Installer) NSIS-3
+
+The OS specifics will be explained further down.
+
+### Linux
+
+Install the above packages using your package manager. For Ubuntu, this would
+look like this:
+
+```
+ $ sudo apt-get -qq install libgdal-dev libproj-dev
+```
+
+For Qt4:
+
+```
+ $ sudo apt-get -qq install libqt4-xml libqt4-network libqt4-gui libqt4-svg libqt4-webkit libqt4-dev qt4-qmake
+```
+
+Or for Qt5: 
+
+```
+ $ sudo apt-get -qq install libqt5xml5* libqt5network5* libqt5gui5* libqt5svg5* libqt5webkit5* libqt5quick5* qtdeclarative5-dev qttools5-dev qtbase5-dev qt5-qmake qtchooser
+```
+
+### Windows (32bit/64bit)
+
+In both cases, you will need to download MSYS2 for your architecture, and
+install some packages from msys shell (msys2_shell.bat).
+
+For 32bit, they are (the w64 is not a bug!):
+
+```
+$ pacman -S base-devel \
+	msys/git \
+	mingw32/mingw-w64-i686-qt5 \
+	mingw32/mingw-w64-i686-gdal \
+	mingw32/mingw-w64-i686-proj \
+	mingw32/mingw-w64-i686-openjpeg2 \
+	mingw32/mingw-w64-i686-json-c
+```
+
+For 64bit, they are:
+
+```
+$ pacman -S base-devel \
+	msys/git \
+	mingw64/mingw-w64-x86_64-qt5 \
+	mingw64/mingw-w64-x86_64-gdal \
+	mingw64/mingw-w64-x86_64-proj \
+	mingw64/mingw-w64-x86_64-openjpeg2 \
+	mingw64/mingw-w64-x86_64-json-c
+```
+
+Done? Continue to the next step, but run a different msys shell, the mingw32 or
+mingw64, based on your architecture. Note that if you'll run mingw32 shell from
+64bit msys installtion, strange stuff will happen, so don't do it.
+
+### Mac OS X
+
+You will need functional xcode (or other c++ compiler), and libraries installed
+from [homebrew](http://brew.sh).
+
+```
+brew install gdal proj qt
+```
+
+If you want to use qt5, you need to force link it, as homebrew guys consider Qt4
+the default:
+
+```
+brew install qt5
+brew link --force qt5
+```
+
+You can do without linking, but you will need to manually supply some paths to
+the build environment.
+
+## Compilation
+
+### Clone the repository
+
+```
+$ git clone https://github.com/openstreetmap/merkaartor.git && cd merkaartor
+```
+
+>  By default, this is the latest development version. If you want to use an older
+>  one, you have to checkout the commit/tag:
+>  
+>  $ git checkout 0.17.0
+>  
+>  Please, use this only for testing (for example, if some feature does not
+>  work, but it did in older release and you want to check which one), never
+>  report bugs for older versions.
+
+### Run qmake
+
+```
+$ qmake -r
+```
+
+Note that you need the Qt4 or Qt5 version of qmake - running the Qt3 version
+will generate incorrect makefiles.  If both are installed, take care to run the
+correct version.  For example, on Fedora/Debian run
+
+```
+$ qmake-qt4
+```
+
+and on (K)ubuntu run
+
+```
+$ /usr/share/qt4/bin/qmake
+```
+
+There are some parameters you can pass to qmake to customize build:
+
+| Parameter | Meaning |
+| --- | ---
+| PREFIX=<path>               | base prefix for installation (unix only) |
+| TRANSDIR_MERKAARTOR=<path>  | where will the Merkaartor translations be installed |
+| TRANSDIR_SYSTEM=<path>      | where your global Qt translation directory is | 
+| NODEBUG=1                   | release target |
+| NOUSEWEBKIT                 | disable use of WebKit (Yahoo adapter) |
+| SYSTEM_QTSA                 | use system copy of qtsingleapplication instead of internal |
+| SYSTEM_QUAZIP               | use system copy of quazip instead of internal |
+| SYSTEM_QUAZIP_LDFLAGS       | custom flags instead of the default "-lquazip", if your library has different name |
+| SPATIALITE=1                | compile spatialite backend (not working) and SpatialiteBackground plugin (state unknown). Use at your own risk. |
+
+
+### Run make
+
+On Windows:           $ make release
+On other platforms:   $ make
+Debug build:          $ make debug
+
+On Linux, make release fails, as the qmake does not generate proper goal in
+Makefiles, but release is the default. On most Windows installations, the debug
+is the default and we need to specify the release manually. Sorry about that.
+
+### Done!
+
+If you are lucky, you'll find an executable in the binaries subdirectory.
+Otherwise, check our [github page](http://github.com/openstreetmap/merkaartor), especially check the issues and possibly
+report yours.
+
+## Packaging
+
+If you want to create installer package, read further.
+
+### Linux
+
+Nothing special here, just follow your distribution's guidelines.
+
+### Windows
+
+You first have to copy all dependencies of merkaartor to the binaries/bin
+directory. The windows/copydeps.sh script does just that:
+
+```
+$ ./windows/copydeps.sh
+```
+Note that if you made a debug build, all the debug libraries will end up in
+binaries/bin, and there they take almost 1.1G (that's why I'm not publishing
+installer with debug symbols).
+
+You can take the binaries/bin and distribute it as a zip, or create an
+executable installer by invoking NSIS:
+
+```
+$ makensis windows/installer.nsi
+```
+
+### Mac OS X
+
+Running `macdeployqt` should be enough, but for now, there is a bit more work to
+do:
+
+```
+$ cd binaries/bin
+mv plugins merkaartor.app/Contents
+macdeployqt merkaartor.app -dmg
+```
+
+This should give you merkaartor.dmg. Due to a [bug in
+macdeployqt](https://bugreports.qt.io/browse/QTBUG-53738), you might need to
+create the archive manually:
+
+```
+$ hdiutil create "merkaartor.dmg" -srcfolder merkaartor.app -format UDZO -volname merkaartor -verbose -size 130m
+```
+
+But you still need to run `macdeployqt` to copy all the dependencies.
diff --git a/HACKING b/HACKING
deleted file mode 100644
index b4faec1..0000000
--- a/HACKING
+++ /dev/null
@@ -1,11 +0,0 @@
-This are some basic notes on hacking on merkaartor
-
-- fiddling with tagging templates
-	see Templates to add/modify templates
-- adding a language
-	edit Merkaartor.pro and add your language
-	edit Preferences/PreferencesDialog function initLanguages
-	lupdate -> linguist -> lrelease (see the Qt docs about these)
-
-If you want to change the default rendering of any of those
-items see the Styles/Classic.mas file.
diff --git a/HACKING.md b/HACKING.md
new file mode 100644
index 0000000..06fa7e2
--- /dev/null
+++ b/HACKING.md
@@ -0,0 +1,61 @@
+# Hacking Merkaartor
+
+Here are some tips if you want to hack or debug Merkaartor.
+
+## Tag templates
+
+Tag templates are xml files under the Templates directory. See default.mat as a
+refernce. Basically a `widget` tag specifies a choice in the Properties dialog,
+and `value` tags choices for the value. It's not pretty or easy to use.
+
+Before you start hacking, drop an email to the list. I think it's worth adopting
+JOSM presets instead, as we gain pretty exhaustive database and people will have
+easier time switching between Merkaartor/JOSM, which is always good!
+
+## Translations
+
+There is more info in the translations/README.md. However, if you just want to
+contribute to translations either by translating existing language or adding a
+new one, visit our transifex page and start there. There are a few words on our
+web http://merkaartor.be/p/docs/localization , together with link to the
+transifex page.
+
+## Rendering styles
+
+Stored in Styles/ directory, but not to be edited by hand. Use Merkaartor's
+style editor instead, and let it save for you.
+
+If you want to add a new style, do so freely. Keep changes to existing files to
+a minimum, so the overall look, fell and rendering speed won't change much.
+
+I would be very happy if someone made a comprehensive style suited for editing
+POIs, yet easy to navigate.
+
+## Address sanitizer
+
+Can be enabled by:
+
+```
+qmake -r SANITIZE=1
+```
+
+It might complain about some stuff in other libraries (gdal, qt), so keep in
+mind these are not our responsibilities for the most case. Usually all the bugs
+detected are severe and should be reported. Even running Merkaartor with
+sanitizer enabled and reporting bugs is a huge benefit, though there is severe
+performance hit involved.
+
+## Variable naming convention
+
+You might have noticed the strange naming convention for variables. They are
+often prefixed with a definite or indefinite article, like aLayer and theLayer.
+It's been in Merkaartor since the very beginning of git history. I know nothing
+about it, so if you have seen it elsewhere, let me know!
+
+My best bet, based on some observation and common sense is that theVariable
+would represent the same object during it's lifetime. aVariable could change
+objects, for example if it's used in a loop, iterating over layers.
+
+I don't expect anyone to keep this notation in new code, but it might be a good
+idea in some cases. However, I will not accept commits that try to change this
+notation just for the sake of changing.
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index b12f00a..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,137 +0,0 @@
-This document is about compiling Merkaartor from source. It's useful if you want
-to tinker with it, want newest version, report bugs, or there is no premade
-package for your distribution. It's not meant as the primary source for regular
-users; please, refer to the README.md on how to get a premade package.
-
-If you still want to build your own Merkaartor, here is how, it's pretty simple:
-
-Prerequisites:
-==============
-
- * Working C++ compiler
- * Qt 4.4.0 or later development environment (for Qt 5.x.y, use qt5 branch)
- * Proj.4
- * GDAL (2.0.0 or newer for GDAL exports)
- * spatialite-4.1.0 or newer for GDAL exports
- * (For Windows Installer) NSIS-3
-
-Linux
------
-
-Do install the packages in question, and if your distribution uses -dev packages
-for development tools, install them too. As there is way too many distributions,
-I won't go into details.
-
-Windows (32bit/64bit)
----------------------
-
-In both cases, you will need to download MSYS2 for your architecture, and
-install some packages from msys shell (msys2_shell.bat).
-
-For 32bit, they are (the w64 is not a bug!):
-
-$ pacman -S base-devel \
-	msys/git \
-	mingw32/mingw-w64-i686-qt5 \
-	mingw32/mingw-w64-i686-gdal \
-	mingw32/mingw-w64-i686-proj \
-	mingw32/mingw-w64-i686-openjpeg2 \
-	mingw32/mingw-w64-i686-json-c
-
-For 64bit, they are:
-
-$ pacman -S base-devel \
-	msys/git \
-	mingw64/mingw-w64-x86_64-qt5 \
-	mingw64/mingw-w64-x86_64-gdal \
-	mingw64/mingw-w64-x86_64-proj \
-	mingw64/mingw-w64-x86_64-openjpeg2 \
-	mingw64/mingw-w64-x86_64-json-c
-
-Done? Continue to the next step, but run a different msys shell, the mingw32 or
-mingw64, based on your architecture. Note that if you'll run mingw32 shell from
-64bit msys installtion, strange stuff will happen, so don't do it.
-
-
-Instructions:
-=============
-
-0. Get the sources, either tarball or git:
-
-$ git clone https://github.com/openstreetmap/merkaartor.git
-
- !  By default, this is the latest development version. If you want to use an older
- !  one, you have to checkout the commit/tag:
- !  
- !  $ git checkout 0.17.0
- !  
- !  Please, use this only for testing (for example, if some feature does not
- !  work, but it did in older release and you want to check which one), never
- !  report bugs for older versions.
-
-1. Change directory to the one in which you unpacked Merkaartor
-
-For example
-$ cd /home/me/src/Merkaartor-0.xx
-
-2. Run qmake
-
-$ qmake -r
-
-Note that you need the Qt4 or Qt5 version of qmake - running the Qt3 version
-will generate incorrect makefiles.  If both are installed, take care to run the
-correct version.  For example, on Fedora/Debian run
-
-$ qmake-qt4
-
-and on (K)ubuntu run
-
-$ /usr/share/qt4/bin/qmake
-
-2.1 Other qmake parameters for Merkaartor.pro
-
-PREFIX=<path>               - base prefix for installation (unix only)
-TRANSDIR_MERKAARTOR=<path>  - where will the Merkaartor translations be installed
-TRANSDIR_SYSTEM=<path>      - where your global Qt translation directory is
-NODEBUG=1                   - release target
-NOUSEWEBKIT                 - disable use of WebKit (Yahoo adapter)
-SYSTEM_QTSA                 - use system copy of qtsingleapplication instead of internal
-SYSTEM_QUAZIP               - use system copy of quazip instead of internal
-SPATIALITE=1                - compile spatialite backend (not working) and
-                              SpatialiteBackground plugin (state unknown). Use
-                              at your own risk.
-
-
-3. Run make.
-
-On Windows:           $ make release
-On other platforms:   $ make
-Debug build:          $ make debug
-
-On Linux, make release fails, as the qmake does not generate proper goal in
-Makefiles, but release is the default. On most Windows installations, the debug
-is the default and we need to specify the release manually. Sorry about that.
-
-4. If you are lucky, you'll find an executable in the binaries subdirectory.
-Otherwise, check our github page [1], especially check the issues and possibly
-report yours.
-
-[1] https://github.com/openstreetmap/merkaartor
-
-5. (Optional: Building Windows Bundle/Installer)
-
-You first have to copy all dependencies of merkaartor to the binaries/bin
-directory. The windows/copydeps.sh script does just that:
-
-$ ./windows/copydeps.sh
-
-You can now copy the directory to a flash drive and carry it with you
-everywhere. Yey! If you need an installer, you'll have to install NSIS 3 and
-compile the windows/installer.nsi
-
-Note that if you made a debug build, all the debug libraries will end up in
-binaries/bin, and there they take almost 1.1G (that's why I'm not publishing
-installer with debug symbols).
-
-
-Bart Vanhauwaert, Ladislav Láska, and others
diff --git a/Icons/128x128/merkaartor.png b/Icons/128x128/merkaartor.png
new file mode 100644
index 0000000..c85f7ea
Binary files /dev/null and b/Icons/128x128/merkaartor.png differ
diff --git a/Icons/16x16/merkaartor.png b/Icons/16x16/merkaartor.png
new file mode 100644
index 0000000..446f0e4
Binary files /dev/null and b/Icons/16x16/merkaartor.png differ
diff --git a/Icons/192x192/merkaartor.png b/Icons/192x192/merkaartor.png
new file mode 100644
index 0000000..2df1b9a
Binary files /dev/null and b/Icons/192x192/merkaartor.png differ
diff --git a/Icons/22x22/merkaartor.png b/Icons/22x22/merkaartor.png
new file mode 100644
index 0000000..83bfb54
Binary files /dev/null and b/Icons/22x22/merkaartor.png differ
diff --git a/Icons/24x24/merkaartor.png b/Icons/24x24/merkaartor.png
new file mode 100644
index 0000000..472b90c
Binary files /dev/null and b/Icons/24x24/merkaartor.png differ
diff --git a/Icons/256x256/merkaartor.png b/Icons/256x256/merkaartor.png
new file mode 100644
index 0000000..ca8de94
Binary files /dev/null and b/Icons/256x256/merkaartor.png differ
diff --git a/Icons/32x32/merkaartor.png b/Icons/32x32/merkaartor.png
new file mode 100644
index 0000000..91621f2
Binary files /dev/null and b/Icons/32x32/merkaartor.png differ
diff --git a/Icons/36x36/merkaartor.png b/Icons/36x36/merkaartor.png
new file mode 100644
index 0000000..d07aef1
Binary files /dev/null and b/Icons/36x36/merkaartor.png differ
diff --git a/Icons/40x40/merkaartor.png b/Icons/40x40/merkaartor.png
new file mode 100644
index 0000000..7b4e3d0
Binary files /dev/null and b/Icons/40x40/merkaartor.png differ
diff --git a/Icons/42x42/merkaartor.png b/Icons/42x42/merkaartor.png
new file mode 100644
index 0000000..b2dfaa2
Binary files /dev/null and b/Icons/42x42/merkaartor.png differ
diff --git a/Icons/512x512/merkaartor.png b/Icons/512x512/merkaartor.png
new file mode 100644
index 0000000..dde4fe7
Binary files /dev/null and b/Icons/512x512/merkaartor.png differ
diff --git a/Icons/64x64/merkaartor.png b/Icons/64x64/merkaartor.png
new file mode 100644
index 0000000..b673b2a
Binary files /dev/null and b/Icons/64x64/merkaartor.png differ
diff --git a/Icons/72x72/merkaartor.png b/Icons/72x72/merkaartor.png
new file mode 100644
index 0000000..763f226
Binary files /dev/null and b/Icons/72x72/merkaartor.png differ
diff --git a/Icons/80x80/merkaartor.png b/Icons/80x80/merkaartor.png
new file mode 100644
index 0000000..9ddcec0
Binary files /dev/null and b/Icons/80x80/merkaartor.png differ
diff --git a/Icons/8x8/merkaartor.png b/Icons/8x8/merkaartor.png
new file mode 100644
index 0000000..b68f5ee
Binary files /dev/null and b/Icons/8x8/merkaartor.png differ
diff --git a/Icons/96x96/merkaartor.png b/Icons/96x96/merkaartor.png
new file mode 100644
index 0000000..268b7bf
Binary files /dev/null and b/Icons/96x96/merkaartor.png differ
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a44d72a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,45 @@
+# Merkaartor
+
+An opensource OSM editor, written in C++ and Qt.
+
+## Health status
+
+| Platform | Status |
+| -------- | ------ |
+| Windows (Tea-CI) | [![Build Status](https://tea-ci.org/api/badges/openstreetmap/merkaartor/status.svg)](https://tea-ci.org/openstreetmap/merkaartor) 
+| Linux and Mac OS X (Travis-CI) | [![Build Status](https://travis-ci.org/openstreetmap/merkaartor.svg?branch=master)](https://travis-ci.org/openstreetmap/merkaartor) |
+
+## Installation
+
+### Binaries
+
+Binary installation files are available for various Linux distributions and Windows. 
+
+These Linux distributions are known to provide current versions of Merkaartor:
+ - Arch (via AUR)
+ - Debian
+ - Fedora
+ - Gentoo
+
+The Windows installer and Mac OS X bundle is available on the website: http://merkaartor.be/p/download
+
+### Source
+
+You can clone this repository to obtain the current development version, or checkout a specific release (all of them are tagged). Detailed instructions can be found in the [COMPILE.md](COMPILE.md) file in this directory.
+
+## Nightly builds
+
+For Windows and Mac OS X, nightly builds are automatically generated using Tea-CI and Travis-CI, uploaded to bintray:
+https://bintray.com/krakonos/nightly/Merkaartor .
+
+There are currently no nightlies for Linux. It's usually easy to compile from
+source, and the vast amount of distributions doesn't make it easy. I'm
+considering making Ubuntu PPA. Let us know if you're interested!
+
+## Hacking the code
+
+I'm always happy to see improvements done by other people. Feel free to
+contribute by sending pull requests for big or small stuff! There is some (very
+little, but it'll grow) useful stuff in [HACKING.md](HACKING.md), but if you
+have questions, contacts us on merkaartor at openstreetmap.org to have them
+answered!
diff --git a/Styles/Merkaartor.mas b/Styles/Merkaartor.mas
new file mode 100644
index 0000000..77c54dc
--- /dev/null
+++ b/Styles/Merkaartor.mas
@@ -0,0 +1,1085 @@
+<mapStyle>
+<global
+/>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ backgroundColor="#bdbdbdff" backgroundScale="0.1" backgroundOffset="0.1"
+ fillColor="#edededfc"
+ labelColor="#333333fc" labelScale="5" labelOffset="5"
+ labelFont="DejaVu Sans,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[area] isoneof (yes , true)"/>
+</painter>
+<painter
+ backgroundColor="#506077fc" backgroundScale="1" backgroundOffset="6"
+ foregroundColor="#809bc0fc" foregroundScale="0.5" foregroundOffset="4"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333fc" labelScale="2" labelOffset="4"
+ labelFont="DejaVu Sans,12,-1,5,50,0,0,0,0,0" labelTag="" labelBackgroundColor="#809bc0fc" labelBackgroundTag="ref"
+>
+  <selector expr="[highway] isoneof (motorway , motorway_link)"/>
+</painter>
+<painter
+ backgroundColor="#477147fc" backgroundScale="1.5" backgroundOffset="4"
+ foregroundColor="#7fc97ffc" foregroundScale="1" foregroundOffset="3.5"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333fc" labelScale="1.5" labelOffset="4"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelBackgroundColor="#7fc97ffc" labelBackgroundTag="ref"
+>
+  <selector expr="[highway] isoneof (trunk , trunk_link)"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ backgroundColor="#8d4346fc" backgroundScale="1.5" backgroundOffset="4"
+ foregroundColor="#e46d71fc" foregroundScale="1" foregroundOffset="3.5"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333fc" labelScale="1.5" labelOffset="4"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelBackgroundColor="#e46d71fc" labelBackgroundTag="ref"
+>
+  <selector expr="[highway] isoneof (primary , primary_link)"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ backgroundColor="#a37b48fc" backgroundScale="1.5" backgroundOffset="3"
+ foregroundColor="#fdbf6ffc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333fc" labelScale="1.3" labelOffset="4"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelBackgroundColor="#fdbf6ffc" labelBackgroundTag="ref"
+>
+  <selector expr="[highway] isoneof (secondary , secondary_link)"/>
+</painter>
+<painter
+ zoomUnder="0.05" zoomUpper="1e+07"
+ backgroundColor="#999999fc" backgroundScale="1.5" backgroundOffset="3"
+ foregroundColor="#ffffccfc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333fc" labelScale="1.2" labelOffset="4"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelBackgroundColor="#ffffccfc" labelBackgroundTag="ref"
+>
+  <selector expr="[highway] isoneof (tertiary , tertiary_link)"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#777777fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is residential"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#777777fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is unclassified"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#aaaaaafc" backgroundScale="1.1" backgroundOffset="2"
+ foregroundColor="#eeeeeefc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.1" labelOffset="2"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is construction"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#aaaaaafc" backgroundScale="1.1" backgroundOffset="2"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.1" labelOffset="2"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is road"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#777777fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#edededfc" foregroundScale="1" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is pedestrian"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#ff7777fc" backgroundScale="1" backgroundOffset="1"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="-1"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1" labelOffset="2"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is minor"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ foregroundColor="#777777fc" foregroundScale="0.5" foregroundOffset="0"
+ foregroundDashDown="2" foregroundDashUp="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.1" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[highway] is byway"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ foregroundColor="#777777fc" foregroundScale="0.1" foregroundOffset="0"
+ foregroundDashDown="5" foregroundDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.1" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[highway] is path"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ foregroundColor="#996600fc" foregroundScale="0.5" foregroundOffset="0"
+ foregroundDashDown="2" foregroundDashUp="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[highway] is track"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#0000fffc" foregroundScale="0.3" foregroundOffset="0"
+ foregroundDashDown="1" foregroundDashUp="1.8"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.1" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[highway] is cycleway"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#fa8072fc" foregroundScale="0.3" foregroundOffset="0"
+ foregroundDashDown="1" foregroundDashUp="1.8"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1.1" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[highway] is footway"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#00ff00fc" foregroundScale="0.4" foregroundOffset="0"
+ foregroundDashDown="2" foregroundDashUp="4"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[highway] is bridleway"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ foregroundColor="#aaaaaafc" foregroundScale="1" foregroundOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000ff" labelScale="1" labelOffset="2"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name">
+  <selector expr="[highway] is living_street"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#636363fc" backgroundScale="0.6" backgroundOffset="1"
+ foregroundColor="#fdfdfdfc" foregroundScale="0.6" foregroundOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[highway] is service"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#fa8072fc" foregroundScale="1" foregroundOffset="0"
+ foregroundDashDown="0.2" foregroundDashUp="1.3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[highway] is steps"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/bus_stop.p.12.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[highway] is bus_stop"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/mini_round.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[highway] is mini_roundabout"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/vehicle/restrictions/traffic-light.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[highway] is traffic_signals"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ backgroundColor="#000000fc" backgroundScale="1" backgroundOffset="4"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ touchupColor="#000000fc" touchupScale="1" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is rail"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ backgroundColor="#000000fc" backgroundScale="1" backgroundOffset="4"
+ foregroundColor="#ccccccfc" foregroundScale="1" foregroundOffset="2"
+ touchupColor="#000000fc" touchupScale="1" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] isoneof (abandoned , construction)"/>
+</painter>
+<painter
+ zoomUnder="0.04" zoomUpper="1e+07"
+ backgroundColor="#000000fc" backgroundScale="0.5" backgroundOffset="4"
+ foregroundColor="#fffffffc" foregroundScale="0.5" foregroundOffset="2"
+ touchupColor="#000000fc" touchupScale="0.5" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is light_rail"/>
+</painter>
+<painter
+ zoomUnder="0.04" zoomUpper="1e+07"
+ backgroundColor="#606060fc" backgroundScale="0.5" backgroundOffset="4"
+ foregroundColor="#fffffffc" foregroundScale="0.5" foregroundOffset="2"
+ touchupColor="#606060fc" touchupScale="0.5" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is subway"/>
+</painter>
+<painter
+ zoomUnder="0.0666667" zoomUpper="1e+07"
+ backgroundColor="#808080fc" backgroundScale="0.3" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="0.3" foregroundOffset="1"
+ touchupColor="#808080fc" touchupScale="0.3" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is tram"/>
+</painter>
+<painter
+ zoomUnder="0.0666667" zoomUpper="1e+07"
+ backgroundColor="#808080fc" backgroundScale="0.2" backgroundOffset="2"
+ foregroundColor="#fffffffc" foregroundScale="0.2" foregroundOffset="0.75"
+ touchupColor="#808080fc" touchupScale="0.3" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is narrow_gauge"/>
+</painter>
+<painter
+ zoomUnder="0.0666667" zoomUpper="1e+07"
+ backgroundColor="#808080fc" backgroundScale="0.3" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="0.3" foregroundOffset="1"
+ touchupColor="#808080fc" touchupScale="0.3" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is funicular"/>
+</painter>
+<painter
+ zoomUnder="0.0666667" zoomUpper="1e+07"
+ backgroundColor="#d0d0d0fc" backgroundScale="0.3" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="0.3" foregroundOffset="1"
+ touchupColor="#d0d0d0fc" touchupScale="0.3" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is abandoned"/>
+</painter>
+<painter
+ zoomUnder="0.0666667" zoomUpper="1e+07"
+ backgroundColor="#d0d0d0fc" backgroundScale="0.3" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="0.3" foregroundOffset="1"
+ touchupColor="#d0d0d0fc" touchupScale="0.3" touchupOffset="2"
+ touchupDashDown="3" touchupDashUp="3"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[railway] is disused"/>
+</painter>
+<painter
+ zoomUnder="0.03" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/station.png" iconScale="0" iconOffset="0"
+ labelColor="#6060f0ff" labelScale="7" labelOffset="5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[railway] is station"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/halt.png" iconScale="0" iconOffset="0"
+ labelColor="#6060f0ff" labelScale="7" labelOffset="5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[railway] isoneof (tram_stop , halt)"/>
+</painter>
+<painter
+ zoomUnder="0.0666667" zoomUpper="1e+07"
+ backgroundColor="#808080fc" backgroundScale="0.3" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="0.3" foregroundOffset="1"
+ touchupColor="#808080fc" touchupScale="0.3" touchupOffset="2"
+ touchupDashDown="2" touchupDashUp="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[aerialway] is cable_car"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ fillColor="#b6fdb6cd"
+ labelColor="#333333fc" labelScale="10" labelOffset="6"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[leisure] isoneof (park , garden)"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ fillColor="#8ad3afcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[leisure] is pitch"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ foregroundColor="#770000fc" foregroundScale="0" foregroundOffset="1"
+ fillColor="#ff777777"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[leisure] is track"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#aed1a0cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[natural] is wood"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#aed1a0cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[natural] is meadow"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ foregroundColor="#007700fc" foregroundScale="0" foregroundOffset="1"
+ fillColor="#bccf8f77"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[natural] is scrub"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ foregroundColor="#007700fc" foregroundScale="0" foregroundOffset="1"
+ fillColor="#55994477"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[natural] is heath"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#b5d0d0cd"
+ labelColor="#6699ccfc" labelScale="7" labelOffset="6"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[natural] is water"/>
+</painter>
+<painter
+ fillColor="#b5d0d0cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[natural] is fell"/>
+</painter>
+<painter
+ fillColor="#f2efe9cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[natural] is land"/>
+</painter>
+<painter
+ zoomUnder="0" zoomUpper="1e+07"
+ backgroundColor="#b5d0d0ff" backgroundScale="4" backgroundOffset="4"
+ exterior="yes" foregroundColor="#55aaffff" foregroundScale="0" foregroundOffset="2"
+>
+  <selector expr="[natural] is coastline"/>
+</painter>
+<painter
+ zoomUnder="0.03" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/peak.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="4" labelOffset="9"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[natural] is peak"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/misc/landmark/spring.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[natural] is spring"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#797979fc" foregroundScale="0.3" foregroundOffset="1"
+ touchupColor="#000000ff" touchupScale="0.5" touchupOffset="1"
+ touchupDashDown="1" touchupDashUp="1"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[natural] is cliff"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ fillColor="#f7efb7cd"
+ icon=":/Art/Mapnik/parking.png" iconScale="0" iconOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is parking"/>
+</painter>
+<painter
+ zoomUnder="0.05" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/Art/Mapnik/hospital.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="7" labelOffset="5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is hospital"/>
+</painter>
+<painter
+ zoomUnder="0.05" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/health/pharmacy.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is pharmacy"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ foregroundColor="#dbbaabfc" foregroundScale="0" foregroundOffset="1"
+ fillColor="#f0f0d977"
+ labelColor="#333333ff" labelScale="1.5" labelOffset="6"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[amenity] isoneof (school , university)"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/transport/taxi.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is taxi"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/public/arts_centre.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is arts_centre"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/recreation/theater.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is theatre"/>
+</painter>
+<painter
+ fillColor="#aacbafcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[amenity] is grave_yard"/>
+</painter>
+<painter
+ zoomUnder="0.03" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/airport.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is airport"/>
+</painter>
+<painter
+ zoomUnder="0.06" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/post_office.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is post_office"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/post_box.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is post_box"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/pint.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is pub"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/recycling.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is recycling"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/bus_stop.p.12.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is bus_stop"/>
+</painter>
+<painter
+ zoomUnder="0.15" zoomUpper="1e+07"
+ foregroundColor="#111111ff" foregroundScale="0" foregroundOffset="2"
+ fillColor="#77777780"
+ icon=":/Art/Mapnik/place_of_worship.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is place_of_worship"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/shopping/rental/library.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is library"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/food/restaurant.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is restaurant"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/food/snacks.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is fast_food"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/food/cafe.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is cafe"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/recreation/cinema.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is cinema"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/recreation/nightclub.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is nightclub"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/public/telephone.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is telephone"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#ead8bdcd"
+ labelColor="#333333fc" labelScale="7" labelOffset="5.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[landuse] is vineyard"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#8dc56ccd"
+ fillWithIcon="yes" icon=":/Art/Mapnik/forest.png" iconScale="0" iconOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is forest"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#aaaaaacd"
+ labelColor="#111111fc" labelScale="7" labelOffset="5.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[landuse] is quarry"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#b5d0d0cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is reservoir"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#ead8bdcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is farm"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#d0eba977"
+ labelColor="#333333fc" labelScale="7" labelOffset="5.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[landuse] is recreation_ground"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#d0eba977"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is greenfield"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#9d9d6c77"
+ labelColor="#333333fc" labelScale="7" labelOffset="5.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[landuse] isoneof (brownfield , landfill)"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#d0eba977"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is grass"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#d0eba977"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is village_green"/>
+</painter>
+<painter
+ fillColor="#c8b084cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is allotments"/>
+</painter>
+<painter
+ backgroundColor="#0000fffc" backgroundScale="0" backgroundOffset="3"
+ fillColor="#a0b6ffcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is basin"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#dcdcdc55"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is residential"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#ffaeb9cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is industrial"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#f1dadacd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is retail"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#efc8c8cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is commercial"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#edededcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[landuse] is pedestrian"/>
+</painter>
+<painter
+ fillColor="#aacbafcd"
+ labelColor="#333333fc" labelScale="7" labelOffset="5.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[landuse] is cemetery"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#d0eba977"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[leisure] is common"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#abdf96cd"
+>
+  <selector expr="[leisure] is nature_reserve"/>
+</painter>
+<painter
+ fillColor="#cc9999cd"
+ labelColor="#333333ff" labelScale="1.5" labelOffset="6"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="building=*"/>
+</painter>
+<painter
+ fillColor="#33cc99cd"
+ labelColor="#333333ff" labelScale="7" labelOffset="5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelArea="yes">
+  <selector expr="[leisure] is stadium"/>
+</painter>
+<painter
+ foregroundColor="#b5d0d0fc" foregroundScale="0" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#6699ccff" labelScale="1.3" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[waterway] isoneof (river , canal)"/>
+</painter>
+<painter
+ foregroundColor="#b5d0d0fc" foregroundScale="0" foregroundOffset="2"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#6699ccff" labelScale="1.1" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[waterway] isoneof (stream , drain)"/>
+</painter>
+<painter
+ fillColor="#b5d0d0cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[waterway] is riverbank"/>
+</painter>
+<painter
+ fillColor="#444444cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is basketball"/>
+</painter>
+<painter
+ fillColor="#c85656cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is tennis"/>
+</painter>
+<painter
+ fillColor="#00aa7fcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is soccer"/>
+</painter>
+<painter
+ fillColor="#00aa7fcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is football"/>
+</painter>
+<painter
+ fillColor="#00aa7fcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is athletics"/>
+</painter>
+<painter
+ fillColor="#00aa7fcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is skating"/>
+</painter>
+<painter
+ fillColor="#00c38fcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is multi"/>
+</painter>
+<painter
+ backgroundColor="#0000fffc" backgroundScale="0" backgroundOffset="3"
+ fillColor="#a0b6ffcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[sport] is swimming"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#707070fc" backgroundScale="0.1" backgroundOffset="0"
+>
+  <selector expr="[power] is line"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/power_tower.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[power] is tower"/>
+</painter>
+<painter
+ backgroundColor="#505050fc" backgroundScale="0.2" backgroundOffset="0"
+ fillColor="#b0b0b0cd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[power] isoneof (station , sub_station)"/>
+</painter>
+<painter
+ fillColor="#ff8f8fcd"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[military] is barracks"/>
+</painter>
+<painter
+ zoomUnder="0.03" zoomUpper="1e+07"
+ fillColor="#a2ef9477"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[leisure] is playground"/>
+</painter>
+<painter
+ zoomUnder="0.025" zoomUpper="1e+07"
+ backgroundColor="#b0b0c0fc" backgroundScale="4" backgroundOffset="4"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[aeroway] isoneof (runway , taxiway)"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#0000fffc" foregroundScale="1" foregroundOffset="0"
+>
+  <selector expr="[route] is ferry"/>
+</painter>
+<painter
+ zoomUnder="0.03" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/tower.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[man_made] is mast"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/Art/Mapnik/tower.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[man_made] is tower"/>
+</painter>
+<painter
+ icon=":/Art/Places/place_town.png" iconScale="0" iconOffset="0"
+ labelColor="#000000dd" labelScale="5" labelOffset="25"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[place] is city"/>
+</painter>
+<painter
+ zoomUnder="0.002" zoomUpper="1e+07"
+ fillColor="#dcdcdc55"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+>
+  <selector expr="[place] is town and  not Type is Node"/>
+</painter>
+<painter
+ zoomUnder="0.00666667" zoomUpper="1e+07"
+ icon=":/Art/Places/place_town.png" iconScale="0" iconOffset="0"
+ labelColor="#000000dd" labelScale="20" labelOffset="12"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[place] is town and Type is Node"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ icon=":/Art/Places/place_village.png" iconScale="0" iconOffset="0"
+ labelColor="#585858dd" labelScale="15" labelOffset="10"
+ labelFont="DejaVu Sans,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[place] is village"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ icon=":/Art/Places/place_village.png" iconScale="0" iconOffset="0"
+ labelColor="#333333dd" labelScale="4" labelOffset="3.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[place] is suburb"/>
+</painter>
+<painter
+ zoomUnder="0.02" zoomUpper="1e+07"
+ icon=":/Art/Places/place_hamlet.png" iconScale="0" iconOffset="0"
+ labelColor="#333333dd" labelScale="4" labelOffset="3.5"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[place] isoneof (hamlet , locality)"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/shopping/supermarket.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[shop] is supermarket"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/public/firebrigade.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[amenity] is fire_station"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/vehicle/fuel_station.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is fuel"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/money/bank.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] isoneof (bank , atm, bank;atm)"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/accommodation/shelter.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[amenity] is shelter"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/shopping/groceries/bakery.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[shop] is bakery"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/accommodation/hotel.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[tourism] is hotel"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/sightseeing/museum.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[tourism] is museum"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/sightseeing.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[tourism] is attraction"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/recreation/picnic.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[tourism] is picnic_site"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/sightseeing/monument.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[historic] is archaeological_site"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/sightseeing/monument.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[historic] is monument"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/sightseeing/castle.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[historic] is castle"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ icon=":/MapIcons/map-icons/square.small/sightseeing/memorial.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[historic] is memorial"/>
+</painter>
+<painter
+ zoomUnder="0.01" zoomUpper="1e+07"
+ fillColor="#f6666677"
+ icon=":/MapIcons/map-icons/square.small/sightseeing/ruins.png" iconScale="0" iconOffset="0"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[historic] is ruins"/>
+</painter>
+<painter
+ fillColor="#cc9999cd"
+>
+  <selector expr="[amenity] is public_building"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ foregroundColor="#a020f055" foregroundScale="0.3" foregroundOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#000000dd" labelScale="1.1" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[boundary] is administrative"/>
+</painter>
+<painter
+ zoomUnder="0.2" zoomUpper="1e+07"
+ labelColor="#333333ff" labelScale="1.5" labelOffset="8"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="addr:housenumber" labelHalo="yes">
+  <selector expr=" not [addr:housenumber] is _NULL_"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#ff0000fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ icon=":/MapIcons/map-icons/classic.small/vehicle/restrictions/maxheight.png" iconScale="0" iconOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#ff0000ff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelBackgroundColor="#ffffff7c" labelBackgroundTag="maxheight"
+>
+  <selector expr=" not [maxheight] is _NULL_"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#ff0000fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ icon=":/MapIcons/map-icons/classic.small/vehicle/restrictions/maxwidth.png" iconScale="0" iconOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#0000ffff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelBackgroundColor="#ffffff7c" labelBackgroundTag="maxwidth"
+>
+  <selector expr=" not [maxwidth] is _NULL_"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#ff0000fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ icon=":/MapIcons/map-icons/classic.small/vehicle/restrictions/maxweight.png" iconScale="0" iconOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#2020ffff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans Condensed,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelBackgroundColor="#ffffff7c" labelBackgroundTag="maxweight"
+>
+  <selector expr=" not [maxweight] is _NULL_"/>
+</painter>
+<painter
+ zoomUnder="0.1" zoomUpper="1e+07"
+ backgroundColor="#ff0000fc" backgroundScale="1.2" backgroundOffset="3"
+ foregroundColor="#fffffffc" foregroundScale="1" foregroundOffset="2"
+ icon=":/MapIcons/map-icons/classic.small/vehicle/restrictions/maxlength.png" iconScale="0" iconOffset="0"
+ drawTrafficDirectionMarks="yes" trafficDirectionMarksColor="#000000ff"
+ labelColor="#ff00ffff" labelScale="1.2" labelOffset="3"
+ labelFont="DejaVu Sans,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes" labelBackgroundColor="#ffffff7c" labelBackgroundTag="maxlength"
+>
+  <selector expr=" not [maxlength] is _NULL_"/>
+</painter>
+<painter
+ icon=":/MapIcons/map-icons/square.small/misc/information.png" iconScale="0" iconOffset="0"
+>
+  <selector expr="[tourism] is information"/>
+</painter>
+<painter
+ zoomUnder="0.333333" zoomUpper="1e+07"
+ backgroundColor="#ff00ffff" backgroundScale="2" backgroundOffset="4"
+ labelColor="#333333ff" labelScale="3.5" labelOffset="3"
+ labelFont="DejaVu Sans,12,-1,5,50,0,0,0,0,0" labelTag="name" labelHalo="yes">
+  <selector expr="[Default] Type is Node and HasTags"/>
+</painter>
+</mapStyle>
diff --git a/TODO b/TODO
deleted file mode 100644
index f889272..0000000
--- a/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
-- Implement printing (with barcode reference)
-- Implement generalization of Walking Paper plugin to own system
-- Implement GDAL writing
-- Implement GeoTIFF writing
-- Implement transaction log to allow replay after a crash
diff --git a/ci/travis-linux-install.sh b/ci/travis-linux-install.sh
new file mode 100755
index 0000000..79975d2
--- /dev/null
+++ b/ci/travis-linux-install.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -ev
+
+sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1397BC53640DB551
+sudo echo "deb http://archive.ubuntu.com/ubuntu trusty main universe restricted multiverse" \> /etc/apt/sources.list
+sudo apt-add-repository -y ppa:ubuntu-sdk-team/ppa
+sudo apt-get update -qq
+sudo apt-cache search qt
+sudo apt-get -qq install gdb libgdal-dev libproj-dev
+sudo apt-get -qq install libqt4-xml libqt4-network libqt4-gui libqt4-svg libqt4-webkit libqt4-dev qt4-qmake
+sudo apt-get -qq install libqt5xml5* libqt5network5* libqt5gui5* libqt5svg5* libqt5webkit5* libqt5quick5* qtdeclarative5-dev qttools5-dev qtbase5-dev qt5-qmake qtchooser
+qtchooser -list-versions
diff --git a/ci/travis-linux-script.sh b/ci/travis-linux-script.sh
new file mode 100755
index 0000000..5b68660
--- /dev/null
+++ b/ci/travis-linux-script.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -ev
+
+qtchooser -qt=qt$QT -run-tool=qmake
+make
diff --git a/ci/travis-osx-install.sh b/ci/travis-osx-install.sh
new file mode 100755
index 0000000..194592a
--- /dev/null
+++ b/ci/travis-osx-install.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+set -ev
+
+brew update
+
+if [ $QT == 4 ]; then
+    QT_PKG=qt
+else
+    QT_PKG=homebrew/versions/qt52
+fi
+
+# Uninstall ALL the GDAL. By default, there are more versions and macdeployqt
+# tried to embed an older one, that relies upon libspatialite.5, that is no
+# longer installed.
+brew uninstall --force gdal
+
+# To get GDAL 2.0: http://gis.stackexchange.com/questions/155403/install-gdal-2-0-on-a-macosx
+#brew install gdal --HEAD
+
+# Gdal and proj are already up to date, libspatialite is probably required by
+# one of them and that screws macdeployqt later on...
+brew install Dylibbundler gdal $QT_PKG
+brew link --force $QT_PKG
+
+find /usr/local -name "qmake*"
+find /usr/local -name "proj_api.h"
diff --git a/ci/travis-osx-script.sh b/ci/travis-osx-script.sh
new file mode 100755
index 0000000..c6d16de
--- /dev/null
+++ b/ci/travis-osx-script.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+set -ev
+
+git tag
+QMAKE=`find /usr/local -name "qmake" | head -n 1`
+$QMAKE SPATIALITE=0
+make
+lrelease src/src.pro
+
+find ./binaries
+
+cd binaries/bin
+mv plugins merkaartor.app/Contents/
+
+which hdiutil
+
+DEPLOY=`find /usr/local -name "macdeployqt" | head -n 1`
+$DEPLOY merkaartor.app -verbose=3
+
+du -s -h merkaartor.app
+hdiutil create "merkaartor.dmg" -srcfolder merkaartor.app -format UDZO -volname merkaartor -verbose -size 130m
+
+VERSION=`git describe --tags`
+mv merkaartor.dmg "merkaartor-${VERSION}-qt${QT}.dmg"
+
+# Prepare deployment description
+cat > deploy.json <<EOF
+{
+    "package": {
+        "name": "Merkaartor",
+        "repo": "nightly",
+        "subject": "krakonos"
+    },
+
+    "version": {
+        "name": "$VERSION"
+    },
+
+    "files":
+        [
+        {"includePattern": "binaries/bin/(merkaartor-.*.dmg)", "uploadPattern":"\$1"}
+        ],
+    "publish": true
+}
+EOF
diff --git a/interfaces/IImageManager.h b/interfaces/IImageManager.h
index 22caaed..1453e3b 100644
--- a/interfaces/IImageManager.h
+++ b/interfaces/IImageManager.h
@@ -62,8 +62,8 @@ class IImageManager
          * @param path the path to the image
          * @return the pixmap of the asked image
          */
-        virtual QImage getImage(IMapAdapter* anAdapter, QString url) = 0;
-        virtual  QByteArray getData(IMapAdapter* anAdapter, QString url) = 0;
+        virtual QImage getImage(IMapAdapter* anAdapter, const QString &url) = 0;
+        virtual QByteArray getData(IMapAdapter* anAdapter, const QString &url) = 0;
 
         //QPixmap prefetchImage(const QString& host, const QString& path);
         virtual QImage prefetchImage(IMapAdapter* anAdapter, int x, int y, int z) = 0;
diff --git a/plugins/background/MCadastreFranceBackground/CadastreFrance.cpp b/plugins/background/MCadastreFranceBackground/CadastreFrance.cpp
index 3791e85..80462f9 100644
--- a/plugins/background/MCadastreFranceBackground/CadastreFrance.cpp
+++ b/plugins/background/MCadastreFranceBackground/CadastreFrance.cpp
@@ -328,7 +328,7 @@ void CadastreFranceAdapter::fromXML(QXmlStreamReader& stream)
 
 QString CadastreFranceAdapter::toPropertiesHtml()
 {
-    return "";
+    return QString();
 }
 
 bool CadastreFranceAdapter::isTiled() const
diff --git a/plugins/background/MCadastreFranceBackground/CadastreFrance.h b/plugins/background/MCadastreFranceBackground/CadastreFrance.h
index 8af0b91..94587a5 100644
--- a/plugins/background/MCadastreFranceBackground/CadastreFrance.h
+++ b/plugins/background/MCadastreFranceBackground/CadastreFrance.h
@@ -96,7 +96,7 @@ public:
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const;
     virtual int 	getAdaptedMinZoom(const QRectF &) const;
diff --git a/plugins/background/MGdalBackground/GdalAdapter.cpp b/plugins/background/MGdalBackground/GdalAdapter.cpp
index cc94637..0299411 100644
--- a/plugins/background/MGdalBackground/GdalAdapter.cpp
+++ b/plugins/background/MGdalBackground/GdalAdapter.cpp
@@ -501,7 +501,7 @@ QString GdalAdapter::getSourceTag() const
 
 QString	GdalAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 IMapAdapter::Type GdalAdapter::getType() const
diff --git a/plugins/background/MGdalBackground/GdalAdapter.h b/plugins/background/MGdalBackground/GdalAdapter.h
index 26e9613..5abbe46 100644
--- a/plugins/background/MGdalBackground/GdalAdapter.h
+++ b/plugins/background/MGdalBackground/GdalAdapter.h
@@ -112,7 +112,7 @@ public:
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const { return -1; }
     virtual int 	getAdaptedMinZoom(const QRectF &) const { return -1; }
@@ -122,8 +122,8 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
 
     virtual QString projection() const;
diff --git a/plugins/background/MGeoTiffBackground/GeoTiffAdapter.cpp b/plugins/background/MGeoTiffBackground/GeoTiffAdapter.cpp
index fa8c553..8cee64a 100644
--- a/plugins/background/MGeoTiffBackground/GeoTiffAdapter.cpp
+++ b/plugins/background/MGeoTiffBackground/GeoTiffAdapter.cpp
@@ -269,7 +269,7 @@ QString GeoTiffAdapter::getSourceTag() const
 
 QString	GeoTiffAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 IMapAdapter::Type GeoTiffAdapter::getType() const
diff --git a/plugins/background/MGeoTiffBackground/GeoTiffAdapter.h b/plugins/background/MGeoTiffBackground/GeoTiffAdapter.h
index a032377..bf09d48 100644
--- a/plugins/background/MGeoTiffBackground/GeoTiffAdapter.h
+++ b/plugins/background/MGeoTiffBackground/GeoTiffAdapter.h
@@ -109,7 +109,7 @@ public:
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const { return -1; }
     virtual int 	getAdaptedMinZoom(const QRectF &) const { return -1; }
@@ -119,8 +119,8 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
 
     virtual QString projection() const;
diff --git a/plugins/background/MGosmoreBackground/GosmoreAdapter.cpp b/plugins/background/MGosmoreBackground/GosmoreAdapter.cpp
index 51d38d1..24859e8 100644
--- a/plugins/background/MGosmoreBackground/GosmoreAdapter.cpp
+++ b/plugins/background/MGosmoreBackground/GosmoreAdapter.cpp
@@ -348,8 +348,7 @@ GosmoreAdapter::~GosmoreAdapter()
 
 void GosmoreAdapter::setFile(const QString& fn)
 {
-    if (pak)
-        delete pak;
+    delete pak;
     pak = new QFile(fn, this);
     if (!pak->open(QIODevice::ReadOnly)) {
         QMessageBox::critical(0,QCoreApplication::translate("GosmoreAdapter","No valid file"),QCoreApplication::translate("GosmoreAdapter","File not found."));
@@ -385,7 +384,7 @@ void GosmoreAdapter::onLoadFile()
 
 QString	GosmoreAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 QUuid GosmoreAdapter::getId() const
diff --git a/plugins/background/MGosmoreBackground/GosmoreAdapter.h b/plugins/background/MGosmoreBackground/GosmoreAdapter.h
index 40ff34e..cd0e598 100644
--- a/plugins/background/MGosmoreBackground/GosmoreAdapter.h
+++ b/plugins/background/MGosmoreBackground/GosmoreAdapter.h
@@ -90,14 +90,14 @@ public:
     /*!
      * @return the source tag
      */
-    virtual QString	getSourceTag		() const { return ""; }
+    virtual QString	getSourceTag		() const { return QString(); }
     virtual void setSourceTag (const QString& ) {};
 
     //! returns the Url of the usage license
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const { return -1; }
     virtual int 	getAdaptedMinZoom(const QRectF &) const { return -1; }
@@ -107,8 +107,8 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
 
     virtual QString projection() const;
diff --git a/plugins/background/MMsBingMapBackground/msbingmapadapter.h b/plugins/background/MMsBingMapBackground/msbingmapadapter.h
index 2d5191c..1010141 100644
--- a/plugins/background/MMsBingMapBackground/msbingmapadapter.h
+++ b/plugins/background/MMsBingMapBackground/msbingmapadapter.h
@@ -100,7 +100,7 @@ public:
     virtual int 	getAdaptedMinZoom(const QRectF &bbox) const;
     virtual int		getAdaptedMaxZoom(const QRectF &bbox) const;
 
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect&) const { return ""; }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect&) const { return QString(); }
     virtual bool isTiled() const { return true; }
 
     virtual QRectF	getBoundingbox() const;
@@ -111,7 +111,7 @@ public:
 
     virtual bool toXML(QXmlStreamWriter& /*stream*/) { return true; }
     virtual void fromXML(QXmlStreamReader& /*xParent*/) {}
-    virtual QString toPropertiesHtml() {return "";}
+    virtual QString toPropertiesHtml() {return QString();}
 
     virtual void setSettings(QSettings* aSet) {theSets = aSet;}
 
diff --git a/plugins/background/MNavitBackground/NavitAdapter.cpp b/plugins/background/MNavitBackground/NavitAdapter.cpp
index d96ecb9..49035a3 100644
--- a/plugins/background/MNavitBackground/NavitAdapter.cpp
+++ b/plugins/background/MNavitBackground/NavitAdapter.cpp
@@ -552,7 +552,7 @@ void NavitAdapter::setFile(const QString& fn)
 
 QString	NavitAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 QUuid NavitAdapter::getId() const
diff --git a/plugins/background/MNavitBackground/NavitAdapter.h b/plugins/background/MNavitBackground/NavitAdapter.h
index 2b56e2c..bfb46ab 100644
--- a/plugins/background/MNavitBackground/NavitAdapter.h
+++ b/plugins/background/MNavitBackground/NavitAdapter.h
@@ -89,14 +89,14 @@ public:
     /*!
      * @return the source tag
      */
-    virtual QString	getSourceTag		() const { return ""; }
+    virtual QString	getSourceTag		() const { return QString(); }
     virtual void setSourceTag (const QString& ) {};
 
     //! returns the Url of the usage license
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const { return -1; }
     virtual int 	getAdaptedMinZoom(const QRectF &) const { return -1; }
@@ -106,8 +106,8 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
 
     virtual QString projection() const;
diff --git a/plugins/background/MNavitBackground/NavitBin.cpp b/plugins/background/MNavitBackground/NavitBin.cpp
index b50efa9..0d94495 100644
--- a/plugins/background/MNavitBackground/NavitBin.cpp
+++ b/plugins/background/MNavitBackground/NavitBin.cpp
@@ -29,10 +29,7 @@ NavitBin::NavitBin()
 
 NavitBin::~NavitBin()
 {
-    if (zip) {
-        delete zip;
-        zip = NULL;
-    }
+    delete zip;
 }
 
 bool NavitBin::setFilename(const QString& filename)
diff --git a/plugins/background/MNavitBackground/NavitZip.cpp b/plugins/background/MNavitBackground/NavitZip.cpp
index 50a803b..07b75e5 100644
--- a/plugins/background/MNavitBackground/NavitZip.cpp
+++ b/plugins/background/MNavitBackground/NavitZip.cpp
@@ -27,14 +27,12 @@ NavitZip::NavitZip()
 
 NavitZip::~NavitZip()
 {
-    if (zipFile)
-        delete zipFile;
+    delete zipFile;
 }
 
 void* NavitZip::setZip(QString fn)
 {
-    if (zipFile)
-        delete zipFile;
+    delete zipFile;
     zipFile = new QFile(fn);
     if (!zipFile->open(QIODevice::ReadOnly)) {
         return NULL;
diff --git a/plugins/background/MSpatialiteBackground/SpatialiteAdapter.cpp b/plugins/background/MSpatialiteBackground/SpatialiteAdapter.cpp
index b925baf..b113aac 100644
--- a/plugins/background/MSpatialiteBackground/SpatialiteAdapter.cpp
+++ b/plugins/background/MSpatialiteBackground/SpatialiteAdapter.cpp
@@ -181,7 +181,7 @@ void SpatialiteAdapter::setFile(const QString& fn)
     m_dbName = fn;
     m_loaded = true;
 
-    foreach (QString s, m_tables)
+    foreach (const QString &s, m_tables)
         initTable(s);
 
     emit (forceRefresh());
@@ -189,7 +189,7 @@ void SpatialiteAdapter::setFile(const QString& fn)
 
 QString	SpatialiteAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 QUuid SpatialiteAdapter::getId() const
diff --git a/plugins/background/MSpatialiteBackground/SpatialiteAdapter.h b/plugins/background/MSpatialiteBackground/SpatialiteAdapter.h
index 8aa3454..f4b7d05 100644
--- a/plugins/background/MSpatialiteBackground/SpatialiteAdapter.h
+++ b/plugins/background/MSpatialiteBackground/SpatialiteAdapter.h
@@ -100,14 +100,14 @@ public:
     /*!
      * @return the source tag
      */
-    virtual QString	getSourceTag		() const { return ""; }
+    virtual QString	getSourceTag		() const { return QString(); }
     virtual void setSourceTag (const QString& ) {};
 
     //! returns the Url of the usage license
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
 
     virtual int		getAdaptedZoom() const { return -1; }
@@ -118,8 +118,8 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
     virtual const QList<IFeature*>* getPaths(const QRectF& wgs84Bbox, const IProjection* projection) const;
 
@@ -172,7 +172,7 @@ private:
 
     mutable QCache<IFeature::FId, IFeature> m_cache;
 
-    QList<QString> m_tables;
+    QStringList m_tables;
 };
 
 class SpatialiteAdapterFactory : public QObject, public IMapAdapterFactory
diff --git a/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.cpp b/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.cpp
index e9ece31..b23e47f 100644
--- a/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.cpp
+++ b/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.cpp
@@ -155,7 +155,7 @@ bool WalkingPapersAdapter::getWalkingPapersDetails(const QUrl& reqUrl, QRectF& b
 
     QString center = QString::fromLatin1(reply->rawHeader("X-Print-Bounds"));
     QStringList sl = center.split(" ");
-    if (!sl.size() == 4)
+    if (sl.size() != 4)
         return false;
 
     QPointF tl(sl[1].toDouble(), sl[0].toDouble());
@@ -286,7 +286,7 @@ void WalkingPapersAdapter::onLoadImage()
 
 QString	WalkingPapersAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 IMapAdapter::Type WalkingPapersAdapter::getType() const
diff --git a/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.h b/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.h
index 62e5d70..6ff198b 100644
--- a/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.h
+++ b/plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.h
@@ -91,14 +91,14 @@ public:
     /*!
      * @return the source tag
      */
-    virtual QString	getSourceTag		() const { return ""; }
+    virtual QString	getSourceTag		() const { return QString(); }
     virtual void setSourceTag (const QString& ) {};
 
     //! returns the Url of the usage license
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const { return -1; }
     virtual int 	getAdaptedMinZoom(const QRectF &) const { return -1; }
@@ -108,8 +108,8 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
 
     virtual QString projection() const;
diff --git a/plugins/background/MYahooBackground/yahoolegalmapadapter.cpp b/plugins/background/MYahooBackground/yahoolegalmapadapter.cpp
index 1e0e378..f1a8be3 100644
--- a/plugins/background/MYahooBackground/yahoolegalmapadapter.cpp
+++ b/plugins/background/MYahooBackground/yahoolegalmapadapter.cpp
@@ -51,7 +51,7 @@ YahooLegalMapAdapter::~YahooLegalMapAdapter()
 
 QString	YahooLegalMapAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 QUuid YahooLegalMapAdapter::getId() const
@@ -77,7 +77,7 @@ QString YahooLegalMapAdapter::projection() const
 QString YahooLegalMapAdapter::getQuery(const QRectF& wgs84Bbox, const QRectF& /*projBbox*/, const QRect& size) const
 {
     if (size.width() < 150 || size.height() < 150)
-        return "";
+        return QString();
 
     return QString()
                         .append("qrc:/Html/ymap.html?")
diff --git a/plugins/background/MYahooBackground/yahoolegalmapadapter.h b/plugins/background/MYahooBackground/yahoolegalmapadapter.h
index 5d512ce..26f3b24 100644
--- a/plugins/background/MYahooBackground/yahoolegalmapadapter.h
+++ b/plugins/background/MYahooBackground/yahoolegalmapadapter.h
@@ -94,7 +94,7 @@ public:
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom() const { return -1; }
     virtual int 	getAdaptedMinZoom(const QRectF &) const { return -1; }
@@ -104,7 +104,7 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
     virtual QString getQuery(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
     virtual QPixmap getPixmap(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const { return QPixmap(); }
 
@@ -124,7 +124,7 @@ public:
 
     virtual bool toXML(QXmlStreamWriter& /*stream*/) { return true; }
     virtual void fromXML(QXmlStreamReader& /*xParent*/) {}
-    virtual QString toPropertiesHtml() {return "";}
+    virtual QString toPropertiesHtml() {return QString();}
 
     virtual void setSettings(QSettings* /*aSet*/) {}
 
diff --git a/plugins/background/MYahooTiledBackground/yahootiledmapadapter.cpp b/plugins/background/MYahooTiledBackground/yahootiledmapadapter.cpp
index 77496fb..c61bb3b 100644
--- a/plugins/background/MYahooTiledBackground/yahootiledmapadapter.cpp
+++ b/plugins/background/MYahooTiledBackground/yahootiledmapadapter.cpp
@@ -52,7 +52,7 @@ YahooTiledMapAdapter::YahooTiledMapAdapter()
     : theImageManager(0)
 
 {
-    host = "";
+    host.clear();
     serverPath = "qrc:/Html/ymap.html?";
     tilesize = 512;
     max_zoom = 17;
@@ -69,7 +69,7 @@ YahooTiledMapAdapter::~YahooTiledMapAdapter()
 
 QString	YahooTiledMapAdapter::getHost() const
 {
-    return "";
+    return QString();
 }
 
 QUuid YahooTiledMapAdapter::getId() const
diff --git a/plugins/background/MYahooTiledBackground/yahootiledmapadapter.h b/plugins/background/MYahooTiledBackground/yahootiledmapadapter.h
index 0ac6292..200df5e 100644
--- a/plugins/background/MYahooTiledBackground/yahootiledmapadapter.h
+++ b/plugins/background/MYahooTiledBackground/yahootiledmapadapter.h
@@ -103,7 +103,7 @@ public:
     /*!
      * @return the Url of the usage license
      */
-    virtual QString	getLicenseUrl() const {return "";}
+    virtual QString	getLicenseUrl() const {return QString();}
 
     virtual int		getAdaptedZoom()   const;
     virtual int 	getAdaptedMinZoom	(const QRectF &) const;
@@ -114,7 +114,7 @@ public:
 
     virtual bool	isValid(int x, int y, int z) const;
     virtual QString getQuery(int x, int y, int z) const;
-    virtual QString getQuery(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const  { return ""; }
+    virtual QString getQuery(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const  { return QString(); }
     virtual QPixmap getPixmap(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const { return QPixmap(); }
 
     virtual QRectF	getBoundingbox() const;
@@ -133,7 +133,7 @@ public:
 
     virtual bool toXML(QXmlStreamWriter& /*stream*/) { return true; }
     virtual void fromXML(QXmlStreamReader& /*xParent*/) {}
-    virtual QString toPropertiesHtml() {return "";}
+    virtual QString toPropertiesHtml() {return QString();}
 
     virtual void setSettings(QSettings* /*aSet*/) {}
 
diff --git a/plugins/common.pri b/plugins/common.pri
index 332edc4..494d1a7 100644
--- a/plugins/common.pri
+++ b/plugins/common.pri
@@ -18,6 +18,10 @@ include ($$MERKAARTOR_SRC_DIR/src/Config.pri)
 DEFINES += VERSION=\"\\\"$$VERSION\\\"\"
 #DEFINES += REVISION=\"\\\"$$REVISION\\\"\"
 
+# Drop the version for now. If it contains anything else than numbers split by
+# dots, the qt stuff generates invalid *.rc files for plugins.
+VERSION=""
+
 win32-msvc* {
     DEFINES += _USE_MATH_DEFINES
 }
diff --git a/share/Projections.xml b/share/Projections.xml
index fd6179f..648d21c 100644
--- a/share/Projections.xml
+++ b/share/Projections.xml
@@ -1,10 +1,11 @@
 <?xml version="1.0"?>
 <MerkaartorList>
- <Projections creator="Merkaartor 0.14" >
+ <Projections creator="Merkaartor 0.18.2" >
   <Projection name="Mercator (EPSG:3785)" >+proj=merc +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +ellps=WGS84 +datum=WGS84 +no_defs</Projection>
   <Projection name="Mercator (epsg:3785)" deleted="true" >+proj=merc +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +ellps=WGS84 +datum=WGS84 +no_defs</Projection>
   <Projection name="EPSG:4326" deleted="true" >+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +to_meter=0.017453292519943295769236907684886</Projection>
   <Projection name="Latitude/Longitude (EPSG:4326)" >+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +to_meter=0.017453292519943295769236907684886</Projection>
   <Projection name="OSGB36 (EPSG:27700)">+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.999601 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +no_defs</Projection>
+  <Projection name="S-JTSK CZ">+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=greenwich +units=m +no_defs +towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56</Projection>
  </Projections>
 </MerkaartorList>
diff --git a/share/TmsServersList.xml b/share/TmsServersList.xml
index 5f0849b..1a0c00e 100644
--- a/share/TmsServersList.xml
+++ b/share/TmsServersList.xml
@@ -1,17 +1,6 @@
 <?xml version="1.0"?>
 <MerkaartorList>
- <TmsServers version="1.1" creator="SVN" >
-  <TmsServer minzoom="0" maxzoom="14" path="/tiles/cycle/%1/%2/%3.png" address="andy.sandbox.cloudmade.com" name="Cycle Map" tilesize="256" />
-  <TmsServer minzoom="0" maxzoom="14" path="/tiles/cycle/%1/%2/%3.png" address="thunderflames.org" name="Gravitystorm Cycle" tilesize="256" />
-  <TmsServer minzoom="12" maxzoom="16" path="/Tiles/maplint/%1/%2/%3.png" address="tah.openstreetmap.org" name="Maplint" tilesize="256" />
-  <TmsServer minzoom="6" maxzoom="15" path="/%1/%2/%3.png" address="npe.openstreetmap.org" name="New Popular Edition (NPE)" tilesize="256" />
-  <TmsServer minzoom="14" maxzoom="14" path="/npe/%1/%2/%3.jpg" address="richard.dev.openstreetmap.org" name="New Popular Edition (NPE) at zoom 14" tilesize="256" />
-  <TmsServer minzoom="12" maxzoom="16" path="/Tiles/maplint/%1/%2/%3.png" address="tah.openstreetmap.org" name="OSM Maplint" tilesize="256" />
-  <TmsServer minzoom="0" maxzoom="17" path="/%1/%2/%3.png" address="tile.openstreetmap.org" name="OSM Mapnik" tilesize="256" />
-  <TmsServer minzoom="0" maxzoom="18" path="/Tiles/tile/%1/%2/%3.png" address="tah.openstreetmap.org" name="OSM T at H" tilesize="256" />
-  <TmsServer minzoom="0" maxzoom="18" path="/tiles/1.0.0/openaerialmap-900913/%1/%2/%3.png" address="tile.openaerialmap.org" name="OpenAerialMap" tilesize="256" />
- <TmsServer minzoom="0" maxzoom="23" path="/maps/nml=Vert&x=%2&y=%3&z=%1" address="www.nearmap.com" name="NearMap" tilesize="256"/>
-  <TmsServer minzoom="0" maxzoom="19" sourcetag="Cnes/Spot Image" tmsBaseUrl="http://spotmaps.youmapps.org/spotmaps4osm/" path="/spotmaps4osm/1.0.0/spotmaps4osm/%1/%2/%3.jpeg" projection="EPSG:4326" address="spotmaps.youmapps.org" licenseurl="http://www.youmapps.org/licenses/EULA-OSM-J-fr.html" name="SPOTMaps (France)" tilesize="256" tmsorigin="true"/>
-  <TmsServer minzoom="0" maxzoom="19" sourcetag="Fugro (2005)" path="/fugro2005/%1/%2/%3.jpg" projection="EPSG:900913" address="fugro.openstreetmap.dk" name="Denmark - Fugro Aerial Imagery" tilesize="256"/>
+ <TmsServers creator="Merkaartor v0.18.2.64">
+  <TmsServer minzoom="0" maxzoom="17" path="/%1/%2/%3.png" projection="EPSG:900913" address="http://tile.openstreetmap.org" name="OSM.org Mapnik" tilesize="256"/>
  </TmsServers>
 </MerkaartorList>
diff --git a/share/WmsServersList.xml b/share/WmsServersList.xml
index 711cdc5..04dfed8 100644
--- a/share/WmsServersList.xml
+++ b/share/WmsServersList.xml
@@ -1,18 +1,7 @@
 <?xml version="1.0"?>
 <MerkaartorList>
- <WmsServers version="1.0" creator="SVN" >
-  <WmsServer styles="," layers="Countries,Borders,Highways,Roads,Cities" projections="EPSG:4326" format="image/png" path="/wms/wms.asp?wms=WorldMap&" address="www2.demis.nl" name="Demis" />
-  <WmsServer styles="," layers="DOP20" projections="EPSG:4326" format="image/png" path="/wms/?SERVICE=WMS&" address="oberpfalz.geofabrik.de" name="Oberpfalz Germany" />
-  <WmsServer styles="," layers="DOP20" projections="EPSG:4326" format="image/png" path="/wms?" address="oberpfalz.geofabrik.de" name="Oberpfalz_DOP20" />
-  <WmsServer styles="," layers="world" projections="EPSG:4326" format="image/jpeg" path="/wms/?" address="openaerialmap.org" name="OpenAerialMap" deleted="true"/>
-  <WmsServer styles="," layers="world" projections="EPSG:4326" format="image/jpeg" path="/wms/?" address="opentopomap.org" name="OpenTopoMap" deleted="true" />
-  <WmsServer styles="," layers="doq" projections="EPSG:4326" format="image/jpeg" path="/ogcmap.ashx?" address="terraservice.net" name="Terraservice_DOQ" />
-  <WmsServer styles="," layers="drg" projections="EPSG:4326" format="image/jpeg" path="/ogcmap.ashx?" address="terraservice.net" name="Terraservice_DRG" />
-  <WmsServer styles="," layers="urbanarea" projections="EPSG:4326" format="image/jpeg" path="/ogcmap.ashx?" address="terraservice.net" name="Terraservice_Urban" />
-  <WmsServer styles="," layers="Wohnstrasse,Wege,Zufahrtswege,Landstrasse,Bundesstrasse,Kraftfahrstrasse,Autobahn" projections="EPSG:4326" format="image/png" path="/cgi-bin/mapserv?map=/data/umn/osm/osm_basic.map&SERVICE=WMS&" address="mapbender.wheregroup.com" name="WhereGroup OSM" />
-  <WmsServer styles="" layers="PICC/Voirie,PICC/Voirie mob (l),PICC/Voirie ame,PICC/Voirie,PICC/Voirie mob (p)" projections="EPSG:31370" format="image/png" path="/wmspicc/wms110.do?" address="cartopro2.wallonie.be" name="Wallonie PICC" />
-  <WmsServer styles="" layers="ppnc1,ppnc2,ppnc3,ppnc4,ppnc5,ppnc6,ppnc7" projections="EPSG:31370" format="image/png" path="/WMS/com.esri.wms.Esrimap/PPNC?version1.1.1&" address="cartopro1.wallonie.be" name="Wallonie PPNC" />
-  <WmsServer styles="" layers="osm" projections="EPSG:4326" format="image/png" path="/cgi-bin/c2corg4osm?" address="www.camptocamp.org" name="camptocamp.org" />
-  <WmsServer styles="" layers="GlobeXplorer Image" projections="EPSG:4326" format="image/jpeg" path="/gexservlets/wms?" address="wms.globexplorer.com" name="GlobeXplorer DigitalGlobe" deleted="true" />
+ <WmsServers creator="Merkaartor v0.18.2.64">
+  <WmsServer styles=",,,,,,,,,,,,,,,,,,," layers="Bathymetry,Countries,Topography,Hillshading,Builtup areas,Coastlines,Waterbodies,Inundated,Rivers,Streams,Railroads,Highways,Roads,Trails,Borders,Cities,Settlements,Spot elevations,Airports,Ocean features" projections="EPSG:4326" format="image/png" path="/wms/wms.asp?wms=WorldMap&&VERSION=1.1.1&SERVICE=WMS&LAYERS=Bathymetry,Countries,Topography,Hillshading,Builtup areas,Coastlines,Waterbodies,Inundated,Rivers,Streams,Railr [...]
+  <WmsServer styles=",," layers="spot,landsat,irs" projections="EPSG:3785" format="image/jpeg" path="/?layers=landsat& &VERSION=1.1.1&SERVICE=WMS&LAYERS=spot,landsat,irs&SRS=EPSG:3785&STYLES=,,&FORMAT=image/jpeg" address="irs.gis-lab.info" name="[World] GIS-LAB.info tWMS service"/>
  </WmsServers>
 </MerkaartorList>
diff --git a/src/Backend/MemoryBackend.cpp b/src/Backend/MemoryBackend.cpp
index 54009a7..ba99aa0 100644
--- a/src/Backend/MemoryBackend.cpp
+++ b/src/Backend/MemoryBackend.cpp
@@ -1,6 +1,8 @@
 #include "MemoryBackend.h"
 #include "RTree.h"
 
+#include <QReadWriteLock>
+
 RenderPriority NodePri(RenderPriority::IsSingular,0., 0);
 RenderPriority SegmentPri(RenderPriority::IsLinear,0.,99);
 
@@ -23,6 +25,14 @@ typedef RTree<Feature*, qreal, 2, qreal, 32> CoordTree;
 class MemoryBackendPrivate
 {
 public:
+
+    /* If locked, deletes are delayed. */
+    QReadWriteLock delayedDeletesLock;
+
+    /* Protects the toBeDeleted */
+    QMutex toBeDeletedLock;
+    QList<Feature*> toBeDeleted;
+
     QHash<Feature*, CoordBox> AllocFeatures;
     QHash<ILayer*, CoordTree*> theRTree;
     QList<Feature*> findResult;
@@ -188,13 +198,9 @@ MemoryBackend::~MemoryBackend()
 Node * MemoryBackend::allocNode(ILayer* l, const Node& other)
 {
     Node* f;
-    try {
-        f = new Node(other);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) Node(other);
+    if (!f)
         return NULL;
-    }
 
     p->AllocFeatures[f] = f->BBox;
     if (!f->BBox.isNull()) {
@@ -206,13 +212,10 @@ Node * MemoryBackend::allocNode(ILayer* l, const Node& other)
 Node * MemoryBackend::allocNode(ILayer* l, const QPointF& aCoord)
 {
     Node* f;
-    try {
-        f = new Node(aCoord);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) Node(aCoord);
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = f->BBox;
     if (!f->BBox.isNull()) {
         indexAdd(l, f->BBox, f);
@@ -223,13 +226,10 @@ Node * MemoryBackend::allocNode(ILayer* l, const QPointF& aCoord)
 TrackNode * MemoryBackend::allocTrackNode(ILayer* l, const QPointF& aCoord)
 {
     TrackNode* f;
-    try {
-        f = new TrackNode(aCoord);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) TrackNode(aCoord);
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = f->BBox;
     if (!f->BBox.isNull()) {
         indexAdd(l, f->BBox, f);
@@ -240,13 +240,10 @@ TrackNode * MemoryBackend::allocTrackNode(ILayer* l, const QPointF& aCoord)
 PhotoNode * MemoryBackend::allocPhotoNode(ILayer* l, const QPointF& aCoord)
 {
     PhotoNode* f;
-    try {
-        f = new PhotoNode(aCoord);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) PhotoNode(aCoord);
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = f->BBox;
     if (!f->BBox.isNull()) {
         indexAdd(l, f->BBox, f);
@@ -257,13 +254,9 @@ PhotoNode * MemoryBackend::allocPhotoNode(ILayer* l, const QPointF& aCoord)
 PhotoNode * MemoryBackend::allocPhotoNode(ILayer* l, const Node& other)
 {
     PhotoNode* f;
-    try {
-        f = new PhotoNode(other);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) PhotoNode(other);
+    if (!f)
         return NULL;
-    }
 
     p->AllocFeatures[f] = f->BBox;
     if (!f->BBox.isNull()) {
@@ -275,13 +268,9 @@ PhotoNode * MemoryBackend::allocPhotoNode(ILayer* l, const Node& other)
 PhotoNode * MemoryBackend::allocPhotoNode(ILayer* l, const TrackNode& other)
 {
     PhotoNode* f;
-    try {
-        f = new PhotoNode(other);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) PhotoNode(other);
+    if (!f)
         return NULL;
-    }
 
     p->AllocFeatures[f] = f->BBox;
     if (!f->BBox.isNull()) {
@@ -292,27 +281,16 @@ PhotoNode * MemoryBackend::allocPhotoNode(ILayer* l, const TrackNode& other)
 
 Node * MemoryBackend::allocVirtualNode(const QPointF& aCoord)
 {
-    Node* f;
-    try {
-        f = new Node(aCoord);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
-        return NULL;
-    }
-    return f;
+    return new (std::nothrow) Node(aCoord);
 }
 
 Way * MemoryBackend::allocWay(ILayer* /*l*/)
 {
     Way* f;
-    try {
-        f = new Way();
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) Way();
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = CoordBox();
     return f;
 }
@@ -320,13 +298,10 @@ Way * MemoryBackend::allocWay(ILayer* /*l*/)
 Way * MemoryBackend::allocWay(ILayer* /*l*/, const Way& other)
 {
     Way* f;
-    try {
-        f = new Way(other);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) Way(other);
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = CoordBox();
     return f;
 }
@@ -334,13 +309,10 @@ Way * MemoryBackend::allocWay(ILayer* /*l*/, const Way& other)
 Relation * MemoryBackend::allocRelation(ILayer* /*l*/)
 {
     Relation* f;
-    try {
-        f = new Relation();
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) Relation();
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = CoordBox();
     return f;
 }
@@ -348,13 +320,10 @@ Relation * MemoryBackend::allocRelation(ILayer* /*l*/)
 Relation * MemoryBackend::allocRelation(ILayer* /*l*/, const Relation& other)
 {
     Relation* f;
-    try {
-        f = new Relation(other);
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) Relation(other);
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = CoordBox();
     return f;
 }
@@ -362,28 +331,58 @@ Relation * MemoryBackend::allocRelation(ILayer* /*l*/, const Relation& other)
 TrackSegment * MemoryBackend::allocSegment(ILayer* /*l*/)
 {
     TrackSegment* f;
-    try {
-        f = new TrackSegment();
-        if (!f)
-            return NULL;
-    } catch (...) { // Out-of-memory?
+    f = new (std::nothrow) TrackSegment();
+    if (!f)
         return NULL;
-    }
+
     p->AllocFeatures[f] = CoordBox();
     return f;
 }
 
 void MemoryBackend::deallocFeature(ILayer* l, Feature *f)
 {
+    p->delayedDeletesLock.lockForRead();
+    p->toBeDeletedLock.lock();
     if (p->AllocFeatures.contains(f)) {
         indexRemove(l, p->AllocFeatures[f], f);
-        p->AllocFeatures.remove(f);
+        if (!p->AllocFeatures.remove(f)) {
+            qWarning() << "Feature, that is not in a list is being removed.";
+        } else {
+            p->toBeDeleted.append(f);
+        }
+    }
+    p->toBeDeletedLock.unlock();
+    p->delayedDeletesLock.unlock();
+}
+
+void MemoryBackend::purge()
+{
+    if (p->toBeDeleted.empty()) return; /* Don't bother if there is nothing to delete */
+    if (!p->delayedDeletesLock.tryLockForWrite()) return; /* If locked, deletes need to be delayed */
+    p->toBeDeletedLock.lock();
+    QList<Feature*>::iterator it = p->toBeDeleted.begin();
+    while (it != p->toBeDeleted.end()) {
+        delete *(it++);
     }
+    p->toBeDeleted.clear();
+    p->toBeDeletedLock.unlock();
+    p->delayedDeletesLock.unlock();
+}
+
+void MemoryBackend::delayDeletes() {
+    p->delayedDeletesLock.lockForRead();
+}
+
+void MemoryBackend::resumeDeletes() {
+    p->delayedDeletesLock.unlock();
+    purge();
 }
 
 void MemoryBackend::deallocVirtualNode(Feature *f)
 {
-    delete f;
+    p->delayedDeletesLock.tryLockForRead();
+    p->toBeDeleted.append(f);
+    p->delayedDeletesLock.unlock();
 }
 
 void MemoryBackend::sync(Feature *f)
diff --git a/src/Backend/MemoryBackend.h b/src/Backend/MemoryBackend.h
index 715b1df..dc3933d 100644
--- a/src/Backend/MemoryBackend.h
+++ b/src/Backend/MemoryBackend.h
@@ -42,6 +42,9 @@ public:
     virtual void deallocVirtualNode(Feature* f);
 
     virtual void sync(Feature* f);
+    virtual void purge();
+    virtual void delayDeletes();
+    virtual void resumeDeletes();
 
     virtual const QList<Feature*>& indexFind(ILayer* l, const QRectF& vp);
     virtual void indexFind(ILayer* l, const QRectF& bb, const IndexFindContext& findResult);
diff --git a/src/Commands/Command.cpp b/src/Commands/Command.cpp
index 526467e..bf4e05e 100644
--- a/src/Commands/Command.cpp
+++ b/src/Commands/Command.cpp
@@ -20,7 +20,7 @@
 #include <QList>
 
 Command::Command(Feature* aF)
-    : mainFeature(aF), commandDirtyLevel(0), oldCreated(""), isUndone(false)
+    : mainFeature(aF), commandDirtyLevel(0), isUndone(false)
 {
     description = QApplication::translate("Command", "No description");
 }
@@ -36,7 +36,7 @@ void Command::setId(const QString& id)
 
 const QString& Command::id() const
 {
-    if (Id == "")
+    if (Id.isEmpty())
         Id = QUuid::createUuid().toString();
     return Id;
 }
@@ -156,8 +156,7 @@ CommandList::CommandList(QString aDesc, Feature* aFeat)
 
 CommandList::~CommandList(void)
 {
-    for (int i=0; i<Subs.size(); ++i)
-        delete Subs[i];
+    qDeleteAll(Subs);
 }
 
 void CommandList::setReversed(bool val)
@@ -348,8 +347,7 @@ void CommandHistory::cleanup()
     //FIXME Is there a point to this?
     //for (int i=Index; i<Subs.size(); ++i)
     //	Subs[i]->redo();
-    for (int i=0; i<Subs.size(); ++i)
-        delete Subs[i];
+    qDeleteAll(Subs);
     Subs.clear();
     Index = 0;
     Size = 0;
diff --git a/src/Config.pri b/src/Config.pri
index 80e35b6..bbfa556 100644
--- a/src/Config.pri
+++ b/src/Config.pri
@@ -1,7 +1,12 @@
 # see http://merkaartor.be/wiki/merkaartor/Compiling
 
-REVISION = $$system(git describe --tags)
-VERSION = $$system(git describe --tags | sed "'s/-g.*//;s/-/./g'")
+REVISION = $$system( git describe --tags )
+VERSION = $$system( git describe --tags HEAD | sed "'s/-g.*//;s/-/./g'" )
+isEmpty( REVISION ) {
+	REVISION = $$system(head -n 1 ../CHANGELOG | sed "'s/^v//'")
+	VERSION = $$REVISION
+}
+
 ARCH=""
 BITS=""
 win32 {
@@ -31,3 +36,10 @@ win32 {
 }
 
 QMAKE_CXXFLAGS_WARN_ON += -Wno-reorder
+
+# Append buildflags set in the environment
+QMAKE_CPPFLAGS += $$(CPPFLAGS)
+QMAKE_CFLAGS   += $$(CFLAGS) $$(CPPFLAGS)
+QMAKE_CXXFLAGS += $$(CXXFLAGS) $$(CPPFLAGS)
+QMAKE_LFLAGS   += $$(LDFLAGS)
+
diff --git a/src/Docks/DirtyDock.ui b/src/Docks/DirtyDock.ui
index c547ca9..8f62ac8 100644
--- a/src/Docks/DirtyDock.ui
+++ b/src/Docks/DirtyDock.ui
@@ -34,11 +34,7 @@
         <item>
          <widget class="QLabel" name="label">
           <property name="text">
-           <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">There is <span style=" font-weight:600;">no</span> dirty object</p></body></html></string>
+           <string>There are <b>no</b> dirty objects.</string>
           </property>
           <property name="wordWrap">
            <bool>true</bool>
diff --git a/src/Docks/FeaturesDock.cpp b/src/Docks/FeaturesDock.cpp
index 690c7eb..fa57865 100644
--- a/src/Docks/FeaturesDock.cpp
+++ b/src/Docks/FeaturesDock.cpp
@@ -59,9 +59,12 @@ FeaturesDock::FeaturesDock(MainWindow* aParent)
     connect(ui.FeaturesList, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(on_FeaturesList_customContextMenuRequested(const QPoint &)));
 
     connect(ui.cbWithin, SIGNAL(stateChanged(int)), this, SLOT(on_rbWithin_stateChanged(int)));
+    connect(ui.cbSelectionFilter, SIGNAL(stateChanged(int)), this, SLOT(on_rbSelectionFilter_stateChanged(int)));
     connect(ui.btFind, SIGNAL(clicked(bool)), SLOT(on_btFind_clicked(bool)));
     connect(ui.btReset, SIGNAL(clicked(bool)), SLOT(on_btReset_clicked(bool)));
 
+    connect(Main->properties(), SIGNAL(selectionChanged()), this, SLOT(updateList()));
+
     centerAction = new QAction(NULL, this);
     connect(centerAction, SIGNAL(triggered()), this, SLOT(on_centerAction_triggered()));
     centerZoomAction = new QAction(NULL, this);
@@ -170,6 +173,13 @@ void FeaturesDock::on_rbWithin_stateChanged ( int state )
     updateList();
 }
 
+void FeaturesDock::on_rbSelectionFilter_stateChanged ( int state )
+{
+    M_PREFS->setFeaturesSelectionFilter((state == Qt::Checked));
+
+    updateList();
+}
+
 void FeaturesDock::on_centerAction_triggered()
 {
     Feature* F;
@@ -299,6 +309,11 @@ void FeaturesDock::tabChanged(int idx)
     ui.FeaturesList->clear();
     Highlighted.clear();
 
+    if (curFeatType == IFeature::OsmRelation)
+        ui.cbSelectionFilter->setEnabled(true);
+    else
+        ui.cbSelectionFilter->setEnabled(false);
+
     updateList();
 }
 
@@ -314,29 +329,42 @@ void FeaturesDock::addItem(MapFeaturePtr F)
     if (ui.FeaturesList->count() > MAX_FEATS)
         return;
 
-    if (Highlighted.contains(F))
-        return;
+    QListWidgetItem* newItem = NULL;
 
     if (curFeatType == IFeature::OsmRelation || curFeatType == Feature::All)
     {
-        if (Relation* L = CAST_RELATION(F)) {
-            QListWidgetItem* anItem = new QListWidgetItem(L->description(), ui.FeaturesList);
-            anItem->setData(Qt::UserRole, QVariant::fromValue(F));
+        if (Relation* R = CAST_RELATION(F)) {
+            /* Include all relations if nothing is selected, otherwisde only the
+             * intersection of selected items and relations */
+            bool includeThis;
+            if ((Main->properties()->selection().size() > 0) && (ui.cbSelectionFilter->isChecked())) {
+                includeThis = false;
+                foreach (Feature* sel, Main->properties()->selection()) {
+                    if (R->find(sel) < R->size()) {
+                        includeThis = true;
+                        break;
+                    }
+                }
+            } else includeThis = true;
+
+            if (includeThis) {
+                newItem = new QListWidgetItem(R->description(), ui.FeaturesList);
+            }
         }
     }
     if (curFeatType == IFeature::LineString || curFeatType == IFeature::Polygon || curFeatType == Feature::All)
     {
-        if (Way* R = CAST_WAY(F)) {
-            QListWidgetItem* anItem = new QListWidgetItem(R->description(), ui.FeaturesList);
-            anItem->setData(Qt::UserRole, QVariant::fromValue(F));
-        }
+        if (Way* R = CAST_WAY(F))
+            newItem = new QListWidgetItem(R->description(), ui.FeaturesList);
     }
     if (curFeatType == IFeature::Point || curFeatType == Feature::All)
     {
-        if (Node* N = CAST_NODE(F)) {
-            QListWidgetItem* anItem = new QListWidgetItem(N->description(), ui.FeaturesList);
-            anItem->setData(Qt::UserRole, QVariant::fromValue(F));
-        }
+        if (Node* N = CAST_NODE(F))
+            newItem = new QListWidgetItem(N->description(), ui.FeaturesList);
+    }
+    if (newItem) {
+        newItem->setData(Qt::UserRole, QVariant::fromValue(F));
+        if (Highlighted.contains(F)) newItem->setSelected(true);
     }
 }
 
@@ -358,8 +386,7 @@ void FeaturesDock::clearItems()
                 Highlighted.removeOne(F);
             }
         }
-        if (!item->isSelected())
-            delete item;
+        delete item;
     }
 }
 
diff --git a/src/Docks/FeaturesDock.h b/src/Docks/FeaturesDock.h
index 3caaeee..b05d235 100644
--- a/src/Docks/FeaturesDock.h
+++ b/src/Docks/FeaturesDock.h
@@ -30,19 +30,21 @@ public:
 
     ~FeaturesDock();
 
-    void updateList();
 
     Feature* highlighted(int idx);
     QList<Feature*> highlighted();
     int highlightedSize() const;
 
 public slots:
+    void updateList();
+
     void on_FeaturesList_itemSelectionChanged();
     void on_FeaturesList_itemDoubleClicked(QListWidgetItem* item);
     void on_FeaturesList_customContextMenuRequested(const QPoint & pos);
     void on_FeaturesList_delete();
 
     void on_rbWithin_stateChanged ( int state );
+    void on_rbSelectionFilter_stateChanged ( int state );
 
     void on_centerAction_triggered();
     void on_centerZoomAction_triggered();
diff --git a/src/Docks/FeaturesDock.ui b/src/Docks/FeaturesDock.ui
index 06b8967..745fc87 100644
--- a/src/Docks/FeaturesDock.ui
+++ b/src/Docks/FeaturesDock.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>288</width>
-    <height>459</height>
+    <width>292</width>
+    <height>481</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -68,11 +68,14 @@
         </item>
         <item>
          <widget class="QLabel" name="lblOnlyViewport">
-          <property name="text">
+          <property name="toolTip">
            <string>Only features fully within the viewport</string>
           </property>
+          <property name="text">
+           <string>Filter by viewport</string>
+          </property>
           <property name="wordWrap">
-           <bool>true</bool>
+           <bool>false</bool>
           </property>
           <property name="buddy">
            <cstring>cbWithin</cstring>
@@ -102,6 +105,46 @@
           </property>
          </widget>
         </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QCheckBox" name="cbSelectionFilter">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label">
+          <property name="toolTip">
+           <string>Only show features intersecting current selection.</string>
+          </property>
+          <property name="text">
+           <string>Filter by selection</string>
+          </property>
+          <property name="wordWrap">
+           <bool>false</bool>
+          </property>
+          <property name="buddy">
+           <cstring>cbSelectionFilter</cstring>
+          </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="btReset">
           <property name="text">
diff --git a/src/Docks/GeoImageDock.cpp b/src/Docks/GeoImageDock.cpp
index c05d09f..519c23c 100644
--- a/src/Docks/GeoImageDock.cpp
+++ b/src/Docks/GeoImageDock.cpp
@@ -12,13 +12,13 @@
 #include <zbar/QZBarImage.h>
 #endif
 
-#include <QtWidgets/QInputDialog>
-#include <QtWidgets/QMessageBox>
-#include <QtWidgets/QProgressDialog>
-#include <QtGui/QClipboard>
-#include <QtWidgets/QRadioButton>
-#include <QtWidgets/QTimeEdit>
-#include <QtWidgets/QDialogButtonBox>
+#include <QInputDialog>
+#include <QMessageBox>
+#include <QProgressDialog>
+#include <QClipboard>
+#include <QRadioButton>
+#include <QTimeEdit>
+#include <QDialogButtonBox>
 #include <QFileDialog>
 
 #include <QNetworkAccessManager>
@@ -81,7 +81,7 @@ bool GeoImageDock::getWalkingPapersDetails(const QUrl& reqUrl, double &lat, doub
 
     QString center = QString::fromLatin1(reply->rawHeader("X-Print-Center"));
     QStringList sl = center.split(" ");
-    if (!sl.size() == 3)
+    if (sl.size() != 3)
         return false;
 
     //int z = sl[2].toInt();
@@ -458,7 +458,7 @@ void GeoImageDock::loadImages(QStringList fileNames)
 
     Exiv2::Image::AutoPtr image;
     Exiv2::ExifData exifData;
-    bool positionValid = FALSE;
+    bool positionValid = false;
 
     Layer *theLayer;
     if (photoLayer == NULL) {
@@ -894,7 +894,7 @@ Coord GeoImageDock::getGeoDataFromImage(const QString & file)
     double lat = 0.0, lon = 0.0;
     Exiv2::Image::AutoPtr image;
     Exiv2::ExifData exifData;
-    bool positionValid = FALSE;
+    bool positionValid = false;
 
     if (!QFile::exists(file)) {
         return pos;
diff --git a/src/Docks/GeoImageDock.h b/src/Docks/GeoImageDock.h
index ab7bbf6..693cfd5 100644
--- a/src/Docks/GeoImageDock.h
+++ b/src/Docks/GeoImageDock.h
@@ -3,12 +3,13 @@
 #include "MainWindow.h"
 #include "Document.h"
 
-#include <QtGui/QPainter>
-#include <QtWidgets/QDockWidget>
-#include <QtGui/QMouseEvent>
-#include <QtWidgets/QShortcut>
+#include <QPainter>
+#include <QDockWidget>
+#include <QMouseEvent>
+#include <QShortcut>
 #include <exiv2/image.hpp>
 #include <exiv2/exif.hpp>
+#include <QDrag>
 
 class ImageView;
 
diff --git a/src/Docks/PropertiesDock.cpp b/src/Docks/PropertiesDock.cpp
index f1ea5f2..0c0151d 100644
--- a/src/Docks/PropertiesDock.cpp
+++ b/src/Docks/PropertiesDock.cpp
@@ -211,7 +211,6 @@ void PropertiesDock::checkMenuStatus()
     Main->ui->relationAddMemberAction->setEnabled(NumRelation && Selection.size() > 1);
     Main->ui->relationRemoveMemberAction->setEnabled((NumRelation && Selection.size() > 1 && NumRelationChild) || IsParentRelation);
     Main->ui->relationAddToMultipolygonAction->setEnabled((NumAreas > 1) || (NumAreas >0 && NumRelation == 1));
-    Main->ui->menuOpenStreetBugs->setEnabled(IsOpenStreetBug);
 
     Main->ui->editCopyAction->setEnabled(Selection.size());
     Main->clipboardChanged();
@@ -244,6 +243,7 @@ void PropertiesDock::setSelection(Feature*aFeature)
     FullSelection = Selection;
     switchUi();
     fillMultiUiSelectionBox();
+    emit selectionChanged();
 }
 
 void PropertiesDock::setMultiSelection(const QList<Feature*>& aFeatureList)
@@ -267,6 +267,7 @@ void PropertiesDock::setMultiSelection(const QList<Feature*>& aFeatureList)
     theModel->setFeature(Current);
     Selection = Current;
     fillMultiUiSelectionBox();
+    emit selectionChanged();
 }
 
 void PropertiesDock::toggleSelection(Feature* S)
@@ -280,6 +281,7 @@ void PropertiesDock::toggleSelection(Feature* S)
     FullSelection = Selection;
     switchUi();
     fillMultiUiSelectionBox();
+    emit selectionChanged();
 }
 
 void PropertiesDock::addSelection(Feature* S)
@@ -291,6 +293,7 @@ void PropertiesDock::addSelection(Feature* S)
     FullSelection = Selection;
     switchUi();
     fillMultiUiSelectionBox();
+    emit selectionChanged();
 }
 
 void PropertiesDock::adjustSelection()
@@ -311,6 +314,7 @@ void PropertiesDock::adjustSelection()
     FullSelection = aSelection;
     if (Selection.size() != cnt)
         switchUi();
+    emit selectionChanged();
 }
 
 bool PropertiesDock::isSelected(Feature *aFeature)
@@ -361,6 +365,7 @@ void PropertiesDock::on_SelectionList_itemSelectionChanged()
         theModel->setFeature(Selection);
         MultiUi.lbStatus->setText(tr("%1/%2 selected item(s)").arg(Selection.size()).arg(FullSelection.size()));
         Main->view()->update();
+        emit selectionChanged();
     }
 }
 
@@ -609,6 +614,7 @@ void PropertiesDock::resetValues()
     theModel->setFeature(Current);
     Selection = Current;
     checkMenuStatus();
+    emit selectionChanged();
 
     /* If we have standard TableViews in the current UI, set it so that the */
     /* first column is the width of the default text (Edit this to add...)  */
diff --git a/src/Docks/PropertiesDock.h b/src/Docks/PropertiesDock.h
index 0e7d9f9..c753b38 100644
--- a/src/Docks/PropertiesDock.h
+++ b/src/Docks/PropertiesDock.h
@@ -41,8 +41,8 @@ class PropertiesDock : public MDockAncestor
         int selectionSize() const;
         void resetValues();
         void checkMenuStatus();
-        bool loadTemplates(const QString& filename = "");
-        bool mergeTemplates(const QString& filename = "");
+        bool loadTemplates(const QString& filename = QString());
+        bool mergeTemplates(const QString& filename = QString());
         bool saveTemplates(const QString& filename);
 
         Feature* highlighted(int idx);
@@ -72,6 +72,9 @@ class PropertiesDock : public MDockAncestor
         void on_template_changed(TagTemplate* aNewTemplate);
         void adjustSelection();
 
+    signals:
+        void selectionChanged();
+
     private:
         void cleanUpUi();
         void switchUi();
diff --git a/src/Features/Feature.cpp b/src/Features/Feature.cpp
index 9916e90..396bbe4 100644
--- a/src/Features/Feature.cpp
+++ b/src/Features/Feature.cpp
@@ -162,7 +162,7 @@ public:
 };
 
 Feature::Feature()
-: MetaUpToDate(false), m_references(0), ReadOnly(false)
+: MetaUpToDate(false), ReadOnly(false)
 {
     p = new FeaturePrivate(this);
     p->Id = IFeature::FId(IFeature::Uninitialized, 0);
@@ -171,7 +171,7 @@ Feature::Feature()
 }
 
 Feature::Feature(const Feature& other)
-: IFeature(other), MetaUpToDate(false), m_references(0), ReadOnly(other.ReadOnly)
+: IFeature(other), MetaUpToDate(false), ReadOnly(other.ReadOnly)
 {
     p = new FeaturePrivate(*other.p);
     p->Id = IFeature::FId(IFeature::Uninitialized, 0);
@@ -834,7 +834,7 @@ QString Feature::toXML(int lvl, QProgressDialog * progress)
         stream.writeEndDocument();
         return xml;
     } else
-        return "";
+        return QString();
 }
 
 void Feature::fromXML(QXmlStreamReader& stream, Feature* F)
diff --git a/src/Features/Feature.h b/src/Features/Feature.h
index 14c7ad5..36d98f0 100644
--- a/src/Features/Feature.h
+++ b/src/Features/Feature.h
@@ -311,13 +311,13 @@ public:
     void notifyParents(int Id);
 
     static void fromXML(QXmlStreamReader& stream, Feature* F);
-    virtual void toXML(QXmlStreamWriter& stream, bool strict, QString changetsetid="");
+    virtual void toXML(QXmlStreamWriter& stream, bool strict, QString changetsetid = QString());
 
     virtual QString toXML(int lvl=0, QProgressDialog * progress=NULL);
-    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress=NULL, bool strict=false, QString changetsetid="") = 0;
+    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress=NULL, bool strict=false, QString changetsetid = QString()) = 0;
 
     QString toMainHtml(QString type, QString systemtype);
-    virtual QString toHtml() { return ""; }
+    virtual QString toHtml() { return QString(); }
 
     virtual QString getClass() const = 0;
     virtual char getType() const = 0;
@@ -337,7 +337,9 @@ public:
     static QString stripToOSMId(const IFeature::FId& id);
 
 public:
+#ifdef USE_SPATIALITE
     quint32 internal_id;
+#endif
 
 private:
     FeaturePrivate* p;
@@ -352,8 +354,6 @@ protected:
     bool tagsToXML(QXmlStreamWriter& stream, bool strict);
     static void tagsFromXML(Document* d, Feature* f, QXmlStreamReader& stream);
 
-    long    m_references;
-
     QPainterPath thePath;
 };
 
diff --git a/src/Features/Node.cpp b/src/Features/Node.cpp
index e24dbd6..12c6853 100644
--- a/src/Features/Node.cpp
+++ b/src/Features/Node.cpp
@@ -676,7 +676,7 @@ PhotoNode::PhotoNode(const TrackNode& other)
 
 PhotoNode::~PhotoNode(void)
 {
-    SAFE_DELETE(Photo)
+    delete Photo;
 }
 
 QPixmap PhotoNode::photo() const
@@ -689,7 +689,7 @@ QPixmap PhotoNode::photo() const
 
 void PhotoNode::setPhoto(QPixmap thePhoto)
 {
-    SAFE_DELETE(Photo)
+    delete Photo;
     Photo = new QPixmap(thePhoto.scaled(M_PREFS->getMaxGeoPicWidth(), M_PREFS->getMaxGeoPicWidth(), Qt::KeepAspectRatio));
 }
 
diff --git a/src/Features/Node.h b/src/Features/Node.h
index 83fc4a6..ddbf25a 100644
--- a/src/Features/Node.h
+++ b/src/Features/Node.h
@@ -77,7 +77,7 @@ public:
     Coord position() const;
     void setPosition(const Coord& aCoord);
 
-    bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false, QString changetsetid="");
+    bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false, QString changetsetid = QString());
     static Node* fromXML(Document* d, Layer* L, QXmlStreamReader& stream);
 
     bool toGPX(QXmlStreamWriter& stream, QProgressDialog * progress, QString element, bool forExport=false);
diff --git a/src/Features/Relation.h b/src/Features/Relation.h
index 442bff5..57af0c1 100644
--- a/src/Features/Relation.h
+++ b/src/Features/Relation.h
@@ -57,7 +57,7 @@ public:
     const QPainterPath& getPath() const;
     void buildPath(Projection const &theProjection);
 
-    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false, QString changetsetid="");
+    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false, QString changetsetid = QString());
     static Relation* fromXML(Document* d, Layer* L, QXmlStreamReader& stream);
 
     virtual QString toHtml();
diff --git a/src/Features/TrackSegment.h b/src/Features/TrackSegment.h
index 9ce2611..f38bed6 100644
--- a/src/Features/TrackSegment.h
+++ b/src/Features/TrackSegment.h
@@ -57,10 +57,10 @@ public:
 
     virtual bool toGPX(QXmlStreamWriter& stream, QProgressDialog * progress, bool forExport=false);
     static TrackSegment* fromGPX(Document* d, Layer* L, QXmlStreamReader& stream, QProgressDialog * progress);
-    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false,QString changetsetid="");
+    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false,QString changetsetid = QString());
     static TrackSegment* fromXML(Document* d, Layer* L, QXmlStreamReader& stream, QProgressDialog * progress);
 
-    virtual QString toHtml() {return "";}
+    virtual QString toHtml() {return QString();}
 
 private:
     TrackSegmentPrivate* p;
diff --git a/src/Features/Way.cpp b/src/Features/Way.cpp
index e8aadbe..fd746f7 100644
--- a/src/Features/Way.cpp
+++ b/src/Features/Way.cpp
@@ -219,7 +219,7 @@ void Way::partChanged(Feature* /*F*/, int ChangeId)
 
 QString Way::description() const
 {
-    QString s(tagValue("name",""));
+    QString s(tagValue("name",QString()));
     if (!s.isEmpty())
         return QString("%1 (%2)").arg(s).arg(id().numId);
     return QString("%1").arg(id().numId);
@@ -416,7 +416,7 @@ void Way::updateMeta()
         return;
 
     bool isArea = false;
-    if (tagValue("highway", "") == "" || tagValue("area", "") != "")
+    if (tagValue("highway", QString()).isEmpty() || !tagValue("area", QString()).isEmpty())
         isArea = (p->Nodes[0] == p->Nodes[p->Nodes.size()-1]);
 
     for (int i=0; (i+1)<p->Nodes.size(); ++i)
@@ -721,15 +721,15 @@ bool Way::toGPX(QXmlStreamWriter& stream, QProgressDialog * progress, bool forEx
 
     if (!forExport)
         stream.writeAttribute("xml:id", xmlId());
-    QString s = tagValue("name","");
+    QString s = tagValue("name",QString());
     if (!s.isEmpty()) {
         stream.writeTextElement("name", s);
     }
-    s = tagValue("_comment_","");
+    s = tagValue("_comment_",QString());
     if (!s.isEmpty()) {
         stream.writeTextElement("cmt", s);
     }
-    s = tagValue("_description_","");
+    s = tagValue("_description_",QString());
     if (!s.isEmpty()) {
         stream.writeTextElement("desc", s);
     }
diff --git a/src/Features/Way.h b/src/Features/Way.h
index d5e3034..a370477 100644
--- a/src/Features/Way.h
+++ b/src/Features/Way.h
@@ -83,7 +83,7 @@ public:
     void buildPath(Projection const &theProjection);
 
     virtual bool toGPX(QXmlStreamWriter& stream, QProgressDialog * progress, bool forExport=false);
-    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false, QString changetsetid="");
+    virtual bool toXML(QXmlStreamWriter& stream, QProgressDialog * progress, bool strict=false, QString changetsetid = QString());
     static Way* fromXML(Document* d, Layer* L, QXmlStreamReader& stream);
 
     virtual QString toHtml();
diff --git a/src/GPS/qgpsdevice.cpp b/src/GPS/qgpsdevice.cpp
index 04889f6..b0c146a 100644
--- a/src/GPS/qgpsdevice.cpp
+++ b/src/GPS/qgpsdevice.cpp
@@ -1056,10 +1056,17 @@ void QGPSDDevice::onDataAvailable()
         satArray[i][0] = satArray[i][1] = satArray[i][2] = 0;
     for (int i=0; i<num_sat; ++i)
     {
+#if GPSD_API_MAJOR_VERSION > 5
+        int id = gpsdata->skyview[i].PRN;
+        satArray[id][0] = gpsdata->skyview[i].elevation;
+        satArray[id][1] = gpsdata->skyview[i].azimuth;
+        satArray[id][2] = gpsdata->skyview[i].ss;
+#else
         int id = gpsdata->PRN[i];
         satArray[id][0] = gpsdata->elevation[i];
         satArray[id][1] = gpsdata->azimuth[i];
         satArray[id][2] = gpsdata->ss[i];
+#endif
     }
     setNumSatellites(num_sat);
 
diff --git a/src/ImportExport/ImportCSVDialog.cpp b/src/ImportExport/ImportCSVDialog.cpp
index 61236ff..b835dae 100644
--- a/src/ImportExport/ImportCSVDialog.cpp
+++ b/src/ImportExport/ImportCSVDialog.cpp
@@ -109,7 +109,7 @@ void ImportCSVDialog::analyze()
             m_quote = "'";
             ui->rbStringSingle->setChecked(true);
         } else {
-            m_quote = "";
+            m_quote.clear();
             ui->rbStringNone->setChecked(true);
         }
 
@@ -319,7 +319,7 @@ void ImportCSVDialog::on_edCustomDelim_textEdited()
 
 void ImportCSVDialog::on_rbStringNone_clicked()
 {
-    m_quote = "";
+    m_quote.clear();
     generatePreview();
 }
 
@@ -430,7 +430,7 @@ bool ImportCSVDialog::import(Layer *aLayer)
 
 void ImportCSVDialog::on_btLoad_clicked()
 {
-    QString f = QFileDialog::getOpenFileName(this, tr("Load CSV import settings"), "", tr("Merkaartor import settings (*.mis)"));
+    QString f = QFileDialog::getOpenFileName(this, tr("Load CSV import settings"), QString(), tr("Merkaartor import settings (*.mis)"));
     if (f.isEmpty())
         return;
 
@@ -500,7 +500,7 @@ void ImportCSVDialog::on_btLoad_clicked()
         item->setData(Qt::UserRole, i);
         ui->lvFields->addItem(item);
     }
-    ui->edFieldName->setText("");
+    ui->edFieldName->setText(QString());
 
     on_edProjection_editingFinished();
 }
diff --git a/src/ImportExport/ImportCSVDialog.ui b/src/ImportExport/ImportCSVDialog.ui
index 38a465f..52197be 100644
--- a/src/ImportExport/ImportCSVDialog.ui
+++ b/src/ImportExport/ImportCSVDialog.ui
@@ -52,17 +52,17 @@
          <bool>true</bool>
         </property>
         <property name="html">
-         <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+         <string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
 p, li { white-space: pre-wrap; }
 </style></head><body style=" font-family:'Courier New'; font-size:9pt; font-weight:400; font-style:normal;">
-<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
-<tr>
-<td style="border: none;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4</span></p></td></tr></table></body></html></string>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
+        </property>
+        <property name="acceptRichText">
+         <bool>false</bool>
+        </property>
+        <property name="textInteractionFlags">
+         <set>Qt::TextSelectableByMouse</set>
         </property>
        </widget>
       </item>
diff --git a/src/ImportExport/ImportExportGdal.cpp b/src/ImportExport/ImportExportGdal.cpp
index 4641854..c1b039f 100644
--- a/src/ImportExport/ImportExportGdal.cpp
+++ b/src/ImportExport/ImportExportGdal.cpp
@@ -473,8 +473,7 @@ bool ImportExportGdal::importGDALDataset(GDALDataset* poDS, Layer* aLayer, bool
     QApplication::restoreOverrideCursor();
 #endif
 
-    if (toWGS84)
-        delete toWGS84;
+    delete toWGS84;
 
     if (progress.wasCanceled())
         return false;
@@ -487,16 +486,15 @@ bool ImportExportGdal::import(Layer* aLayer)
 #ifdef GDAL2
     GDALAllRegister();
     GDALDataset *poDS;
-    poDS = (GDALDataset *) GDALOpen( FileName.toUtf8().constData(), GA_ReadOnly );
+    poDS = (GDALDataset *) GDALOpenEx( FileName.toUtf8().constData(), GDAL_OF_VECTOR | GDAL_OF_RASTER | GDAL_OF_VERBOSE_ERROR, NULL, NULL, NULL );
 #else
     OGRRegisterAll();
     OGRDataSource *poDS;
     poDS = OGRSFDriverRegistrar::Open( FileName.toUtf8().constData(), FALSE );
 #endif
 
-    if( poDS == NULL )
-    {
-        qDebug( "GDAL Open failed.\n" );
+    if( poDS == NULL ) {
+        //qDebug() << "GDAL Open failed from file " << FileName.toUtf8().constData();
         return false;
     }
 
diff --git a/src/ImportExport/ImportExportOSC.cpp b/src/ImportExport/ImportExportOSC.cpp
index 985af05..d706350 100644
--- a/src/ImportExport/ImportExportOSC.cpp
+++ b/src/ImportExport/ImportExportOSC.cpp
@@ -66,7 +66,7 @@ bool ImportExportOSC::import(Layer* aLayer)
     }
 
     QList<IFeature::FId> featIdList;
-    Feature* F;
+    Feature* F = NULL;
     stream.readNext();
     while(!stream.atEnd() && !stream.isEndElement()) {
         if (stream.name() == "create") {
diff --git a/src/ImportExport/ImportNMEA.cpp b/src/ImportExport/ImportNMEA.cpp
index a82dde1..44d0138 100644
--- a/src/ImportExport/ImportNMEA.cpp
+++ b/src/ImportExport/ImportNMEA.cpp
@@ -209,8 +209,11 @@ TrackNode* ImportNMEA::importRMC (QString line)
 
     QString strDate = tokens[9] + tokens[1];
     QDateTime date = QDateTime::fromString(strDate, "ddMMyyHHmmss.zzz");
-    if (!date.isValid())
+    if (!date.isValid()) date = QDateTime::fromString(strDate, "ddMMyyHHmmss.z");
+    if (!date.isValid()) date = QDateTime::fromString(strDate, "ddMMyyHHmmss");
+    if (!date.isValid()) {
         return NULL;
+    }
 
     if (date.date().year() < 1970)
         date = date.addYears(100);
diff --git a/src/Interactions/CreateNodeInteraction.cpp b/src/Interactions/CreateNodeInteraction.cpp
index 9e30ebb..0c6aec0 100644
--- a/src/Interactions/CreateNodeInteraction.cpp
+++ b/src/Interactions/CreateNodeInteraction.cpp
@@ -21,7 +21,7 @@ CreateNodeInteraction::CreateNodeInteraction(MainWindow* aMain)
 
 CreateNodeInteraction::~CreateNodeInteraction(void)
 {
-    SAFE_DELETE(theMoveInteraction);
+    delete theMoveInteraction;
 }
 
 QString CreateNodeInteraction::toHtml()
diff --git a/src/Interactions/CreateRoundaboutDock.ui b/src/Interactions/CreateRoundaboutDock.ui
index a3667a8..9f5d505 100644
--- a/src/Interactions/CreateRoundaboutDock.ui
+++ b/src/Interactions/CreateRoundaboutDock.ui
@@ -1,37 +1,97 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>CreateRoundaboutDock</class>
- <widget class="QWidget" name="CreateRoundaboutDock" >
-  <property name="geometry" >
+ <widget class="QWidget" name="CreateRoundaboutDock">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>364</width>
-    <height>39</height>
+    <height>142</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
-   <property name="spacing" >
+  <layout class="QVBoxLayout">
+   <property name="spacing">
     <number>6</number>
    </property>
+   <property name="margin">
+    <number>9</number>
+   </property>
    <item>
-    <widget class="QCheckBox" name="DriveRight" >
-     <property name="text" >
-      <string>Driving at the right side of the road</string>
-     </property>
-    </widget>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="3" column="0">
+      <widget class="QLabel" name="precisionLabel">
+       <property name="text">
+        <string>Precision (meters/segment)</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Type</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QDoubleSpinBox" name="precision">
+       <property name="decimals">
+        <number>1</number>
+       </property>
+       <property name="minimum">
+        <double>0.100000000000000</double>
+       </property>
+       <property name="value">
+        <double>3.000000000000000</double>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QComboBox" name="type">
+       <item>
+        <property name="text">
+         <string>Roundabout</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Plain circle</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QComboBox" name="drivingSide">
+       <item>
+        <property name="text">
+         <string>Left</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Right</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Driving side</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
    </item>
    <item>
     <spacer>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>40</height>
diff --git a/src/Interactions/CreateRoundaboutInteraction.cpp b/src/Interactions/CreateRoundaboutInteraction.cpp
index c98c752..73d71be 100644
--- a/src/Interactions/CreateRoundaboutInteraction.cpp
+++ b/src/Interactions/CreateRoundaboutInteraction.cpp
@@ -28,15 +28,24 @@ CreateRoundaboutInteraction::CreateRoundaboutInteraction(MainWindow* aMain)
     theDock->setAllowedAreas(Qt::LeftDockWidgetArea);
     theMain->addDockWidget(Qt::LeftDockWidgetArea, theDock);
     theDock->show();
-    DockData.DriveRight->setChecked(M_PREFS->getrightsidedriving());
+    connect(DockData.type, SIGNAL(currentIndexChanged(int)), this, SLOT(on_typeChanged(int)));
+    DockData.drivingSide->setCurrentIndex(M_PREFS->getrightsidedriving());
+    DockData.precision->setValue(M_PREFS->getRoundaboutPrecision());
+    DockData.type->setCurrentIndex(M_PREFS->getRoundaboutType());
 
     theMain->view()->setCursor(cursor());
 #endif
 }
 
+void CreateRoundaboutInteraction::on_typeChanged(int newType) {
+    DockData.drivingSide->setEnabled(newType == 0);
+}
+
 CreateRoundaboutInteraction::~CreateRoundaboutInteraction()
 {
-    M_PREFS->setrightsidedriving(DockData.DriveRight->isChecked());
+    M_PREFS->setrightsidedriving(DockData.drivingSide->currentIndex()); /* 0 is left, 1 is right */
+    M_PREFS->setRoundaboutType(DockData.type->currentIndex());
+    M_PREFS->setRoundaboutPrecision(DockData.precision->value());
     delete theDock;
     view()->update();
 }
@@ -71,19 +80,10 @@ void CreateRoundaboutInteraction::mousePressEvent(QMouseEvent * event)
         }
         else
         {
-            QPointF CenterF(COORD_TO_XY(Center));
-            qreal Radius = distance(CenterF,LastCursor)/view()->pixelPerM();
-            qreal Precision = 2.49;
-            if (Radius<2.5)
-                Radius = 2.5;
-            qreal Angle = 2*acos(1-Precision/Radius);
-            qreal Steps = ceil(2*M_PI/Angle);
-            Angle = 2*M_PI/Steps;
-            Radius *= view()->pixelPerM();
-            qreal Modifier = DockData.DriveRight->isChecked()?-1:1;
-            QBrush SomeBrush(QColor(0xff,0x77,0x11,128));
-            QPen TP(SomeBrush,view()->pixelPerM()*4+1);
-            QPointF Prev(CenterF.x()+cos(Modifier*Angle/2)*Radius,CenterF.y()+sin(Modifier*Angle/2)*Radius);
+            calculatePoints();
+            if (Points.size() == 0) return;
+
+            QPointF Prev = Points[0];
             Node* First = g_backend.allocNode(theMain->document()->getDirtyOrOriginLayer(), XY_TO_COORD(Prev.toPoint()));
             Way* R = g_backend.allocWay(theMain->document()->getDirtyOrOriginLayer());
             CommandList* L  = new CommandList(MainWindow::tr("Create Roundabout %1").arg(R->id().numId), R);
@@ -97,17 +97,16 @@ void CreateRoundaboutInteraction::mousePressEvent(QMouseEvent * event)
             }
             // "oneway" is implied on roundabouts
             //R->setTag("oneway","yes");
-            R->setTag("junction","roundabout");
-            for (qreal a = Angle*3/2; a<2*M_PI; a+=Angle)
-            {
-                QPointF Next(CenterF.x()+cos(Modifier*a)*Radius,CenterF.y()+sin(Modifier*a)*Radius);
+            if (DockData.type->currentIndex() == 0)
+                R->setTag("junction","roundabout");
+            for (int i = 1; i < Points.size(); i++ ) {
+                QPointF Next = Points[i];
                 Node* New = g_backend.allocNode(theMain->document()->getDirtyOrOriginLayer(), XY_TO_COORD(Next.toPoint()));
                 L->add(new AddFeatureCommand(theMain->document()->getDirtyOrOriginLayer(),New,true));
                 R->add(New);
             }
             R->add(First);
-            for (FeatureIterator it(document()); !it.isEnd(); ++it)
-            {
+            for (FeatureIterator it(document()); !it.isEnd(); ++it) {
                 Way* W1 = CAST_WAY(it.get());
                 if (W1 && (W1 != R))
                     Way::createJunction(theMain->document(), L, R, W1, true);
@@ -141,31 +140,45 @@ void CreateRoundaboutInteraction::mouseReleaseEvent(QMouseEvent* anEvent)
     Interaction::mouseReleaseEvent(anEvent);
 }
 
-void CreateRoundaboutInteraction::paintEvent(QPaintEvent* , QPainter& thePainter)
-{
-    if (HaveCenter)
-    {
+void CreateRoundaboutInteraction::calculatePoints() {
+    Points.clear();
+    if (HaveCenter) {
         QPointF CenterF(COORD_TO_XY(Center));
         qreal Radius = distance(CenterF,LastCursor)/view()->pixelPerM();
-        qreal Precision = 1.99;
-        if (Radius<2)
-            Radius = 2;
-        qreal Angle = 2*acos(1-Precision/Radius);
-        qreal Steps = ceil(2*M_PI/Angle);
-        Angle = 2*M_PI/Steps;
+        qreal Precision = DockData.precision->value(); //2.49;
+        /* Let the precision be the approximate number of meters per arc */
+
+        qreal Circumference = 2*M_PI*Radius;
+        qreal Steps = Circumference/Precision;
+        if (Steps < 3) Steps = 3;
+        qreal Angle = 2*M_PI/Steps;
+
+        /* Normalize the radius for drawing */
         Radius *= view()->pixelPerM();
-        qreal Modifier = DockData.DriveRight->isChecked()?-1:1;
-        QBrush SomeBrush(QColor(0xff,0x77,0x11,128));
-        QPen TP(SomeBrush,view()->pixelPerM()*4);
-        QPointF Prev(CenterF.x()+cos(Modifier*Angle/2)*Radius,CenterF.y()+sin(Modifier*Angle/2)*Radius);
-        for (qreal a = Angle*3/2; a<2*M_PI; a+=Angle)
-        {
-            QPointF Next(CenterF.x()+cos(Modifier*a)*Radius,CenterF.y()+sin(Modifier*a)*Radius);
-            ::draw(thePainter,TP,Feature::OneWay, Prev,Next,4,view()->projection());
-            Prev = Next;
+
+        qreal Modifier = DockData.drivingSide->currentIndex() == 1 ? -1:1;
+        for (qreal a = 0; a<2*M_PI; a+=Angle) {
+            QPointF point(CenterF.x()+cos(Modifier*a)*Radius,CenterF.y()+sin(Modifier*a)*Radius);
+            Points.append(point);
         }
-        QPointF Next(CenterF.x()+cos(Modifier*Angle/2)*Radius,CenterF.y()+sin(Modifier*Angle/2)*Radius);
-        ::draw(thePainter,TP,Feature::OneWay, Prev,Next,4,view()->projection());
+    }
+}
+
+void CreateRoundaboutInteraction::paintEvent(QPaintEvent* , QPainter& thePainter)
+{
+    calculatePoints();
+
+    if (Points.size() == 0) return;
+
+    qreal Precision = DockData.precision->value(); //2.49;
+    QBrush SomeBrush(QColor(0xff,0x77,0x11,128));
+    QPen TP(SomeBrush,view()->pixelPerM()*Precision/2);
+
+    for (int i = 0; i < Points.size(); i++) {
+        QPointF Prev = Points[i];
+        QPointF Next = Points[ (i+1)%Points.size() ];
+        ::draw(thePainter, TP, (DockData.type->currentIndex() == 0) ? Feature::OneWay : Feature::BothWays, Prev, Next, Precision, view()->projection());
+        Prev = Next;
     }
 }
 
diff --git a/src/Interactions/CreateRoundaboutInteraction.h b/src/Interactions/CreateRoundaboutInteraction.h
index bb7d33b..5fd6f36 100644
--- a/src/Interactions/CreateRoundaboutInteraction.h
+++ b/src/Interactions/CreateRoundaboutInteraction.h
@@ -23,11 +23,15 @@ class CreateRoundaboutInteraction : public Interaction
 #ifndef _MOBILE
         virtual QCursor cursor() const;
 #endif
+    private slots:
+        void on_typeChanged(int newType);
 
     private:
+        void calculatePoints();
         QDockWidget* theDock;
         Ui::CreateRoundaboutDock DockData;
         Coord Center;
+        QList<QPointF> Points;
         QPointF LastCursor;
         bool HaveCenter;
 };
diff --git a/src/Interactions/Interaction.cpp b/src/Interactions/Interaction.cpp
index 0560f88..ed05b8c 100644
--- a/src/Interactions/Interaction.cpp
+++ b/src/Interactions/Interaction.cpp
@@ -25,7 +25,7 @@
 
 Interaction::Interaction(MainWindow* aMain)
     : QObject(aMain), theMain(aMain), Panning(false)
-    , LastSnap(0), SnapActive(true)
+    , SnapActive(true)
     , NoSelectPoints(false), NoSelectRoads(false), NoSelectVirtuals(true)
     , Dragging(false)
     , StartDrag(0,0), EndDrag(0,0)
@@ -195,17 +195,28 @@ void Interaction::paintEvent(QPaintEvent*, QPainter& thePainter)
     }
 }
 
-void Interaction::updateSnap(QMouseEvent* event)
+void Interaction::mouseEvent(QMouseEvent*) {
+
+}
+
+void FeatureSnapInteraction::mouseEvent(QMouseEvent* event) {
+    updateSnap(event);
+}
+
+void FeatureSnapInteraction::updateSnap(QMouseEvent* event)
 {
     if (panning())
     {
-        LastSnap = 0;
+        clearLastSnap();
         return;
     }
     bool NoRoads =
         ( (QApplication::keyboardModifiers() & Qt::AltModifier) &&  (QApplication::keyboardModifiers() &Qt::ControlModifier) );
-    Feature* Prev = LastSnap;
-    LastSnap = 0;
+
+    /* Beware: Prev shall not be dereferenced after clearLastSnap! */
+    Feature* Prev = lastSnap();
+    clearLastSnap();
+
     Feature* ReadOnlySnap = 0;
     if (!SnapActive) return;
     //QTime Start(QTime::currentTime());
@@ -263,7 +274,7 @@ void Interaction::updateSnap(QMouseEvent* event)
                 if (Distance < BestDistance && !F->isReadonly())
                 {
                     BestDistance = Distance;
-                    LastSnap = F;
+                    setLastSnap( F );
                 } else if (Distance < BestReadonlyDistance && F->isReadonly())
                 {
                     BestReadonlyDistance = Distance;
@@ -273,28 +284,28 @@ void Interaction::updateSnap(QMouseEvent* event)
         }
     }
     if (areNodesSelectable) {
-        R = CAST_WAY(LastSnap);
+        R = CAST_WAY(lastSnap());
         if (R) {
             Node* N = R->pixelDistanceNode(event->pos(), CLEAR_DISTANCE, view(), NoSnap, NoSelectVirtuals);
             if (N)
-                LastSnap = N;
+                setLastSnap( N );
         }
     }
 
-    if (Prev != LastSnap) {
-        curStackSnap = SnapList.indexOf(LastSnap);
+    if (Prev != lastSnap()) {
+        curStackSnap = SnapList.indexOf(lastSnap());
         view()->update();
     }
 
     if (M_PREFS->getMapTooltip()) {
-        if (LastSnap)
-            view()->setToolTip(LastSnap->toHtml());
+        if (lastSnap())
+            view()->setToolTip(lastSnap()->toHtml());
         else
             view()->setToolTip("");
     }
     if (M_PREFS->getInfoOnHover() && main() && theMain->info() && theMain->info()->isVisible()) {
-        if (LastSnap) {
-            theMain->info()->setHoverHtml(LastSnap->toHtml());
+        if (lastSnap()) {
+            theMain->info()->setHoverHtml(lastSnap()->toHtml());
         } else
             if (ReadOnlySnap)
                 theMain->info()->setHoverHtml(ReadOnlySnap->toHtml());
@@ -302,19 +313,14 @@ void Interaction::updateSnap(QMouseEvent* event)
                 theMain->info()->unsetHoverHtml();
     }
 
-    emit featureSnap(LastSnap);
-}
-
-Feature* Interaction::lastSnap()
-{
-    return LastSnap;
+    emit featureSnap(lastSnap());
 }
 
 
 /***************/
 
 FeatureSnapInteraction::FeatureSnapInteraction(MainWindow* aMain)
-        : Interaction(aMain)
+        : Interaction(aMain), LastSnap(0)
 {
 //    handCursor = QCursor(QPixmap(":/Icons/grab.png"));
 //    grabCursor = QCursor(QPixmap(":/Icons/grabbing.png"));
@@ -347,9 +353,9 @@ void FeatureSnapInteraction::paintEvent(QPaintEvent* anEvent, QPainter& thePaint
         theMain->properties()->highlighted(i)->drawHighlight(thePainter, view());
     }
 
-    if (LastSnap) {
-        LastSnap->drawHover(thePainter, view());
-        view()->setToolTip(LastSnap->toHtml());
+    if (lastSnap()) {
+        lastSnap()->drawHover(thePainter, view());
+        view()->setToolTip(lastSnap()->toHtml());
     } else {
         view()->setToolTip("");
     }
@@ -359,8 +365,8 @@ void FeatureSnapInteraction::paintEvent(QPaintEvent* anEvent, QPainter& thePaint
 void FeatureSnapInteraction::mousePressEvent(QMouseEvent * event)
 {
     if (event->button() == Qt::LeftButton)
-        snapMousePressEvent(event,LastSnap);
-    if (!(M_PREFS->getMouseSingleButton() && LastSnap))
+        snapMousePressEvent(event,lastSnap());
+    if (!(M_PREFS->getMouseSingleButton() && lastSnap()))
         Interaction::mousePressEvent(event);
 }
 
@@ -369,8 +375,8 @@ void FeatureSnapInteraction::mouseReleaseEvent(QMouseEvent * event)
     if (event->button() == Qt::RightButton && !Panning && !Dragging)
         emit(requestCustomContextMenu(event->pos()));
 
-    snapMouseReleaseEvent(event,LastSnap);
-    if (!(M_PREFS->getMouseSingleButton() && LastSnap))
+    snapMouseReleaseEvent(event,lastSnap());
+    if (!(M_PREFS->getMouseSingleButton() && lastSnap()))
         Interaction::mouseReleaseEvent(event);
 }
 
@@ -382,8 +388,8 @@ void FeatureSnapInteraction::mouseMoveEvent(QMouseEvent* event)
 //    else
         view()->setCursor(cursor());
 #endif
-    snapMouseMoveEvent(event, LastSnap);
-    if (!(M_PREFS->getMouseSingleButton() && LastSnap))
+    snapMouseMoveEvent(event, lastSnap());
+    if (!(M_PREFS->getMouseSingleButton() && lastSnap()))
         Interaction::mouseMoveEvent(event);
 }
 
@@ -395,8 +401,8 @@ void FeatureSnapInteraction::mouseDoubleClickEvent(QMouseEvent* event)
 #ifndef _MOBILE
         view()->setCursor(cursor());
 #endif
-    snapMouseDoubleClickEvent(event, LastSnap);
-    if (!(M_PREFS->getMouseSingleButton() && LastSnap))
+    snapMouseDoubleClickEvent(event, lastSnap());
+    if (!(M_PREFS->getMouseSingleButton() && lastSnap()))
         Interaction::mouseDoubleClickEvent(event);
 }
 
@@ -443,9 +449,24 @@ void FeatureSnapInteraction::clearSnap()
 
 void FeatureSnapInteraction::clearLastSnap()
 {
-    LastSnap = 0;
+    if (LastSnap) {
+        LastSnap = 0;
+        g_backend.resumeDeletes();
+    }
+}
+
+void FeatureSnapInteraction::setLastSnap(Feature *f)
+{
+    if (!LastSnap) g_backend.delayDeletes();
+    LastSnap = f;
+}
+
+Feature* FeatureSnapInteraction::lastSnap()
+{
+    return LastSnap;
 }
 
+
 QList<Feature*> FeatureSnapInteraction::snapList()
 {
     return StackSnap;
diff --git a/src/Interactions/Interaction.h b/src/Interactions/Interaction.h
index 8c7363d..5b6b12e 100644
--- a/src/Interactions/Interaction.h
+++ b/src/Interactions/Interaction.h
@@ -41,6 +41,7 @@ public:
     virtual void mouseMoveEvent(QMouseEvent* event);
     virtual void mouseDoubleClickEvent(QMouseEvent* event);
     virtual void wheelEvent(QWheelEvent* ev);
+    virtual void mouseEvent(QMouseEvent* ev);
 
     virtual void paintEvent(QPaintEvent* anEvent, QPainter& thePainter);
     virtual QString toHtml() = 0;
@@ -50,16 +51,12 @@ public:
     MainWindow* main();
     bool panning() const;
 
-    virtual void updateSnap(QMouseEvent* event);
-    Feature* lastSnap();
-
 protected:
     MainWindow* theMain;
     bool Panning;
     QPoint FirstPan;
     QPoint LastPan;
 
-    Feature* LastSnap;
     QList<Feature*> NoSnap;
     bool SnapActive;
     bool NoSelectPoints;
@@ -73,7 +70,6 @@ protected:
 
 signals:
     void requestCustomContextMenu(const QPoint & pos);
-    void featureSnap(Feature*);
 
 protected:
     bool Dragging;
@@ -83,6 +79,7 @@ protected:
 
 class FeatureSnapInteraction : public Interaction
 {
+    Q_OBJECT
 public:
     FeatureSnapInteraction(MainWindow* aMain);
 
@@ -98,17 +95,23 @@ public:
     virtual void snapMouseMoveEvent(QMouseEvent* , Feature*);
     virtual void snapMouseDoubleClickEvent(QMouseEvent* , Feature*);
 
+    virtual void mouseEvent(QMouseEvent* event);
+
     void activateSnap(bool b);
     void addToNoSnap(Feature* F);
     void addToNoSnap(QList<Feature *> Fl);
     void clearNoSnap();
     void clearSnap();
-    void clearLastSnap();
     QList<Feature*> snapList();
     void addSnap(Feature* aSnap);
     void setSnap(QList<Feature*> aSnapList);
     void nextSnap();
     void previousSnap();
+    void updateSnap(QMouseEvent* event);
+
+    void setLastSnap(Feature *f);
+    void clearLastSnap();
+    Feature* lastSnap();
 
     void setDontSelectPoints(bool b);
     void setDontSelectRoads(bool b);
@@ -117,13 +120,15 @@ public:
 #ifndef _MOBILE
     virtual QCursor cursor() const;
 #endif
+protected:
+    Feature* LastSnap;
 private:
     QCursor handCursor;
     QCursor grabCursor;
     QCursor defaultCursor;
     QCursor warningCursor;
-
-protected:
+signals:
+    void featureSnap(Feature*);
 };
 
 #endif
diff --git a/src/Interactions/MoveNodeInteraction.cpp b/src/Interactions/MoveNodeInteraction.cpp
index 67c2e43..ef215d7 100644
--- a/src/Interactions/MoveNodeInteraction.cpp
+++ b/src/Interactions/MoveNodeInteraction.cpp
@@ -236,6 +236,7 @@ void MoveNodeInteraction::snapMouseReleaseEvent(QMouseEvent * event, Feature* Cl
 
         if (theList)
             document()->addHistory(theList);
+        theList = NULL;
         view()->setInteracting(false);
         view()->invalidate(true, true, false);
     } else
diff --git a/src/Interactions/RotateInteraction.h b/src/Interactions/RotateInteraction.h
index fad5a02..8f160c4 100644
--- a/src/Interactions/RotateInteraction.h
+++ b/src/Interactions/RotateInteraction.h
@@ -1,5 +1,5 @@
 #ifndef MERKATOR_ROTATEINTERACTION_H_
-#define MERKATOR_ROTATEINTINTERACTION_H_
+#define MERKATOR_ROTATEINTERACTION_H_
 
 #include "Interaction.h"
 #include "Coord.h"
diff --git a/src/Layers/ImageMapLayer.cpp b/src/Layers/ImageMapLayer.cpp
index e237e84..31966b0 100644
--- a/src/Layers/ImageMapLayer.cpp
+++ b/src/Layers/ImageMapLayer.cpp
@@ -65,8 +65,8 @@ public:
     }
     ~ImageMapLayerPrivate()
     {
-        SAFE_DELETE(theMapAdapter)
-        SAFE_DELETE(theImageManager)
+        delete theMapAdapter;
+        delete theImageManager;
     }
 };
 
@@ -84,7 +84,7 @@ ImageMapLayer::ImageMapLayer(const QString & aName)
 
 ImageMapLayer::~ ImageMapLayer()
 {
-    SAFE_DELETE(p)
+    delete p;
 }
 
 CoordBox ImageMapLayer::boundingBox()
@@ -154,7 +154,7 @@ QString ImageMapLayer::projection() const
     if (p->theMapAdapter)
         return p->theMapAdapter->projection();
 
-    return "";
+    return QString();
 }
 
 IImageManager* ImageMapLayer::getImageManger()
@@ -644,7 +644,6 @@ void ImageMapLayer::draw(MapView& theView, QRect& rect)
 
     if (p->curPix.size() != rect.size()) {
         p->curPix = QPixmap(rect.size());
-        p->curPix.fill(Qt::transparent);
     }
 
     if (p->newPix.isNull())
@@ -671,6 +670,9 @@ void ImageMapLayer::draw(MapView& theView, QRect& rect)
             pms = p->newPix.copy(drawingRect);
     }
 
+    /* We need to clear the pixmap in case we're painting transparent stuff over */
+    p->curPix.fill(Qt::transparent);
+
     QPainter P(&p->curPix);
     P.drawPixmap((pmSize.width()-pms.width())/2, (pmSize.height()-pms.height())/2, pms);
     //    if (p->theMapAdapter->isTiled())
@@ -820,7 +822,7 @@ QRect ImageMapLayer::drawFull(MapView& theView, QRect& rect)
         } else if (p->theMapAdapter->getType() == IMapAdapter::NetworkBackground || p->theMapAdapter->getType() == IMapAdapter::BrowserBackground) {
             QString url (p->theMapAdapter->getQuery(wgs84vp, vp, rect));
             if (!url.isEmpty()) {
-                qDebug() << "ImageMapLayer::drawFull: getting: " << url;
+                //qDebug() << "ImageMapLayer::drawFull: getting: " << url;
                 QPixmap pm = QPixmap::fromImage(p->theMapAdapter->getImageManager()->getImage(p->theMapAdapter,url));
                 if (!pm.isNull()) {
                     p->curPix = QPixmap();
@@ -916,11 +918,11 @@ QRect ImageMapLayer::drawTiled(MapView& theView, QRect& rect)
     QPointF vpCenter0 = QPointF(vpCenter.x()-p->theMapAdapter->getBoundingbox().left(), p->theMapAdapter->getBoundingbox().bottom()-vpCenter.y());
     qreal mapmiddle_tile_x = qRound(vpCenter0.x()/tileWidth);
     qreal mapmiddle_tile_y = qRound(vpCenter0.y()/tileHeight);
-    qDebug() << "z: " << p->theMapAdapter->getAdaptedZoom() << "; t_x: " << mapmiddle_tile_x << "; t_y: " << mapmiddle_tile_y ;
+    //qDebug() << "z: " << p->theMapAdapter->getAdaptedZoom() << "; t_x: " << mapmiddle_tile_x << "; t_y: " << mapmiddle_tile_y ;
 
     qreal cross_x = vpCenter0.x() - mapmiddle_tile_x*tileWidth;		// position on middle tile
     qreal cross_y = vpCenter0.y() - mapmiddle_tile_y*tileHeight;
-    qDebug() << "cross_x: " << cross_x << "; cross_y: " << cross_y;
+    //qDebug() << "cross_x: " << cross_x << "; cross_y: " << cross_y;
 
         // calculate how many surrounding tiles have to be drawn to fill the display
     qreal space_left = vp0Center.x() - cross_x;
@@ -947,8 +949,6 @@ QRect ImageMapLayer::drawTiled(MapView& theView, QRect& rect)
     int cross_scr_y = cross_y * tilesizeH / tileHeight;
 
     QSize pmSize = fRect.size().toSize();
-//    QSize pmSize((tiles_right+tiles_left+1)*tilesizeW, (tiles_bottom+tiles_above+1)*tilesizeH);
-//    QPixmap tmpPm = p->pm.scaled(retRect.size(), Qt::IgnoreAspectRatio);
     p->newPix = QPixmap(pmSize);
     p->newPix.fill(Qt::transparent);
     QPainter painter(&p->newPix);
@@ -977,16 +977,14 @@ QRect ImageMapLayer::drawTiled(MapView& theView, QRect& rect)
     for (QList<Tile>::const_iterator tile = tiles.begin(); tile != tiles.end() && n<100; ++tile)
     {
         QImage pm = p->theMapAdapter->getImageManager()->getImage(p->theMapAdapter, p->theMapAdapter->getQuery(mapmiddle_tile_x+tile->i, mapmiddle_tile_y+tile->j, p->theMapAdapter->getZoom()));
+        int x = (tile->i*tilesizeW)+pmSize.width()/2 -cross_scr_x;
+        int y = (tile->j*tilesizeH)+pmSize.height()/2-cross_scr_y;
         if (!pm.isNull())
-            painter.drawImage((tile->i*tilesizeW)+pmSize.width()/2 -cross_scr_x,
-                               (tile->j*tilesizeH)+pmSize.height()/2-cross_scr_y,
-                               pm);
-
-        if (M_PREFS->getDrawTileBoundary()) {
-            painter.drawRect((tile->i*tilesizeW)+pmSize.width()/2 -cross_scr_x,
-                             (tile->j*tilesizeH)+pmSize.height()/2-cross_scr_y,
-                             tilesizeW, tilesizeH);
-        }
+            painter.drawImage(x, y, pm);
+
+        if (M_PREFS->getDrawTileBoundary())
+            painter.drawRect(x, y, tilesizeW, tilesizeH);
+
         ++n;
     }
     painter.end();
@@ -994,7 +992,7 @@ QRect ImageMapLayer::drawTiled(MapView& theView, QRect& rect)
 //    qDebug() << "tl: " << tl << "; br: " << br;
 //    qDebug() << "vp: " << projVp;
     //    qDebug() << "vlm: " << vlm;
-    qDebug() << "retRect: " << retRect;
+    //qDebug() << "retRect: " << retRect;
 //    QRect expR = QRect(-retRect.left(), -retRect.top(), retRect.width()+retRect.left(), retRect.height()+retRect.top());
 //    p->newPix.save("c:/tmp.png");
 //    p->newPix.copy(expR).save("c:/tmp2.png");
diff --git a/src/Layers/Layer.cpp b/src/Layers/Layer.cpp
index 07d1ed7..53a047b 100644
--- a/src/Layers/Layer.cpp
+++ b/src/Layers/Layer.cpp
@@ -51,7 +51,7 @@ Layer::Layer(const Layer&)
 Layer::~Layer()
 {
     clear();
-    SAFE_DELETE(p);
+    delete p;
 }
 
 void Layer::setName(const QString& s)
@@ -830,9 +830,7 @@ LayerWidget* SpecialLayer::newWidget(void)
 
 void SpecialLayer::refreshLayer()
 {
-    if (m_type == Layer::OsmBugsLayer) {
-        g_Merk_MainWindow->on_layersOpenstreetbugsAction_triggered();
-    } else if (m_type == Layer::MapDustLayer) {
+    if (m_type == Layer::MapDustLayer) {
         g_Merk_MainWindow->on_layersMapdustAction_triggered();
     }
 }
diff --git a/src/Layers/Layer.h b/src/Layers/Layer.h
index b238e86..fe270c2 100644
--- a/src/Layers/Layer.h
+++ b/src/Layers/Layer.h
@@ -48,7 +48,7 @@ public:
         TrackLayerType,
         UploadedLayerType,
         FilterLayerType,
-        OsmBugsLayer,
+        OsmBugsLayer, /* Obsolete */
         MapDustLayer
     } LayerType;
 
@@ -164,7 +164,7 @@ class TrackLayer : public Layer
 {
     Q_OBJECT
 public:
-    TrackLayer(const QString& aName="", const QString& filaname="");
+    TrackLayer(const QString& aName = QString(), const QString& filaname = QString());
     virtual ~TrackLayer();
 
     virtual LayerWidget* newWidget(void);
@@ -190,7 +190,7 @@ class SpecialLayer : public TrackLayer
 {
     Q_OBJECT
 public:
-    SpecialLayer(const QString& aName="", LayerType type=Layer::UndefinedType, const QString& filename="");
+    SpecialLayer(const QString& aName = QString(), LayerType type=Layer::UndefinedType, const QString& filename = QString());
 
     virtual LayerWidget* newWidget(void);
 
diff --git a/src/Layers/OsmRenderLayer.cpp b/src/Layers/OsmRenderLayer.cpp
index bf43f31..2ec78ec 100644
--- a/src/Layers/OsmRenderLayer.cpp
+++ b/src/Layers/OsmRenderLayer.cpp
@@ -17,7 +17,8 @@ inline uint qHash(const QPoint& p)
 
 #define TILE_SIZE 256
 QList<TILE_TYPE> tiles;
-QReadWriteLock tileLock;
+QReadWriteLock tileLock; /* Protects 'tiles' variable */
+QReadWriteLock renderLock; /* Read locks indicate rendering threads, Write lock blocks them */
 #define TILE_CONSTRUCTOR(x, y) QPoint(x, y)
 #define TILE_X(t) t.x()
 #define TILE_Y(t) t.y()
@@ -70,6 +71,7 @@ public:
         if (!p->theDocument)
             return;
 
+        if (!renderLock.tryLockForRead()) return;
         p->theDocument->lockPainters();
 
         TILE_TYPE tile = theTile;
@@ -93,6 +95,7 @@ public:
 
         QMap<RenderPriority, QSet <Feature*> > theFeatures;
 
+        g_backend.delayDeletes();
         for (int i=0; i<p->theDocument->layerSize(); ++i)
             g_backend.getFeatureSet(p->theDocument->getLayer(i), theFeatures, invalidRect, p->theProjection);
 
@@ -105,7 +108,9 @@ public:
         MapRenderer r;
         r.render(&P, theFeatures, projR, /*QRect(0, 0, TILE_SIZE, TILE_SIZE)*/QRect(-((TILE_SIZE*TILE_SURROUND)-TILE_SIZE)/2, -((TILE_SIZE*TILE_SURROUND)-TILE_SIZE)/2, TILE_SIZE*TILE_SURROUND, TILE_SIZE*TILE_SURROUND), p->PixelPerM, p->ROptions);
         P.end();
+        g_backend.resumeDeletes();
         p->theDocument->unlockPainters();
+        renderLock.unlock();
         tileLock.lockForWrite();
         tileCache->insert(tile, img);
 
@@ -153,6 +158,8 @@ void OsmRenderLayer::forceRedraw(const Projection& aProjection, const QTransform
     if (!theDocument)
         return;
 
+    if (!renderLock.tryLockForRead()) return;
+
     setProjection(aProjection);
     setTransform(aTransform);
 
@@ -189,6 +196,8 @@ void OsmRenderLayer::forceRedraw(const Projection& aProjection, const QTransform
         renderGathering = QtConcurrent::map(tiles, RenderTile(this));
         renderGatheringWatcher.setFuture(renderGathering);
     }
+
+    renderLock.unlock();
 }
 
 void OsmRenderLayer::pan(QPoint delta)
@@ -244,3 +253,10 @@ bool OsmRenderLayer::isRenderingDone()
     return renderGathering.isFinished();
 }
 
+void OsmRenderLayer::stopRendering() {
+    renderLock.lockForWrite();
+}
+
+void OsmRenderLayer::resumeRendering() {
+    renderLock.unlock();
+}
diff --git a/src/Layers/OsmRenderLayer.h b/src/Layers/OsmRenderLayer.h
index a252517..e1d1d42 100644
--- a/src/Layers/OsmRenderLayer.h
+++ b/src/Layers/OsmRenderLayer.h
@@ -32,6 +32,9 @@ public:
 
     bool isRenderingDone();
 
+    void stopRendering();
+    void resumeRendering();
+
 signals:
     void renderingDone();
 
diff --git a/src/Main.cpp b/src/Main.cpp
index 975bb61..2193b1a 100644
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -24,59 +24,6 @@
 
 FILE* pLogFile = NULL;
 
-#ifdef QT5
-void myMessageOutput(QtMsgType msgType, const QMessageLogContext &, const QString & str) {
-    const char * buf = str.toStdString().c_str();
-#else
-void myMessageOutput(QtMsgType msgType, const char *buf) {
-#endif
-// From corelib/global/qglobal.cpp : qt_message_output
-
-#if defined(Q_CC_MWERKS) && !defined(Q_OS_SYMBIAN)
-    mac_default_handler(buf);
-#elif defined(Q_OS_WINCE)
-    QString fstr = QString::fromLatin1(buf);
-    fstr += QLatin1String("\n");
-    OutputDebugString(reinterpret_cast<const wchar_t *> (fstr.utf16()));
-#else
-#ifndef NDEBUG
-    fprintf(stderr, "%s\n", buf);
-    fflush(stderr);
-#endif
-    if (pLogFile && msgType == QtDebugMsg) {
-        fprintf(pLogFile, "%s\n", buf);
-        fflush(pLogFile);
-    }
-#endif
-
-    if (msgType == QtFatalMsg
-        || (msgType == QtWarningMsg
-        && (!qgetenv("QT_FATAL_WARNINGS").isNull())) ) {
-
-#if defined(Q_CC_MSVC) && defined(QT_DEBUG) && defined(_DEBUG) && defined(_CRT_ERROR)
-            // get the current report mode
-            int reportMode = _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW);
-            _CrtSetReportMode(_CRT_ERROR, reportMode);
-#if !defined(Q_OS_WINCE)
-            int ret = _CrtDbgReport(_CRT_ERROR, __FILE__, __LINE__, QT_VERSION_STR, buf);
-#else
-            int ret = _CrtDbgReportW(_CRT_ERROR, _CRT_WIDE(__FILE__),
-                __LINE__, _CRT_WIDE(QT_VERSION_STR), reinterpret_cast<const wchar_t *> (QString::fromLatin1(buf).utf16()));
-#endif
-            if (ret == 0  && reportMode & _CRTDBG_MODE_WNDW)
-                return; // ignore
-            else if (ret == 1)
-                _CrtDbgBreak();
-#endif
-
-#if (defined(Q_OS_UNIX) || defined(Q_CC_MINGW))
-            abort(); // trap; generates core dump
-#else
-            exit(1); // goodbye cruel world
-#endif
-    }
-}
-
 void showVersion()
 {
     QString o;
@@ -85,7 +32,7 @@ void showVersion()
     o = QString("using Qt version %1 (built with %2)\n").arg(qVersion()).arg(QT_VERSION_STR);
     fprintf(stdout, "%s", o.toLatin1().data());
     fprintf(stdout, "Copyright Bart Vanhauwaert, Chris Browet and others, 2006-2010\n");
-    fprintf(stdout, "This program is licensed under the Version 2 of the GNU Public License or any later version\n");
+    fprintf(stdout, "This program is licensed under the Version 2 of the GNU General Public License or any later version\n");
 }
 
 void showHelp()
@@ -193,13 +140,9 @@ int main(int argc, char** argv)
 
     if (!logFilename.isNull())
         pLogFile = fopen(logFilename.toLatin1(), "a");
-#ifdef QT5
-    qInstallMessageHandler(myMessageOutput);
-#else
-    qInstallMsgHandler(myMessageOutput);
-#endif
+    /* FIXME: use the file for logging. */
 
-    qDebug() << "**** " << QDateTime::currentDateTime().toString(Qt::ISODate) << " -- Starting " << USER_AGENT;
+    qDebug() << "**** " << QDateTime::currentDateTime().toString(Qt::ISODate) << " -- Starting " << QString("%1 %2").arg(qApp->applicationName()).arg(STRINGIFY(VERSION));
     qDebug() <<	"-------" << QString("using Qt version %1 (built with %2)").arg(qVersion()).arg(QT_VERSION_STR);
     QString projVer = QString(STRINGIFY(PJ_VERSION));
     qDebug() <<	"-------" << QString("using PROJ4 version %1.%2.%3").arg(projVer.left(1)).arg(projVer.mid(1, 1)).arg(projVer.right(1));
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 116bb60..b9ba484 100755
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -132,6 +132,7 @@ class MainWindowPrivate
             title = QString("%1 v%2").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(REVISION));
         }
 
+        QString FILTER_OPEN_NATIVE;
         QString FILTER_OPEN_SUPPORTED;
         QString FILTER_IMPORT_SUPPORTED;
         int lastPrefTabIndex;
@@ -166,7 +167,6 @@ void SetOptionValue(RendererOptions& options,
 MainWindow::MainWindow(QWidget *parent)
         : QMainWindow(parent)
         , ui(new Ui::MainWindow)
-        , currentProjectFile("")
         , theDocument(0)
         , gpsRecLayer(0)
         , curGpsTrackSegment(0)
@@ -204,6 +204,8 @@ MainWindow::MainWindow(QWidget *parent)
     supported_import_formats_desc += tr("Protobuf Binary Format (*.pbf)\n");
 #endif
 
+    p->FILTER_OPEN_NATIVE = tr("Merkaartor document (*.mdc)\n");
+
     p->FILTER_OPEN_SUPPORTED = QString(tr("Supported formats") + " (*.mdc %1)\n").arg(supported_import_formats);
     p->FILTER_OPEN_SUPPORTED += tr("Merkaartor document (*.mdc)\n") + supported_import_formats_desc;
     p->FILTER_OPEN_SUPPORTED += tr("All Files (*)");
@@ -498,14 +500,16 @@ void MainWindow::handleMessage(const QString &msg)
                 loadUrl(u);
                 continue;
             }
-            fileNames.append(args[i]);
+            if (args[i].endsWith(".mdc", Qt::CaseInsensitive))
+                loadDocument(args[i]);
+            else
+                fileNames.append(args[i]);
         }
     }
 
-    if (fileNames.isEmpty())
-        QDir::setCurrent(M_PREFS->getworkingdir());
-    else
-        loadFiles(fileNames);
+    if (fileNames.size() > 0) {
+        importFiles(theDocument, fileNames, NULL);
+    }
 }
 
 MainWindow::~MainWindow(void)
@@ -772,7 +776,7 @@ bool MainWindow::eventFilter(QObject */* watched */, QEvent *event)
         QMouseEvent* mevent = static_cast<QMouseEvent*>(event);
         updateSegmentMode(mevent);
 
-        theView->interaction()->updateSnap(mevent);
+        theView->interaction()->mouseEvent(mevent);
 
         if (M_PREFS->getSelectModeCreation()) {
             MoveNodeInteraction* MI = NULL;
@@ -781,10 +785,10 @@ bool MainWindow::eventFilter(QObject */* watched */, QEvent *event)
             }
             EditInteraction* EI = dynamic_cast<EditInteraction*>(theView->interaction());
             if ((EI && EI->isIdle()) || (MI && MI->isIdle())) {
-                if ((theView->interaction()->lastSnap() && theView->interaction()->lastSnap()->getType() & IFeature::LineString) || !theView->interaction()->lastSnap())
-                    CreateNodeInteraction::createNode(theView->fromView(mevent->pos()), theView->interaction()->lastSnap());
-                else if (theView->interaction()->lastSnap() && theView->interaction()->lastSnap()->getType() == IFeature::Point) {
-                    Node* N = CAST_NODE(theView->interaction()->lastSnap());
+                if ((EI->lastSnap() && EI->lastSnap()->getType() & IFeature::LineString) || !EI->lastSnap())
+                    CreateNodeInteraction::createNode(theView->fromView(mevent->pos()), EI->lastSnap());
+                else if (EI->lastSnap() && EI->lastSnap()->getType() == IFeature::Point) {
+                    Node* N = CAST_NODE(EI->lastSnap());
                     CreateSingleWayInteraction* CI = new CreateSingleWayInteraction(this, N, false);
                     N->invalidatePainter();
                     launchInteraction(CI);
@@ -811,7 +815,7 @@ bool MainWindow::eventFilter(QObject */* watched */, QEvent *event)
         QMouseEvent* mevent = static_cast<QMouseEvent*>(event);
         updateSegmentMode(mevent);
 
-        theView->interaction()->updateSnap(mevent);
+        theView->interaction()->mouseEvent(mevent);
         if (theInfo)
             theInfo->setHtml(theView->interaction()->toHtml());
 
@@ -828,7 +832,7 @@ bool MainWindow::eventFilter(QObject */* watched */, QEvent *event)
         QMouseEvent* mevent = static_cast<QMouseEvent*>(event);
         updateSegmentMode(mevent);
 
-        theView->interaction()->updateSnap(mevent);
+        theView->interaction()->mouseEvent(mevent);
 
         return false;
     }
@@ -846,7 +850,7 @@ bool MainWindow::eventFilter(QObject */* watched */, QEvent *event)
         QMouseEvent* mevent = static_cast<QMouseEvent*>(event);
         updateSegmentMode(mevent);
 
-        theView->interaction()->updateSnap(mevent);
+        theView->interaction()->mouseEvent(mevent);
 
         if (!M_PREFS->getSeparateMoveMode()) {
             EditInteraction* EI = dynamic_cast<EditInteraction*>(theView->interaction());
@@ -1115,7 +1119,6 @@ void MainWindow::createToolBarManager()
     AddActionsIntoManager(toolBarManager, ui->menuLayers, tr("Layers"));
     AddActionsIntoManager(toolBarManager, ui->menuCreate, tr("Create"));
     AddActionsIntoManager(toolBarManager, ui->menu_Feature, tr("Feature"));
-    AddActionsIntoManager(toolBarManager, ui->menuOpenStreetBugs, tr("OpenStreetBugs"));
     AddActionsIntoManager(toolBarManager, ui->menu_Node, tr("Node"));
     AddActionsIntoManager(toolBarManager, ui->menuRoad, tr("Way"));
     AddActionsIntoManager(toolBarManager, ui->menuRelation, tr("Relation"));
@@ -1123,7 +1126,7 @@ void MainWindow::createToolBarManager()
     AddActionsIntoManager(toolBarManager, ui->menuWindow, tr("Windows"));
     AddActionsIntoManager(toolBarManager, ui->menuHelp, tr("Help"));
 
-    toolBarManager->addToolBar(ui->toolBar, "");
+    toolBarManager->addToolBar(ui->toolBar, QString());
 
     QSettings* Sets = M_PREFS->getQSettings();
     if (!g_Merk_Ignore_Preferences && !g_Merk_Reset_Preferences)
@@ -1156,6 +1159,7 @@ void MainWindow::createProgressDialog()
     theProgressDialog->setLabel(theProgressLabel);
 
     theProgressDialog->setMaximum(11);
+    theProgressDialog->reset();
 }
 
 void MainWindow::deleteProgressDialog()
@@ -1565,20 +1569,12 @@ void MainWindow::on_editReverseAction_triggered()
     emit reverse_triggered();
 }
 
-static void changeCurrentDirToFile(const QString& s)
-{
-    QFileInfo info(s);
-    QDir::setCurrent(info.absolutePath());
-    M_PREFS->setworkingdir(QDir::currentPath());
-}
-
-
 void MainWindow::on_fileImportAction_triggered()
 {
     QStringList fileNames = QFileDialog::getOpenFileNames(
                     this,
                     tr("Import file"),
-                    "", p->FILTER_IMPORT_SUPPORTED);
+                    QString(), p->FILTER_IMPORT_SUPPORTED);
 
     if (fileNames.isEmpty())
         return;
@@ -1630,22 +1626,25 @@ void MainWindow::endBusyCursor() {
 }
 
 MainWindow::ImportStatus MainWindow::importFile(Document * mapDocument, const QString& fileName, Layer*& newLayer) {
+    MainWindow::ImportStatus result;
+
     QString baseFileName = fileName.section('/', - 1);
     if (fileName.toLower().endsWith(".gpx")) {
         QList<TrackLayer*> theTracklayers;
         newLayer = new TrackLayer( baseFileName + " - " + tr("Waypoints"), baseFileName);
         mapDocument->add(newLayer);
         theTracklayers.append((TrackLayer*) newLayer);
-        bool importOK = importGPX(this, baseFileName, mapDocument, theTracklayers);
+        bool importOK = importGPX(this, fileName, mapDocument, theTracklayers);
         if (!importOK) {
             for (int i=0; i<theTracklayers.size(); i++) {
                 mapDocument->remove(theTracklayers[i]);
-                delete theTracklayers[i];
+                SAFE_DELETE(theTracklayers[i]);
             }
+            newLayer = NULL;
         } else {
             if (!newLayer->size()) {
                 mapDocument->remove(newLayer);
-                delete newLayer;
+                SAFE_DELETE(newLayer);
             }
             for (int i=1; i<theTracklayers.size(); i++) {
                 if (theTracklayers[i]->name().isEmpty())
@@ -1655,12 +1654,12 @@ MainWindow::ImportStatus MainWindow::importFile(Document * mapDocument, const QS
                 }
             }
         }
-	return importOK ? IMPORT_OK : IMPORT_ERROR;
+	    result = importOK ? IMPORT_OK : IMPORT_ERROR;
     }
     else if (fileName.toLower().endsWith(".osm")) {
         newLayer = new DrawingLayer( baseFileName );
         mapDocument->add(newLayer);
-        return importOSM(this, baseFileName, mapDocument, newLayer) ? IMPORT_OK : IMPORT_ERROR;
+        result = importOSM(this, fileName, mapDocument, newLayer) ? IMPORT_OK : IMPORT_ERROR;
     }
 #ifndef FRISIUS_BUILD
     else if (fileName.toLower().endsWith(".osc")) {
@@ -1670,28 +1669,28 @@ MainWindow::ImportStatus MainWindow::importFile(Document * mapDocument, const QS
         } else {
             newLayer = mapDocument->getDirtyOrOriginLayer();
         }
-        return mapDocument->importOSC(fileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
+        result = mapDocument->importOSC(fileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
     }
 #endif
     else if (fileName.toLower().endsWith(".ngt")) {
         newLayer = new TrackLayer( baseFileName );
         newLayer->setUploadable(false);
         mapDocument->add(newLayer);
-        bool importOK = importNGT(this, baseFileName, mapDocument, newLayer);
+        bool importOK = importNGT(this, fileName, mapDocument, newLayer);
         if (importOK && M_PREFS->getAutoExtractTracks()) {
             ((TrackLayer *)newLayer)->extractLayer();
         }
-        return importOK ? IMPORT_OK : IMPORT_ERROR;
+        result = importOK ? IMPORT_OK : IMPORT_ERROR;
     }
     else if (fileName.toLower().endsWith(".nmea") || (fileName.toLower().endsWith(".nma"))) {
         newLayer = new TrackLayer( baseFileName );
         newLayer->setUploadable(false);
         mapDocument->add(newLayer);
-        bool importOK = mapDocument->importNMEA(baseFileName, (TrackLayer *)newLayer);
+        bool importOK = mapDocument->importNMEA(fileName, (TrackLayer *)newLayer);
         if (importOK && M_PREFS->getAutoExtractTracks()) {
             ((TrackLayer *)newLayer)->extractLayer();
         }
-        return importOK ? IMPORT_OK : IMPORT_ERROR;
+        result = importOK ? IMPORT_OK : IMPORT_ERROR;
     }
     else if (fileName.toLower().endsWith(".kml")) {
         if (QMessageBox::warning(this, MainWindow::tr("Big Fat Copyright Warning"),
@@ -1714,9 +1713,9 @@ MainWindow::ImportStatus MainWindow::importFile(Document * mapDocument, const QS
             newLayer = new DrawingLayer( baseFileName );
             newLayer->setUploadable(false);
             mapDocument->add(newLayer);
-            return mapDocument->importKML(baseFileName, (TrackLayer *)newLayer) ? IMPORT_OK : IMPORT_ERROR;
+            result = mapDocument->importKML(fileName, (TrackLayer *)newLayer) ? IMPORT_OK : IMPORT_ERROR;
         } else
-            return IMPORT_ABORTED;
+            result = IMPORT_ABORTED;
     }
     else if (fileName.toLower().endsWith(".csv")) {
 #ifndef Q_OS_SYMBIAN
@@ -1725,13 +1724,13 @@ MainWindow::ImportStatus MainWindow::importFile(Document * mapDocument, const QS
         newLayer = new DrawingLayer( baseFileName );
         newLayer->setUploadable(false);
         mapDocument->add(newLayer);
-        return mapDocument->importCSV(baseFileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
+        result = mapDocument->importCSV(fileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
     }
 #ifdef USE_PROTOBUF
     else if (fileName.toLower().endsWith(".pbf")) {
         newLayer = new DrawingLayer( baseFileName );
         mapDocument->add(newLayer);
-        return mapDocument->importPBF(baseFileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
+        result = mapDocument->importPBF(fileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
     }
 #endif
     else { // Fallback to GDAL
@@ -1739,8 +1738,18 @@ MainWindow::ImportStatus MainWindow::importFile(Document * mapDocument, const QS
         newLayer = new DrawingLayer( baseFileName );
         newLayer->setUploadable(false);
         mapDocument->add(newLayer);
-        return mapDocument->importGDAL(baseFileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
+        result = mapDocument->importGDAL(fileName, (DrawingLayer*)newLayer) ? IMPORT_OK : IMPORT_ERROR;
+        if (result == IMPORT_ERROR) {
+            SAFE_DELETE(newLayer);
+        }
     }
+
+    if (result == IMPORT_ERROR && newLayer) {
+        mapDocument->remove(newLayer);
+        SAFE_DELETE(newLayer);
+    }
+
+    return result;
 }
 
 bool MainWindow::importFiles(Document * mapDocument, const QStringList & fileNames, QStringList * importedFileNames )
@@ -1756,136 +1765,34 @@ bool MainWindow::importFiles(Document * mapDocument, const QStringList & fileNam
     while (it.hasNext())
     {
         const QString & fn = it.next();
-        changeCurrentDirToFile(fn);  // TODO: Whyyyyy?!
 
         Layer* newLayer = NULL;
-	// TODO: The passing mechanism of newLayer is evil black magic.
-	ImportStatus fileImportResult = importFile(mapDocument, fn, newLayer);
-
-	// TODO: Cleaning up after an unsuccessful import should be done
-	// in importFile.
-        if (fileImportResult != IMPORT_OK && newLayer)
-            mapDocument->remove(newLayer);
+        // TODO: The passing mechanism of newLayer is evil black magic.
+        ImportStatus fileImportResult = importFile(mapDocument, fn, newLayer);
 
-	switch (fileImportResult) {
-	    case IMPORT_OK:
+        switch (fileImportResult) {
+            case IMPORT_OK:
                 foundImport = true;
 
                 if (importedFileNames)
                     importedFileNames->append(fn);
 
                 emit content_changed();
-		break;
-	    case IMPORT_ERROR:
-                delete newLayer;
+                break;
+            case IMPORT_ERROR:
                 QMessageBox::warning(this, tr("No valid file"), tr("%1 could not be opened.").arg(fn));
-	    case IMPORT_ABORTED:
-		// noop
-		break;
+            case IMPORT_ABORTED:
+                // noop
+                break;
         }
     }
     endBusyCursor();
     deleteProgressDialog();
+    invalidateView(false);
 
     return foundImport;
 }
 
-void MainWindow::loadFiles(const QStringList & fileList)
-{
-    QStringList fileNames(fileList);
-
-#ifdef GEOIMAGE
-    QStringList images = fileList.filter(".jpg", Qt::CaseInsensitive);
-    if (!images.isEmpty()) {
-        theGeoImage->loadImages(images);
-        QString cur;
-        foreach (cur, images)
-            fileNames.removeAll(cur);
-    }
-#endif
-
-    if (fileNames.isEmpty())
-        return;
-    theLayers->setUpdatesEnabled(false);
-    view()->setUpdatesEnabled(false);
-
-        // Load only the first merkaartor document
-    bool skipImport = false;
-    QMutableStringListIterator it(fileNames);
-    while (it.hasNext())
-    {
-        const QString & fn = it.next();
-
-        if (fn.toLower().endsWith(".mdc") == false)
-            continue;
-
-        if (skipImport == false)
-        {
-            changeCurrentDirToFile(fn);
-            loadDocument(fn);
-            skipImport = true;
-        }
-
-        it.remove();
-    }
-
-    Document* newDoc = theDocument;
-    if (skipImport == false) {
-        newDoc = new Document(theLayers);
-        newDoc->addDefaultLayers();
-    }
-
-    QStringList openedFiles;
-    bool foundImport = importFiles(newDoc, fileNames, &openedFiles);
-
-    foreach (QString currentFileName, openedFiles)
-        M_PREFS->addRecentOpen(currentFileName);
-
-    updateRecentOpenMenu();
-
-    p->theProperties->setSelection(0);
-
-    if (skipImport == false)
-    {
-        if (foundImport)
-        {
-            // only imported some tracks
-            p->theFeats->invalidate();
-            delete theDocument;
-            theDocument = newDoc;
-            connect (theDocument, SIGNAL(historyChanged()), theDirty, SLOT(updateList()));
-            connect (theDocument, SIGNAL(historyChanged()), this, SIGNAL(content_changed()));
-            connect(theDocument, SIGNAL(imageRequested(ImageMapLayer*)),
-                    this, SLOT(onImagerequested(ImageMapLayer*)), Qt::QueuedConnection);
-            connect(theDocument, SIGNAL(imageReceived(ImageMapLayer*)),
-                    this, SLOT(onImagereceived(ImageMapLayer*)), Qt::QueuedConnection);
-            connect(theDocument, SIGNAL(loadingFinished(ImageMapLayer*)),
-                    this, SLOT(onLoadingfinished(ImageMapLayer*)), Qt::QueuedConnection);
-
-            theDirty->updateList();
-            theView->setDocument(theDocument);
-            on_viewZoomAllAction_triggered();
-        }
-        else
-        {
-            // we didn't really open anything successfully
-            delete newDoc;
-        }
-    } else {
-        if (foundImport) {
-            on_viewZoomAllAction_triggered();
-        }
-    }
-
-    on_editPropertiesAction_triggered();
-    theDocument->history().setActions(ui->editUndoAction, ui->editRedoAction, ui->fileUploadAction);
-
-    theLayers->setUpdatesEnabled(true);
-    view()->setUpdatesEnabled(true);
-
-    invalidateView(false);
-}
-
 void MainWindow::loadUrl(const QUrl& theUrl)
 {
     activateWindow();
@@ -1932,6 +1839,47 @@ void MainWindow::loadUrl(const QUrl& theUrl)
         properties()->setSelection(0);
         properties()->addSelection(F);
         emit content_changed();
+    } else if (theUrl.path() == "/add_node") {
+        qreal lat = theQuery.queryItemValue("lat").toDouble();
+        qreal lon = theQuery.queryItemValue("lon").toDouble();
+	QString addtagsstring=theQuery.queryItemValue("addtags");
+	Coord pos=Coord(lon,lat);
+	Node* N;
+	CommandList* theList;
+	Layer* l=document()->getDirtyOrOriginLayer();
+        N = g_backend.allocNode(g_Merk_MainWindow->document()->getDirtyOrOriginLayer(), pos);
+	N->setDirtyLevel(1);
+	QString poiName=".";
+	if (addtagsstring.size()>0) {
+	  QStringList addtags = QUrl::fromPercentEncoding(addtagsstring.toUtf8()).split("|");
+	  foreach (const QString &tag, addtags) {
+	    QStringList kv = tag.split("=");
+	    QString k=kv[0];
+	    QString v;
+	    if (kv.size()>0) {
+	      v=kv[1];
+	      if (k=="name") poiName=v;
+	    }
+	    N->setTag(k,v);
+	  }
+	}
+	theList  = new CommandList(MainWindow::tr("Remote add POI %1 %2").arg(N->id().numId).arg(poiName), N);
+	theList->add(new AddFeatureCommand(l,N,true));
+	g_Merk_MainWindow->properties()->setSelection(0);
+	N->updateMeta();		
+	document()->addHistory(theList);
+        properties()->setSelection(0);
+	properties()->addSelection(N);
+	theView->invalidate(true, true, false);
+	CoordBox cb;
+	cb = N->boundingBox();
+	if (!cb.isNull()) {
+	  CoordBox mini(cb.center()-COORD_ENLARGE, cb.center()+COORD_ENLARGE);
+	  cb.merge(mini);
+	  cb = cb.zoomed(1.1);
+	  theView->setViewport(cb, theView->rect());
+	}
+        emit content_changed();
     } else if (theUrl.path() == "/load_and_zoom") {
         qreal t = theQuery.queryItemValue("top").toDouble();
         qreal b = theQuery.queryItemValue("bottom").toDouble();
@@ -1970,7 +1918,7 @@ void MainWindow::loadUrl(const QUrl& theUrl)
             }
         }
     } else {
-        QMessageBox::critical(this, tr("Incoming Remote control request"), tr("Unknow action url: %1").arg(theUrl.toString()));
+        QMessageBox::critical(this, tr("Incoming Remote control request"), tr("Unknown action url: %1").arg(theUrl.toString()));
     }
 #undef theQuery
 }
@@ -1980,12 +1928,10 @@ void MainWindow::on_fileOpenAction_triggered()
     if (hasUnsavedChanges() && !mayDiscardUnsavedChanges(this))
         return;
 
-    QStringList fileNames = QFileDialog::getOpenFileNames(
-                    this,
-                    tr("Open files"),
-                    "", p->FILTER_OPEN_SUPPORTED);
+    QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), QString(), p->FILTER_OPEN_NATIVE );
 
-    loadFiles(fileNames);
+    if (!fileName.isNull())
+        loadDocument(fileName);
 }
 
 void MainWindow::on_fileUploadAction_triggered()
@@ -2051,28 +1997,6 @@ void MainWindow::on_fileDownloadMoreAction_triggered()
     emit content_changed();
 }
 
-void MainWindow::on_layersOpenstreetbugsAction_triggered()
-{
-    SpecialLayer* sl = NULL;
-    for (int i=0; i<theDocument->layerSize(); ++i) {
-        if (theDocument->getLayer(i)->classType() == Layer::OsmBugsLayer) {
-            sl = dynamic_cast<SpecialLayer*>(theDocument->getLayer(i));
-            while (sl->size())
-            {
-                sl->deleteFeature(sl->get(0));
-            }
-        }
-    }
-
-    createProgressDialog();
-
-    if (!::downloadOpenstreetbugs(this, theView->viewport(), theDocument, sl)) {
-        QMessageBox::warning(this, tr("Error downloading OpenStreetBugs"), tr("The OpenStreetBugs could not be downloaded"));
-    }
-
-    deleteProgressDialog();
-}
-
 void MainWindow::on_layersMapdustAction_triggered()
 {
     SpecialLayer* sl = NULL;
@@ -2384,7 +2308,7 @@ void MainWindow::on_fileNewAction_triggered()
                 this, SLOT(onLoadingfinished(ImageMapLayer*)), Qt::QueuedConnection);
         theDirty->updateList();
 
-        currentProjectFile = "";
+        currentProjectFile.clear();
         setWindowTitle(QString("%1 - %2").arg(theDocument->title()).arg(p->title));
 
         updateProjectionMenu();
@@ -2608,41 +2532,6 @@ void MainWindow::on_featureCommitAction_triggered()
     }
 }
 
-void MainWindow::on_featureOsbClose_triggered()
-{
-    Feature* bugNd = p->theProperties->selection(0);
-
-    QUrl osbUrl;
-    osbUrl.setUrl(M_PREFS->getOpenStreetBugsUrl());
-    osbUrl.setPath(osbUrl.path() + "closePOIexec");
-#ifdef QT5
-    QUrlQuery theQuery(osbUrl);
-    theQuery.addQueryItem("id", Feature::stripToOSMId(bugNd->id()));
-    osbUrl.setQuery(theQuery);
-#else
-    osbUrl.addQueryItem("id", Feature::stripToOSMId(bugNd->id()));
-#endif
-    qDebug() << osbUrl.toString();
-
-    QString rply;
-    bool ret = Utils::sendBlockingNetRequest(osbUrl, rply);
-
-    if (!ret) {
-        QMessageBox::warning(0, tr("Network timeout"), tr("Cannot contact OpenStreetBugs."), QMessageBox::Ok);
-        return;
-    }
-
-    qDebug() << "openStreetBugs reply: " << rply;
-    if (rply.contains("ok")) {
-        bugNd->layer()->deleteFeature(bugNd);
-        p->theProperties->setSelection(0);
-        invalidateView();
-    } else
-        QMessageBox::warning(this, tr("Error closing bug"), tr("Cannot delete bug. Server message is:\n%1").arg(rply), QMessageBox::Ok);
-
-    return;
-}
-
 void MainWindow::on_roadCreateJunctionAction_triggered()
 {
     CommandList* theList = new CommandList(MainWindow::tr("Create Junction"), NULL);
@@ -2929,7 +2818,7 @@ void MainWindow::on_createRelationAction_triggered()
     theList->add(
         new AddFeatureCommand(document()->getDirtyOrOriginLayer(), R, true));
     for (int i = 0; i < p->theProperties->selectionSize(); ++i)
-        theList->add(new RelationAddFeatureCommand(R, "", p->theProperties->selection(i)));
+        theList->add(new RelationAddFeatureCommand(R, QString(), p->theProperties->selection(i)));
     theDocument->addHistory(theList);
     p->theProperties->setSelection(R);
     invalidateView();
@@ -3114,7 +3003,6 @@ void MainWindow::on_toolsShortcutsAction_triggered()
     CollectActions(theActions, ui->menuLayers);
     CollectActions(theActions, ui->menuCreate);
     CollectActions(theActions, ui->menu_Feature);
-    CollectActions(theActions, ui->menuOpenStreetBugs);
     CollectActions(theActions, ui->menu_Node);
     CollectActions(theActions, ui->menuRoad);
     CollectActions(theActions, ui->menuRelation);
@@ -3139,7 +3027,7 @@ void MainWindow::toolsPreferencesAction_triggered(bool focusData)
 
 void MainWindow::preferencesChanged(PreferencesDialog* prefs)
 {
-    QString qVer = QString(qVersion()).replace(".", "");
+    QString qVer = QString(qVersion()).replace('.', QChar());
     int iQVer = qVer.toInt();
     if (iQVer < 451) {
         QApplication::setStyle(QStyleFactory::create("skulpture"));
@@ -3220,7 +3108,7 @@ void MainWindow::on_fileSaveAsTemplateAction_triggered()
 
 void MainWindow::on_fileSaveAction_triggered()
 {
-    if (currentProjectFile != "") {
+    if (!currentProjectFile.isEmpty()) {
         saveDocument(currentProjectFile);
     } else {
         on_fileSaveAsAction_triggered();
@@ -3344,6 +3232,7 @@ void MainWindow::loadDocument(QString fn)
     file.close();
 
     if (newDoc) {
+        theView->stopRendering();
         p->theProperties->setSelection(0);
         p->theFeats->invalidate();
         delete theDocument;
@@ -3363,6 +3252,7 @@ void MainWindow::loadDocument(QString fn)
         currentProjectFile = fn;
         setWindowTitle(QString("%1 - %2").arg(theDocument->title()).arg(p->title));
         p->latSaveDirtyLevel = theDocument->getDirtySize();
+        theView->resumeRendering();
     }
 
     M_PREFS->addRecentOpen(fn);
@@ -3894,8 +3784,8 @@ void MainWindow::recentOpenTriggered(QAction* anAction)
     if (hasUnsavedChanges() && !mayDiscardUnsavedChanges(this))
         return;
 
-    QStringList fileNames(anAction->text());
-    loadFiles(fileNames);
+    QString fileName(anAction->text());
+    loadDocument(fileName);
 }
 
 void MainWindow::recentImportTriggered(QAction* anAction)
@@ -4223,9 +4113,6 @@ void MainWindow::on_toolTemplatesLoadAction_triggered()
     p->theProperties->resetValues();
 }
 
-QString MainWindow::translationsPath() {
-    return QCoreApplication::applicationDirPath() + "/translations";
-}
 
 #if defined(Q_OS_MAC)
 QString MainWindow::macOsTranslationsPath() {
@@ -4236,48 +4123,41 @@ QString MainWindow::macOsTranslationsPath() {
 }
 #endif
 
-bool MainWindow::tryLoadQtTranslator(const QString& languagePrefix)
-{
-    if (g_Merk_Portable) {
-        return qtTranslator->load("qt_" + languagePrefix, translationsPath());
-    } else {
-#ifdef TRANSDIR_SYSTEM
-        if (!QDir::isAbsolutePath(STRINGIFY(TRANSDIR_SYSTEM)))
-            return qtTranslator->load("qt_" + languagePrefix, QCoreApplication::applicationDirPath() + "/" + STRINGIFY(TRANSDIR_SYSTEM));
-        else
-            return qtTranslator->load("qt_" + languagePrefix, STRINGIFY(TRANSDIR_SYSTEM));
-#else
-#if defined(Q_OS_MAC)
-        return qtTranslator->load("qt_" + languagePrefix, macOsTranslationsPath());
-#else
-        return qtTranslator->load("qt_" + languagePrefix, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-#endif // Q_OS_MAC
-#endif // TRANSDIR_SYSTEM
-    }
+QString MainWindow::makeAbsolute(const QString& path) {
+    if (QDir::isAbsolutePath(path))
+        return path;
+    else
+        return QCoreApplication::applicationDirPath() + "/" + path;
 }
 
-bool MainWindow::tryLoadMerkaartorTranslator(const QString& language)
-{
-    if (g_Merk_Portable) {
-        return merkaartorTranslator->load("merkaartor_" + language, translationsPath());
-    } else {
-	bool success;
+/* Compose the list of translation paths. */
+QStringList MainWindow::translationPaths() {
+    QStringList paths;
+    /* Try the macros first, as they are defined by the user. */
+    paths << makeAbsolute(STRINGIFY(TRANSDIR_SYSTEM));
+    paths << makeAbsolute(STRINGIFY(TRANSDIR_MERKAARTOR));
+    paths << QCoreApplication::applicationDirPath();
+    paths << QCoreApplication::applicationDirPath() + "/translations";
 #if defined(Q_OS_MAC)
-        success = merkaartorTranslator->load("merkaartor_" + language, macOsTranslationsPath());
-#else
-        success = merkaartorTranslator->load("merkaartor_" + language, QCoreApplication::applicationDirPath());
+    paths << macOsTranslationsPath();
 #endif
-#ifdef TRANSDIR_MERKAARTOR
-        if (!success) {
-            // Next, try the TRANSDIR_MERKAARTOR, if defined
-            if (!QDir::isAbsolutePath(STRINGIFY(TRANSDIR_MERKAARTOR)))
-                return merkaartorTranslator->load("merkaartor_" + language, QCoreApplication::applicationDirPath() + "/" + STRINGIFY(TRANSDIR_MERKAARTOR));
-            else
-                return merkaartorTranslator->load("merkaartor_" + language, STRINGIFY(TRANSDIR_MERKAARTOR));
+    paths << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    return paths;
+}
+
+bool MainWindow::tryLoadTranslator(const QString& languageFile, QTranslator* theTranslator)
+{
+    qDebug() << "Looking for translations file: " << languageFile;
+    QStringList paths = translationPaths();
+    foreach (const QString &path, paths) {
+        qDebug() << "  Trying directory " << path;
+        if (theTranslator->load(languageFile, path)) {
+            qDebug() << "  Found it.";
+            return true;
         }
-#endif
-	return success;
     }
+    qDebug() << "  Not found.";
+    return false;
 }
 
 void MainWindow::updateLanguage()
@@ -4292,12 +4172,12 @@ void MainWindow::updateLanguage()
     if (language != "-" && language != "en") {
         qtTranslator = new QTranslator;
         const QString languagePrefix = language.left(2);
-        if (tryLoadQtTranslator(languagePrefix))
+        if (tryLoadTranslator("qt_"+languagePrefix, qtTranslator))
             QCoreApplication::installTranslator(qtTranslator);
 
         // Do not prevent Merkaartor translations to be loaded, even if there is no Qt translation for the language.
         merkaartorTranslator = new QTranslator;
-        if (tryLoadMerkaartorTranslator(language))
+        if (tryLoadTranslator("merkaartor_"+language, merkaartorTranslator))
             QCoreApplication::installTranslator(merkaartorTranslator);
         else
             statusBar()->showMessage(tr("Warning! Could not load the Merkaartor translations for the \"%1\" language. Switching to default English.").arg(language), 15000);
diff --git a/src/MainWindow.h b/src/MainWindow.h
index c7200c4..7399211 100644
--- a/src/MainWindow.h
+++ b/src/MainWindow.h
@@ -77,7 +77,6 @@ public slots:
     virtual void on_layersNewImageAction_triggered();
     virtual void on_layersNewDrawingAction_triggered();
     virtual void on_layersNewFilterAction_triggered();
-    virtual void on_layersOpenstreetbugsAction_triggered();
     virtual void on_layersMapdustAction_triggered();
 
     virtual void on_fileNewAction_triggered();
@@ -139,7 +138,6 @@ public slots:
     virtual void on_featureDownloadMissingChildrenAction_triggered();
     virtual void on_featureDeleteAction_triggered();
     virtual void on_featureCommitAction_triggered();
-    virtual void on_featureOsbClose_triggered();
 
     virtual void on_nodeAlignAction_triggered();
     virtual void on_nodeSpreadAction_triggered();
@@ -259,7 +257,6 @@ public slots:
 
 public:
     bool importFiles(Document * mapDocument, const QStringList & filesNames, QStringList * importedFileNames = NULL);
-    void loadFiles(const QStringList & fileNames);
     void loadUrl(const QUrl& u);
     void loadDocument(QString fn);
     void loadTemplateDocument(QString fn);
@@ -322,13 +319,13 @@ private:
     Document* doLoadDocument(QFile* file);
     void doSaveDocument(QFile* fn, bool asTemplate=false);
 
-    QString translationsPath();
+    QString makeAbsolute(const QString& path);
+    QStringList translationPaths();
 #if defined(Q_OS_MAC)
     QString macOsTranslationsPath();
 #endif
 
-    bool tryLoadQtTranslator(const QString& languagePrefix);
-    bool tryLoadMerkaartorTranslator(const QString& defaultLanguage);
+    bool tryLoadTranslator(const QString& languageFile, QTranslator* theTranslator);
 
     void dieClipboardInvalid();
     void warnMapDownloadFailed();
diff --git a/src/MainWindow.ui b/src/MainWindow.ui
index 32e97ea..66ec72a 100644
--- a/src/MainWindow.ui
+++ b/src/MainWindow.ui
@@ -245,12 +245,6 @@
     <property name="title">
      <string>Fea&ture</string>
     </property>
-    <widget class="QMenu" name="menuOpenStreetBugs">
-     <property name="title">
-      <string>OpenStreetBugs</string>
-     </property>
-     <addaction name="featureOsbClose"/>
-    </widget>
     <addaction name="featureSelectChildrenAction"/>
     <addaction name="featureSelectParentsAction"/>
     <addaction name="separator"/>
@@ -258,8 +252,6 @@
     <addaction name="featureCommitAction"/>
     <addaction name="separator"/>
     <addaction name="featureDownloadMissingChildrenAction"/>
-    <addaction name="separator"/>
-    <addaction name="menuOpenStreetBugs"/>
    </widget>
    <widget class="QMenu" name="menuLayers">
     <property name="title">
@@ -268,7 +260,6 @@
     <addaction name="layersNewImageAction"/>
     <addaction name="layersNewDrawingAction"/>
     <addaction name="layersNewFilterAction"/>
-    <addaction name="layersOpenstreetbugsAction"/>
     <addaction name="layersMapdustAction"/>
     <addaction name="separator"/>
    </widget>
@@ -395,6 +386,9 @@
    <property name="text">
     <string>&Quit</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
    <property name="menuRole">
     <enum>QAction::QuitRole</enum>
    </property>
@@ -403,6 +397,9 @@
    <property name="text">
     <string>&About</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
    <property name="menuRole">
     <enum>QAction::AboutRole</enum>
    </property>
@@ -419,7 +416,7 @@
     <string>Create a new document and import a file</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+O</string>
+    <string notr="true">Ctrl+O</string>
    </property>
   </action>
   <action name="viewZoomAllAction">
@@ -431,7 +428,7 @@
     <string>Zoom &all</string>
    </property>
    <property name="shortcut">
-    <string>F2</string>
+    <string notr="true">F2</string>
    </property>
   </action>
   <action name="viewZoomWindowAction">
@@ -445,7 +442,7 @@
     <string>Zoom window</string>
    </property>
    <property name="shortcut">
-    <string>F3</string>
+    <string notr="true">F3</string>
    </property>
   </action>
   <action name="viewZoomOutAction">
@@ -457,7 +454,7 @@
     <string>Zoom &out</string>
    </property>
    <property name="shortcut">
-    <string>-</string>
+    <string notr="true">-</string>
    </property>
   </action>
   <action name="viewZoomInAction">
@@ -475,7 +472,7 @@
     <string>Zoom in</string>
    </property>
    <property name="shortcut">
-    <string>+</string>
+    <string notr="true">+</string>
    </property>
   </action>
   <action name="createWayAction">
@@ -501,7 +498,7 @@
     <string>&Undo</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Z</string>
+    <string notr="true">Ctrl+Z</string>
    </property>
   </action>
   <action name="editRedoAction">
@@ -513,7 +510,7 @@
     <string>&Redo</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Y</string>
+    <string notr="true">Ctrl+Y</string>
    </property>
   </action>
   <action name="editMoveAction">
@@ -528,7 +525,7 @@
     <string>&Move</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+M</string>
+    <string notr="true">Ctrl+M</string>
    </property>
   </action>
   <action name="fileImportAction">
@@ -542,6 +539,9 @@
    <property name="statusTip">
     <string>Import a file into the current document</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="fileDownloadAction">
    <property name="icon">
@@ -555,7 +555,7 @@
     <string>Download map data for a new area</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+D</string>
+    <string notr="true">Ctrl+D</string>
    </property>
   </action>
   <action name="createLinearWayAction">
@@ -584,7 +584,7 @@
     <string>&Select</string>
    </property>
    <property name="shortcut">
-    <string>Esc</string>
+    <string notr="true">Esc</string>
    </property>
   </action>
   <action name="fileUploadAction">
@@ -599,7 +599,7 @@
     <string>Upload changes to the server</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+U</string>
+    <string notr="true">Ctrl+U</string>
    </property>
   </action>
   <action name="editRemoveAction">
@@ -617,7 +617,7 @@
     <string>Remove selected features</string>
    </property>
    <property name="shortcut">
-    <string>Del</string>
+    <string notr="true">Del</string>
    </property>
   </action>
   <action name="createRoadAction">
@@ -635,7 +635,7 @@
     <string>Create new road</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+R</string>
+    <string notr="true">Ctrl+R</string>
    </property>
   </action>
   <action name="createNodeAction">
@@ -653,7 +653,7 @@
     <string>Create new node</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+N</string>
+    <string notr="true">Ctrl+N</string>
    </property>
   </action>
   <action name="editReverseAction">
@@ -670,6 +670,9 @@
    <property name="toolTip">
     <string>Reverse road direction</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewGotoAction">
    <property name="icon">
@@ -680,7 +683,7 @@
     <string>&Go To...</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+G</string>
+    <string notr="true">Ctrl+G</string>
    </property>
   </action>
   <action name="createDoubleWayAction">
@@ -690,6 +693,9 @@
    <property name="toolTip">
     <string>Create Double carriage way</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="createRoundaboutAction">
    <property name="text">
@@ -698,6 +704,9 @@
    <property name="toolTip">
     <string>Create Roundabout</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
    <property name="menuRole">
     <enum>QAction::NoRole</enum>
    </property>
@@ -713,6 +722,9 @@
    <property name="statusTip">
     <string>Create a new document</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="roadSplitAction">
    <property name="icon">
@@ -726,7 +738,7 @@
     <string>Split road into separate (connected) roads</string>
    </property>
    <property name="shortcut">
-    <string>Alt+S</string>
+    <string notr="true">Alt+S</string>
    </property>
   </action>
   <action name="roadJoinAction">
@@ -741,7 +753,7 @@
     <string>Join connected roads to a single road</string>
    </property>
    <property name="shortcut">
-    <string>Alt+J</string>
+    <string notr="true">Alt+J</string>
    </property>
   </action>
   <action name="roadBreakAction">
@@ -759,7 +771,7 @@
     <string>Break apart connected roads</string>
    </property>
    <property name="shortcut">
-    <string>Alt+B</string>
+    <string notr="true">Alt+B</string>
    </property>
   </action>
   <action name="createRelationAction">
@@ -769,6 +781,9 @@
    <property name="toolTip">
     <string>Create Relation</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="createAreaAction">
    <property name="checkable">
@@ -784,21 +799,33 @@
    <property name="toolTip">
     <string>Create new area</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="editMapStyleAction">
    <property name="text">
     <string>&Edit...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="mapStyleSaveAsAction">
    <property name="text">
     <string>Save &As...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="mapStyleLoadAction">
    <property name="text">
     <string>&Load...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="createCurvedRoadAction">
    <property name="text">
@@ -813,6 +840,9 @@
    <property name="text">
     <string>&Preferences...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
    <property name="menuRole">
     <enum>QAction::PreferencesRole</enum>
    </property>
@@ -847,6 +877,9 @@
    <property name="statusTip">
     <string>Find and select items</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="exportOSMViewportAction">
    <property name="text">
@@ -868,11 +901,17 @@
    <property name="text">
     <string>&Add...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="bookmarkRemoveAction">
    <property name="text">
     <string>&Remove...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="nodeMergeAction">
    <property name="text">
@@ -885,13 +924,16 @@
     <string>Merge the selected nodes (first selected will remain)</string>
    </property>
    <property name="shortcut">
-    <string>Alt+M</string>
+    <string notr="true">Alt+M</string>
    </property>
   </action>
   <action name="fileSaveAsAction">
    <property name="text">
     <string>Save &As...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="fileSaveAction">
    <property name="icon">
@@ -905,7 +947,7 @@
     <string>Save to file</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+S</string>
+    <string notr="true">Ctrl+S</string>
    </property>
   </action>
   <action name="fileDownloadMoreAction">
@@ -926,7 +968,7 @@
     <string>Download the current view to the previous download layer</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Shift+D</string>
+    <string notr="true">Ctrl+Shift+D</string>
    </property>
   </action>
   <action name="action_Docks">
@@ -948,7 +990,7 @@
     <string>Hide/Show the Properties dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+P</string>
+    <string notr="true">Ctrl+P</string>
    </property>
   </action>
   <action name="windowLayersAction">
@@ -965,7 +1007,7 @@
     <string>Hide/Show the Layers dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+L</string>
+    <string notr="true">Ctrl+L</string>
    </property>
   </action>
   <action name="windowInfoAction">
@@ -982,7 +1024,7 @@
     <string>Hide/Show the Info dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+I</string>
+    <string notr="true">Ctrl+I</string>
    </property>
   </action>
   <action name="nodeAlignAction">
@@ -1000,7 +1042,7 @@
     <string>Align selected nodes. First two selected give the line.</string>
    </property>
    <property name="shortcut">
-    <string>Alt+A</string>
+    <string notr="true">Alt+A</string>
    </property>
   </action>
   <action name="nodeSpreadAction">
@@ -1017,6 +1059,9 @@
    <property name="statusTip">
     <string>Align and spread selected nodes equally.</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="windowDirtyAction">
    <property name="checkable">
@@ -1032,7 +1077,7 @@
     <string>Hide/Show the Undo dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+T</string>
+    <string notr="true">Ctrl+T</string>
    </property>
   </action>
   <action name="viewDownloadedAction">
@@ -1043,7 +1088,7 @@
     <string>Show &downloaded areas</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+A</string>
+    <string notr="true">Ctrl+Alt+A</string>
    </property>
   </action>
   <action name="editCopyAction">
@@ -1061,7 +1106,7 @@
     <string>Copy the selected feature's tags to the clipboard; if the feature is a trackpoint, copy the coordinates, too.</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+C</string>
+    <string notr="true">Ctrl+C</string>
    </property>
   </action>
   <action name="editPasteOverwriteAction">
@@ -1072,7 +1117,7 @@
     <string>Paste (and overwrite) the tags in the clipboard to the selected feature.</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+V, O</string>
+    <string notr="true">Ctrl+V, O</string>
    </property>
   </action>
   <action name="editPasteMergeAction">
@@ -1093,7 +1138,7 @@
     <string>Merge the tags in the clipboard with the ones of the selected feature.</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+V, M</string>
+    <string notr="true">Ctrl+V, M</string>
    </property>
   </action>
   <action name="exportOSMSelectedAction">
@@ -1124,13 +1169,16 @@
     <string>Paste the features in the clipboard; If the features'id are already in the document, overwrite them.</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+V, F</string>
+    <string notr="true">Ctrl+V, F</string>
    </property>
   </action>
   <action name="exportOSMAction">
    <property name="text">
     <string>OSM (XML)</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="exportOSMBinAction">
    <property name="text">
@@ -1150,16 +1198,25 @@
    <property name="whatsThis">
     <string>Commit the selected feature from a non-uploadable layer (e.g.Track or Extract) to the dirty layer, ready for upload</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="exportGPXAction">
    <property name="text">
     <string>GPX</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="exportKMLAction">
    <property name="text">
     <string>KML</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="windowToolbarAction">
    <property name="text">
@@ -1171,13 +1228,16 @@
    <property name="statusTip">
     <string>Hide/Show the Toolbar</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="windowHideAllAction">
    <property name="text">
     <string>Hide All</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+F</string>
+    <string notr="true">Ctrl+F</string>
    </property>
   </action>
   <action name="windowShowAllAction">
@@ -1185,7 +1245,7 @@
     <string>Show All</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+F</string>
+    <string notr="true">Ctrl+F</string>
    </property>
    <property name="visible">
     <bool>false</bool>
@@ -1209,7 +1269,7 @@
     <string>Show &nodes</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+P</string>
+    <string notr="true">Ctrl+Alt+P</string>
    </property>
   </action>
   <action name="viewNamesAction">
@@ -1220,7 +1280,7 @@
     <string>Show na&mes</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+N</string>
+    <string notr="true">Ctrl+Alt+N</string>
    </property>
   </action>
   <action name="gpsConnectAction">
@@ -1230,6 +1290,9 @@
    <property name="toolTip">
     <string>Start GPS</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="gpsReplayAction">
    <property name="text">
@@ -1238,6 +1301,9 @@
    <property name="toolTip">
     <string>Replay GPS</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="windowGPSAction">
    <property name="checkable">
@@ -1253,7 +1319,7 @@
     <string>Hide/Show the GPS dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+W</string>
+    <string notr="true">Ctrl+W</string>
    </property>
   </action>
   <action name="gpsDisconnectAction">
@@ -1266,6 +1332,9 @@
    <property name="toolTip">
     <string>Stop GPS</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="gpsCenterAction">
    <property name="checkable">
@@ -1274,6 +1343,9 @@
    <property name="text">
     <string>&Center on GPS</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewTrackSegmentsAction">
    <property name="checkable">
@@ -1283,7 +1355,7 @@
     <string>Show track &segments</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+T</string>
+    <string notr="true">Ctrl+Alt+T</string>
    </property>
   </action>
   <action name="viewScaleAction">
@@ -1294,7 +1366,7 @@
     <string>Show &scale</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+S</string>
+    <string notr="true">Ctrl+Alt+S</string>
    </property>
   </action>
   <action name="viewRelationsAction">
@@ -1305,7 +1377,7 @@
     <string>Show &relations</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+R</string>
+    <string notr="true">Ctrl+Alt+R</string>
    </property>
   </action>
   <action name="viewStyleForegroundAction">
@@ -1315,6 +1387,9 @@
    <property name="text">
     <string>Show roads background</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewStyleBackgroundAction">
    <property name="checkable">
@@ -1323,6 +1398,9 @@
    <property name="text">
     <string>Show roads boundary</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewStyleTouchupAction">
    <property name="checkable">
@@ -1331,6 +1409,9 @@
    <property name="text">
     <string>Show touchup</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="gpsRecordAction">
    <property name="checkable">
@@ -1348,6 +1429,9 @@
    <property name="toolTip">
     <string>Record GPS</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="gpsPauseAction">
    <property name="checkable">
@@ -1362,6 +1446,9 @@
    <property name="toolTip">
     <string>Pause GPS</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="windowGeoimageAction">
    <property name="checkable">
@@ -1377,13 +1464,16 @@
     <string>Hide/Show the GeoImage dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+E</string>
+    <string notr="true">Ctrl+E</string>
    </property>
   </action>
   <action name="toolsWorldOsbAction">
    <property name="text">
     <string>World OSB manager...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
    <property name="visible">
     <bool>false</bool>
    </property>
@@ -1392,31 +1482,49 @@
    <property name="text">
     <string>&Shortcut Editor...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolTemplatesLoadAction">
    <property name="text">
     <string>&Load...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolTemplatesMergeAction">
    <property name="text">
     <string>&Merge...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolTemplatesSaveAction">
    <property name="text">
     <string>&Save...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="relationAddMemberAction">
    <property name="text">
     <string>&Add member</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="relationRemoveMemberAction">
    <property name="text">
     <string>&Remove member</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewArrowsNeverAction">
    <property name="checkable">
@@ -1425,6 +1533,9 @@
    <property name="text">
     <string>&Never</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewArrowsOnewayAction">
    <property name="checkable">
@@ -1433,6 +1544,9 @@
    <property name="text">
     <string>for &Oneway roads</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewArrowsAlwaysAction">
    <property name="checkable">
@@ -1441,6 +1555,9 @@
    <property name="text">
     <string>&Always</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="nodeDetachAction">
    <property name="icon">
@@ -1456,6 +1573,9 @@
    <property name="statusTip">
     <string>Detach a node from a Road</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="fileWorkOfflineAction">
    <property name="checkable">
@@ -1468,6 +1588,9 @@
    <property name="text">
     <string>&Work Offline</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="renderSVGAction">
    <property name="text">
@@ -1488,23 +1611,32 @@
     <string>Hide/Show the Styles dock</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+B</string>
+    <string notr="true">Ctrl+B</string>
    </property>
   </action>
   <action name="toolsWMSServersAction">
    <property name="text">
     <string>&WMS Servers Editor...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolsTMSServersAction">
    <property name="text">
     <string>&TMS Servers Editor...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolsResetDiscardableAction">
    <property name="text">
     <string>&Reset Discardable dialogs status</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="gpsPopupAction">
    <property name="icon">
@@ -1528,6 +1660,9 @@
    <property name="text">
     <string>Create &Junction</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="editRotateAction">
    <property name="checkable">
@@ -1541,23 +1676,32 @@
     <string>Rotate</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+A</string>
+    <string notr="true">Ctrl+A</string>
    </property>
   </action>
   <action name="createPolygonAction">
    <property name="text">
     <string>&Polygon</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="createRectangleAction">
    <property name="text">
     <string>Rectangular &building</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="layersNewImageAction">
    <property name="text">
     <string>Add new &Image layer</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="windowFeatsAction">
    <property name="checkable">
@@ -1566,11 +1710,17 @@
    <property name="text">
     <string>Features</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="roadAddStreetNumbersAction">
    <property name="text">
     <string>Add street &numbers (Karlsruhe scheme)</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="roadSubdivideAction">
    <property name="icon">
@@ -1586,6 +1736,9 @@
    <property name="statusTip">
     <string>Subdivide a selected way segment (the way and two adjacent nodes) into segments of equal length.</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewVirtualNodesAction">
    <property name="checkable">
@@ -1594,6 +1747,9 @@
    <property name="text">
     <string>Show &virtual nodes</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewShowLatLonGridAction">
    <property name="checkable">
@@ -1602,6 +1758,9 @@
    <property name="text">
     <string>Show lat/lon &grid</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewLockZoomAction">
    <property name="checkable">
@@ -1610,11 +1769,17 @@
    <property name="text">
     <string>&Lock zoom to tiled background</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolsProjectionsAction">
    <property name="text">
     <string>&Projections Editor...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewPhotosAction">
    <property name="checkable">
@@ -1623,16 +1788,25 @@
    <property name="text">
     <string>Show &Photos on map</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="exportOSCAction">
    <property name="text">
     <string>OsmChange (OSC)</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="featureDeleteAction">
    <property name="text">
     <string>Force Delete</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="layersOpenstreetbugsAction">
    <property name="text">
@@ -1654,11 +1828,17 @@
    <property name="statusTip">
     <string>Simplify way by removing unnecessary child nodes</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolsFiltersAction">
    <property name="text">
     <string>&Filters Editor...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="filterNoneAction">
    <property name="checkable">
@@ -1682,6 +1862,9 @@
    <property name="statusTip">
     <string>Join areas which are touching.</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="areaSplitAction">
    <property name="icon">
@@ -1697,6 +1880,9 @@
    <property name="statusTip">
     <string>Split a selected area between two selected nodes into two separate areas.</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="areaTerraceAction">
    <property name="icon">
@@ -1712,11 +1898,17 @@
    <property name="statusTip">
     <string>Split a selected area into terraced residences.</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolsToolbarsAction">
    <property name="text">
     <string>Toolbar Editor...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="roadAxisAlignAction">
    <property name="icon">
@@ -1732,11 +1924,17 @@
    <property name="statusTip">
     <string>Align edges to a certain number of regularly spaced axes.</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="filePrintAction">
    <property name="text">
     <string>&Print...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="filePrintPreviewAction">
    <property name="text">
@@ -1747,6 +1945,9 @@
    <property name="text">
     <string>Properties...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewDirtyAction">
    <property name="checkable">
@@ -1755,11 +1956,17 @@
    <property name="text">
     <string>Highlight dirt&y features</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="layersNewDrawingAction">
    <property name="text">
     <string>Add new &Drawing layer</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="editCutAction">
    <property name="icon">
@@ -1770,13 +1977,16 @@
     <string>Cu&t</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+X</string>
+    <string notr="true">Ctrl+X</string>
    </property>
   </action>
   <action name="layersNewFilterAction">
    <property name="text">
     <string>Add new &Filter layer</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="roadExtrudeAction">
    <property name="checkable">
@@ -1789,7 +1999,7 @@
     <string>Extrude interaction for ways (JOSM style)</string>
    </property>
    <property name="shortcut">
-    <string>Alt+X</string>
+    <string notr="true">Alt+X</string>
    </property>
   </action>
   <action name="featureSelectAction">
@@ -1801,6 +2011,9 @@
    <property name="text">
     <string>Include children in selection</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="editScaleAction">
    <property name="checkable">
@@ -1813,11 +2026,17 @@
    <property name="text">
     <string>Scale</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="fileSaveAsTemplateAction">
    <property name="text">
     <string>Save as Template Document...</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="actionCreate_Multipolygon">
    <property name="text">
@@ -1828,31 +2047,49 @@
    <property name="text">
     <string>Add to Multi&polygon</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="mapStyleSaveAction">
    <property name="text">
     <string>&Save</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="exportGDALAction">
    <property name="text">
     <string>GDAL SQLite/SpatiLite</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="roadBingExtractAction">
    <property name="text">
     <string>Bing Road Detector</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="toolsRebuildHistoryAction">
    <property name="text">
     <string>Rebuild &History</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="layersMapdustAction">
    <property name="text">
     <string>Add Map&Dust layer</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="viewWireframeAction">
    <property name="checkable">
@@ -1862,18 +2099,24 @@
     <string>Wireframe</string>
    </property>
    <property name="shortcut">
-    <string>Ctrl+Alt+W</string>
+    <string notr="true">Ctrl+Alt+W</string>
    </property>
   </action>
   <action name="featureSelectParentsAction">
    <property name="text">
     <string>Select parent(s)</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="featureDownloadMissingChildrenAction">
    <property name="text">
     <string>Download missing children</string>
    </property>
+   <property name="shortcut">
+    <string notr="true"/>
+   </property>
   </action>
   <action name="markBridgeAction">
    <property name="checkable">
diff --git a/src/PaintStyle/FeaturePainter.cpp b/src/PaintStyle/FeaturePainter.cpp
index 54e46c1..9fb2918 100644
--- a/src/PaintStyle/FeaturePainter.cpp
+++ b/src/PaintStyle/FeaturePainter.cpp
@@ -607,7 +607,7 @@ void FeaturePainter::drawPointLabel(QPointF C, QString str, QString strBg, QPain
 
     if (!str.isEmpty()) {
         modX = - (metrics.width(str)/2);
-        if (DrawIcon && (IconName != "") )
+        if (DrawIcon && !IconName.isEmpty() )
         {
             QImage pm(IconName);
             modY = - pm.height();
@@ -619,7 +619,7 @@ void FeaturePainter::drawPointLabel(QPointF C, QString str, QString strBg, QPain
     }
     if (DrawLabelBackground && !strBg.isEmpty()) {
         modX = - (metrics.width(strBg)/2);
-        if (DrawIcon && (IconName != "") )
+        if (DrawIcon && !IconName.isEmpty() )
         {
             QImage pm(IconName);
             modY = - pm.height();
@@ -656,8 +656,8 @@ void FeaturePainter::drawLabel(Node* Pt, QPainter* thePainter, MapRenderer* theR
     if (!DrawLabel)
         return;
 
-    QString str = Pt->tagValue(getLabelTag(), "");
-    QString strBg = Pt->tagValue(getLabelBackgroundTag(), "");
+    QString str = Pt->tagValue(getLabelTag(), QString());
+    QString strBg = Pt->tagValue(getLabelBackgroundTag(), QString());
 
     if (str.isEmpty() && strBg.isEmpty())
         return;
@@ -671,8 +671,8 @@ void FeaturePainter::drawLabel(Way* R, QPainter* thePainter, MapRenderer* theRen
     if (!DrawLabel)
         return;
 
-    QString str = R->tagValue(getLabelTag(), "");
-    QString strBg = R->tagValue(getLabelBackgroundTag(), "");
+    QString str = R->tagValue(getLabelTag(), QString());
+    QString strBg = R->tagValue(getLabelBackgroundTag(), QString());
     if (str.isEmpty() && strBg.isEmpty())
         return;
 
diff --git a/src/PaintStyle/Painter.cpp b/src/PaintStyle/Painter.cpp
index f102cd9..20d10d0 100644
--- a/src/PaintStyle/Painter.cpp
+++ b/src/PaintStyle/Painter.cpp
@@ -270,7 +270,7 @@ Painter Painter::fromXML(const QDomElement& e, QString filename)
             QDomElement t = n.toElement();
             if (t.tagName() == "selector")
             {
-                if (t.attribute("key") != "")
+                if (!t.attribute("key").isEmpty())
                     Pairs.push_back(qMakePair(t.attribute("key"),t.attribute("value")));
                 else
                 {
diff --git a/src/PaintStyle/PrimitivePainter.cpp b/src/PaintStyle/PrimitivePainter.cpp
index f1940e3..7a82c92 100644
--- a/src/PaintStyle/PrimitivePainter.cpp
+++ b/src/PaintStyle/PrimitivePainter.cpp
@@ -338,7 +338,7 @@ void PrimitivePainter::drawPointLabel(QPointF C, QString str, QString strBg, QPa
 
     if (!str.isEmpty()) {
         modX = - (metrics.width(str)/2);
-        if (DrawIcon && (IconName != "") )
+        if (DrawIcon && !IconName.isEmpty() )
         {
             QImage pm(IconName);
             modY = - pm.height();
@@ -350,7 +350,7 @@ void PrimitivePainter::drawPointLabel(QPointF C, QString str, QString strBg, QPa
     }
     if (DrawLabelBackground && !strBg.isEmpty()) {
         modX = - (metrics.width(strBg)/2);
-        if (DrawIcon && (IconName != "") )
+        if (DrawIcon && !IconName.isEmpty() )
         {
             QImage pm(IconName);
             modY = - pm.height();
diff --git a/src/Preferences/BookmarksList.cpp b/src/Preferences/BookmarksList.cpp
index 6093cb6..2840ef5 100644
--- a/src/Preferences/BookmarksList.cpp
+++ b/src/Preferences/BookmarksList.cpp
@@ -23,7 +23,7 @@ Bookmark::Bookmark()
 Bookmark::Bookmark(QString aName, CoordBox aCoord, bool Deleted)
     : Name(aName), Coordinates(aCoord), deleted(Deleted)
 {
-    if (Name == "") {
+    if (Name.isEmpty()) {
         Name = QApplication::translate("MerkaartorPreferences","New Bookmark");
     }
 }
diff --git a/src/Preferences/MerkaartorPreferences.cpp b/src/Preferences/MerkaartorPreferences.cpp
index 8d9570b..3556448 100644
--- a/src/Preferences/MerkaartorPreferences.cpp
+++ b/src/Preferences/MerkaartorPreferences.cpp
@@ -179,7 +179,7 @@
             if (g_Merk_Ignore_Preferences || g_Merk_Reset_Preferences) \
                 m_##Param = Default; \
             else { \
-                QString sColor = Sets->value(#Category"/"#Param, "").toString(); \
+                QString sColor = Sets->value(#Category"/"#Param, QString()).toString(); \
                 if (sColor.isEmpty() || !QColor(sColor).isValid()) \
                     m_##Param = Default; \
                 else \
@@ -216,7 +216,6 @@ Tool::Tool(QString Name, QString Path)
 }
 
 Tool::Tool()
-    : ToolName(""), ToolPath("")
 {
 }
 
@@ -278,7 +277,7 @@ MerkaartorPreferences::~MerkaartorPreferences()
 
 void MerkaartorPreferences::save(bool UserPwdChanged)
 {
-    if (g_Merk_Ignore_Preferences)
+    if (g_Merk_Ignore_Preferences || !saveOnline)
         return;
 
     Sets->setValue("version/version", QString("%1").arg(STRINGIFY(VERSION)));
@@ -295,13 +294,12 @@ void MerkaartorPreferences::save(bool UserPwdChanged)
     saveTagListFirstColumnWidth();
     Sets->sync();
 
-    // TODO: There is either some misnaming here or a bug. Why would settings
-    // be pulled from OSM only if the password changed, and pushed to OSM
-    // only otherwise?
+    /* If OSM login info has been changed, it might be a good idea to load new
+     * preferences from that user account. */
     if (UserPwdChanged)
         fromOsmPref();
-    else
-        toOsmPref();
+
+    toOsmPref();
 }
 
 void MerkaartorPreferences::toOsmPref()
@@ -387,6 +385,7 @@ void MerkaartorPreferences::on_authenticationRequired( QNetworkReply *reply, QAu
 }
 
 void MerkaartorPreferences::on_sslErrors(QNetworkReply *reply, const QList<QSslError>& errors) {
+    Q_UNUSED(reply);
     qDebug() << "We stumbled upon some SSL errors: ";
     foreach ( QSslError error, errors ) {
         qDebug() << "1:";
@@ -398,8 +397,13 @@ void MerkaartorPreferences::on_requestFinished ( QNetworkReply *reply )
 {
     int error = reply->error();
     if (error != QNetworkReply::NoError) {
-        qDebug() << "Received response with code " << error << "(" << reply->errorString() << ")";
+        //qDebug() << "Received response with code " << error << "(" << reply->errorString() << ")";
         switch (error) {
+            case QNetworkReply::HostNotFoundError:
+                qWarning() << "MerkaartorPreferences: Host not found, preferences won't be synchronized with your profile.";
+                /* We don't want to save local changes online, and possibly corrupt the store */
+                saveOnline = false;
+                break;
             case 406:
                 QMessageBox::critical(NULL,QApplication::translate("MerkaartorPreferences","Preferences upload failed"), QApplication::translate("MerkaartorPreferences","Duplicate key"));
                 return;
@@ -410,14 +414,12 @@ void MerkaartorPreferences::on_requestFinished ( QNetworkReply *reply )
                 QMessageBox::critical(NULL,QApplication::translate("MerkaartorPreferences","Preferences communication failed"), QApplication::translate("MerkaartorPreferences", "Communication error")+":\n"+reply->errorString());
                 return;
         }
-    } else {
-        qDebug() << "Received response.";
     }
 
     if (reply != OsmPrefLoadReply)
         return;
 
-    qDebug() << "Reading preferences.";
+    qDebug() << "Reading preferences from online profile.";
 
     QDomDocument aOsmPrefDoc;
     aOsmPrefDoc.setContent(reply, false);
@@ -530,6 +532,7 @@ void MerkaartorPreferences::initialize()
 {
 //  Use06Api = Sets->value("osm/use06api", "true").toBool();
     Use06Api = true;
+    saveOnline = true;
 
     // Proxy upgrade
     if (!g_Merk_Ignore_Preferences && !g_Merk_Reset_Preferences) {
@@ -589,7 +592,7 @@ void MerkaartorPreferences::initialize()
         }
     }
     if (!theToolList.contains("Inkscape")) {
-        Tool t("Inkscape", "");
+        Tool t("Inkscape", QString());
         theToolList.insert("Inkscape", t);
     }
 
@@ -601,7 +604,7 @@ void MerkaartorPreferences::initialize()
 	// about what do the fields mean. Same with TMS/servers.
         if (Servers.size()) {
             for (int i=0; i<Servers.size(); i+=7) {
-                WmsServer S(Servers[i], Servers[i+1], Servers[i+2], Servers[i+3], Servers[i+4], Servers[i+5], Servers[i+6], "", "");
+                WmsServer S(Servers[i], Servers[i+1], Servers[i+2], Servers[i+3], Servers[i+4], Servers[i+5], Servers[i+6], QString(), QString());
                 theWmsServerList.addServer(S);
             }
             save();
@@ -611,7 +614,7 @@ void MerkaartorPreferences::initialize()
         Servers = Sets->value("TMS/servers").toStringList();
         if (Servers.size()) {
             for (int i=0; i<Servers.size(); i+=6) {
-                TmsServer S(Servers[i], Servers[i+1], Servers[i+2], "EPSG:900913", Servers[i+3].toInt(), Servers[i+4].toInt(), Servers[i+5].toInt(), "", "");
+                TmsServer S(Servers[i], Servers[i+1], Servers[i+2], "EPSG:900913", Servers[i+3].toInt(), Servers[i+4].toInt(), Servers[i+5].toInt(), QString(), QString());
                 theTmsServerList.addServer(S);
             }
             save();
@@ -657,7 +660,9 @@ void MerkaartorPreferences::setUse06Api(bool b)
 
 M_PARAM_IMPLEMENT_BOOL(rightsidedriving, roadstructure, true);
 M_PARAM_IMPLEMENT_DOUBLE(doubleroaddistance, roadstructure, 20.);
-M_PARAM_IMPLEMENT_STRING(workingdir, general, "");
+M_PARAM_IMPLEMENT_DOUBLE(RoundaboutPrecision, roadstructure, 10.);
+M_PARAM_IMPLEMENT_INT(RoundaboutType, misc, 0);
+M_PARAM_IMPLEMENT_STRING(workingdir, general, QString());
 
 BookmarkList* MerkaartorPreferences::getBookmarks()
 {
@@ -688,7 +693,7 @@ TmsServerList* MerkaartorPreferences::getTmsServers()
 
 /* */
 
-M_PARAM_IMPLEMENT_STRING(SelectedServer, backgroundImage, "");
+M_PARAM_IMPLEMENT_STRING(SelectedServer, backgroundImage, QString());
 
 bool MerkaartorPreferences::getBgVisible() const
 {
@@ -729,7 +734,7 @@ QUuid MerkaartorPreferences::getBackgroundPlugin() const
 {
     QString s;
     if (!g_Merk_Ignore_Preferences && !g_Merk_Reset_Preferences) {
-        s = Sets->value("backgroundImage/BackgroundPlugin", "").toString();
+        s = Sets->value("backgroundImage/BackgroundPlugin", QString()).toString();
     }
     return QUuid(s);
 }
@@ -744,10 +749,10 @@ M_PARAM_IMPLEMENT_INT(CacheSize, backgroundImage, 0);
 
 /* Search */
 M_PARAM_IMPLEMENT_INT(LastMaxSearchResults, search, 999);
-M_PARAM_IMPLEMENT_STRING(LastSearchName, search, "");
-M_PARAM_IMPLEMENT_STRING(LastSearchKey, search, "");
-M_PARAM_IMPLEMENT_STRING(LastSearchValue, search, "");
-M_PARAM_IMPLEMENT_STRING(LastSearchTagSelector, search, "");
+M_PARAM_IMPLEMENT_STRING(LastSearchName, search, QString());
+M_PARAM_IMPLEMENT_STRING(LastSearchKey, search, QString());
+M_PARAM_IMPLEMENT_STRING(LastSearchValue, search, QString());
+M_PARAM_IMPLEMENT_STRING(LastSearchTagSelector, search, QString());
 /* Visuals */
 
 void MerkaartorPreferences::saveMainWindowState(const MainWindow * mainWindow)
@@ -866,9 +871,9 @@ ProjectionItem MerkaartorPreferences::getProjection(QString aProj)
 QString MerkaartorPreferences::getCurrentFilter()
 {
     if (!g_Merk_Ignore_Preferences && !g_Merk_Reset_Preferences)
-        return Sets->value("filter/Type", "").toString();
+        return Sets->value("filter/Type", QString()).toString();
     else
-        return "";
+        return QString();
 }
 
 FiltersList* MerkaartorPreferences::getFiltersList()
@@ -969,7 +974,7 @@ QString MerkaartorPreferences::getOsmWebsite() const
 #endif
 
     if (!u.path().isEmpty())
-        u.setPath("");
+        u.setPath(QString());
 
     return u.toString();
 }
@@ -990,7 +995,7 @@ void MerkaartorPreferences::setOsmWebsite(const QString & theValue)
         Sets->setValue("osm/Website", theValue);
 }
 
-M_PARAM_IMPLEMENT_STRING(XapiUrl, osm, "http://www.informationfreeway.org/api/0.6")
+M_PARAM_IMPLEMENT_STRING(XapiUrl, osm, "http://www.overpass-api.de/api/xapi_meta?")
 M_PARAM_IMPLEMENT_STRING(NominatimUrl, osm, "http://nominatim.openstreetmap.org/search")
 M_PARAM_IMPLEMENT_BOOL(AutoHistoryCleanup, data, true);
 
@@ -999,7 +1004,7 @@ QString MerkaartorPreferences::getOsmUser() const
     if (!g_Merk_Ignore_Preferences && !g_Merk_Reset_Preferences)
         return Sets->value("osm/User").toString();
     else
-        return "";
+        return QString();
 }
 
 void MerkaartorPreferences::setOsmUser(const QString & theValue)
@@ -1013,7 +1018,7 @@ QString MerkaartorPreferences::getOsmPassword() const
     if (!g_Merk_Ignore_Preferences && !g_Merk_Reset_Preferences)
         return Sets->value("osm/Password").toString();
     else
-        return "";
+        return QString();
 }
 
 void MerkaartorPreferences::setOsmPassword(const QString & theValue)
@@ -1181,7 +1186,7 @@ M_PARAM_IMPLEMENT_BOOL(UseAntiAlias, style, true)
 M_PARAM_IMPLEMENT_BOOL(AntiAliasWhilePanning, style, false)
 M_PARAM_IMPLEMENT_BOOL(UseStyledWireframe, style, false)
 M_PARAM_IMPLEMENT_STRING(DefaultStyle, style, ":/Styles/Mapnik.mas")
-M_PARAM_IMPLEMENT_STRING(CustomStyle, style, "")
+M_PARAM_IMPLEMENT_STRING(CustomStyle, style, QString())
 M_PARAM_IMPLEMENT_BOOL(DisableStyleForTracks, style, true)
 M_PARAM_IMPLEMENT_STRINGLIST(TechnicalTags, style, TECHNICAL_TAGS)
 M_PARAM_IMPLEMENT_INT(EditRendering, style, 0)
@@ -1220,7 +1225,7 @@ M_PARAM_IMPLEMENT_BOOL(WireframeView, visual, false)
 
 /* Templates */
 M_PARAM_IMPLEMENT_STRING(DefaultTemplate, templates, ":/Templates/default.mat")
-M_PARAM_IMPLEMENT_STRING(CustomTemplate, templates, "")
+M_PARAM_IMPLEMENT_STRING(CustomTemplate, templates, QString())
 
 /* GPS */
 #ifdef Q_OS_WIN
@@ -1234,7 +1239,7 @@ M_PARAM_IMPLEMENT_STRING(GpsdHost, gps, "localhost")
 M_PARAM_IMPLEMENT_INT(GpsdPort, gps, 2947)
 M_PARAM_IMPLEMENT_BOOL(GpsSaveLog, gps, false)
 M_PARAM_IMPLEMENT_BOOL(GpsMapCenter, gps, false)
-M_PARAM_IMPLEMENT_STRING(GpsLogDir, gps, "")
+M_PARAM_IMPLEMENT_STRING(GpsLogDir, gps, QString())
 M_PARAM_IMPLEMENT_BOOL(GpsSyncTime, gps, false)
 
 M_PARAM_IMPLEMENT_BOOL(ResolveRelations, downloadosm, false)
@@ -1251,11 +1256,10 @@ M_PARAM_IMPLEMENT_BOOL(TranslateTags, locale, true)
 M_PARAM_IMPLEMENT_BOOL(AutoSourceTag, backgroundImage, true)
 
 /* Data */
-M_PARAM_IMPLEMENT_STRING(OpenStreetBugsUrl, data, "http://openstreetbugs.schokokeks.org/api/0.1/")
 M_PARAM_IMPLEMENT_STRING(MapdustUrl, data, "http://www.mapdust.com/feed?lang=en&ft=wrong_turn,bad_routing,oneway_road,blocked_street,missing_street,wrong_roundabout,missing_speedlimit,other&fd=1&minR=&maxR=")
-M_PARAM_IMPLEMENT_BOOL(GdalConfirmProjection, data, false)
+M_PARAM_IMPLEMENT_BOOL(GdalConfirmProjection, data, true)
 M_PARAM_IMPLEMENT_BOOL(HasAutoLoadDocument, data, false)
-M_PARAM_IMPLEMENT_STRING(AutoLoadDocumentFilename, data, "")
+M_PARAM_IMPLEMENT_STRING(AutoLoadDocumentFilename, data, QString())
 
 /* Mouse bevaviour */
 #ifdef _MOBILE
@@ -1331,16 +1335,17 @@ QNetworkProxy MerkaartorPreferences::getProxy(const QUrl & requestUrl)
 }
 
 M_PARAM_IMPLEMENT_BOOL(ProxyUse, proxy, false)
-M_PARAM_IMPLEMENT_STRING(ProxyHost, proxy, "")
+M_PARAM_IMPLEMENT_STRING(ProxyHost, proxy, QString())
 M_PARAM_IMPLEMENT_INT(ProxyPort, proxy, 8080)
-M_PARAM_IMPLEMENT_STRING(ProxyUser, proxy, "")
-M_PARAM_IMPLEMENT_STRING(ProxyPassword, proxy, "")
+M_PARAM_IMPLEMENT_STRING(ProxyUser, proxy, QString())
+M_PARAM_IMPLEMENT_STRING(ProxyPassword, proxy, QString())
 
 /* Track */
 M_PARAM_IMPLEMENT_BOOL(ReadonlyTracksDefault, data, false)
 
 /* FeaturesDock */
 M_PARAM_IMPLEMENT_BOOL(FeaturesWithin, FeaturesDock, true)
+M_PARAM_IMPLEMENT_BOOL(FeaturesSelectionFilter, FeaturesDock, true)
 
 namespace {
 
@@ -1348,7 +1353,7 @@ namespace {
 // on the platform. This method returns the list of directories to load
 // preference XMLs from.
 QStringList getPreferenceDirectories() {
-    QList<QString> directories;
+    QStringList directories;
     directories << HOMEDIR;
     // TODO: Some files are loaded without this override for Q_OS_MAC. Why?
 #if defined(Q_OS_MAC)
@@ -1368,7 +1373,7 @@ QStringList getPreferenceDirectories() {
 // Returns the list of all alternative locations of the given preference
 // file.
 QStringList getPreferenceFilePaths(QString fileName) {
-    QList<QString> paths;
+    QStringList paths;
     const QStringList directories = getPreferenceDirectories();
     for (QStringList::const_iterator i = directories.begin(); i != directories.end(); ++i) {
 	paths << (*i) + "/" + fileName;
@@ -1684,7 +1689,7 @@ QString getDefaultLanguage(bool returnDefault)
         QSettings* sets = getSettings();
         QString lang = sets->value("locale/language").toString();
         delete sets;
-        if (lang == "")
+        if (lang.isEmpty())
             if (returnDefault)
                 lang = QLocale::system().name().split("_")[0];
         return lang;
@@ -1692,7 +1697,7 @@ QString getDefaultLanguage(bool returnDefault)
         if (returnDefault)
             return QLocale::system().name().split("_")[0];
         else
-            return "";
+            return QString();
     }
 }
 
diff --git a/src/Preferences/MerkaartorPreferences.h b/src/Preferences/MerkaartorPreferences.h
index bab0768..0d2a9c4 100644
--- a/src/Preferences/MerkaartorPreferences.h
+++ b/src/Preferences/MerkaartorPreferences.h
@@ -183,6 +183,8 @@ public:
     qreal apiVersionNum() const;
 
     M_PARAM_DECLARE_BOOL(rightsidedriving);
+    M_PARAM_DECLARE_DOUBLE(RoundaboutPrecision);
+    M_PARAM_DECLARE_INT(RoundaboutType);
     M_PARAM_DECLARE_DOUBLE(doubleroaddistance);
     M_PARAM_DECLARE_STRING(workingdir);
 
@@ -390,6 +392,7 @@ public:
 
     /* FeaturesDock */
     M_PARAM_DECLARE_BOOL(FeaturesWithin)
+    M_PARAM_DECLARE_BOOL(FeaturesSelectionFilter)
 
     /* Plugins */
     void addBackgroundPlugin(IMapAdapterFactory* aPlugin);
@@ -456,6 +459,7 @@ private:
 
     bool Use06Api;
     QString version;
+    bool saveOnline;
 
     // TODO: These network objects shouldn't be shared between methods
     // of MerkaartorPreferences.
diff --git a/src/Preferences/TMSPreferencesDialog.cpp b/src/Preferences/TMSPreferencesDialog.cpp
index e6e7a34..d25710d 100644
--- a/src/Preferences/TMSPreferencesDialog.cpp
+++ b/src/Preferences/TMSPreferencesDialog.cpp
@@ -115,7 +115,7 @@ void TMSPreferencesDialog::on_btDelTmsServer_clicked(void)
         return;
 
     theTmsServers[idx].deleted = true;
-    delete lvTmsServers->takeItem(idx);
+    delete lvTmsServers->takeItem(lvTmsServers->currentRow());
     on_lvTmsServers_itemSelectionChanged();
 }
 
@@ -215,7 +215,7 @@ void TMSPreferencesDialog::savePrefs()
 void TMSPreferencesDialog::on_btGetServices_clicked()
 {
     QUrl theUrl(edTmsUrl->text());
-    if ((theUrl.host() == "") || (theUrl.path() == "")) {
+    if (theUrl.host().isEmpty() || theUrl.path().isEmpty()) {
         QMessageBox::critical(this, tr("Merkaartor: GetServices"), tr("Address and Path cannot be blank."), QMessageBox::Ok);
     }
 
@@ -268,8 +268,10 @@ void TMSPreferencesDialog::httpRequestFinished( QNetworkReply *reply)
     qDebug() << "TMS: request finished.";
     reply->deleteLater();
     if (reply->error()) {
-        if (reply->error() != QNetworkReply::OperationCanceledError)
-            QMessageBox::critical(this, tr("Merkaartor: GetServices"), tr("Error reading services.\n") + reply->errorString(), QMessageBox::Ok);
+        if (reply->error() != QNetworkReply::OperationCanceledError) {
+            QMessageBox::critical(this, tr("Merkaartor: GetServices"), tr("Error reading services. The server probably does not support this feature.\n"), QMessageBox::Ok);
+            qDebug() << "TMS GetServices error: " << reply->errorString();
+        }
         return;
     }
 
diff --git a/src/Preferences/TMSPreferencesDialog.ui b/src/Preferences/TMSPreferencesDialog.ui
index cf2be07..18cb9d9 100644
--- a/src/Preferences/TMSPreferencesDialog.ui
+++ b/src/Preferences/TMSPreferencesDialog.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>550</width>
-    <height>489</height>
+    <width>594</width>
+    <height>551</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -139,12 +139,11 @@
             </item>
             <item>
              <widget class="QLabel" name="label_6">
+              <property name="styleSheet">
+               <string notr="true">QLabel { font-weight: bold; }</string>
+              </property>
               <property name="text">
-               <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">This is a &quot;standard&quot; <a href="http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification">TMS</a> server</span></p></body></html></string>
+               <string>This is a standard TMS server.</string>
               </property>
              </widget>
             </item>
diff --git a/src/Preferences/TmsServersList.cpp b/src/Preferences/TmsServersList.cpp
index c2b008f..95f59b5 100644
--- a/src/Preferences/TmsServersList.cpp
+++ b/src/Preferences/TmsServersList.cpp
@@ -17,7 +17,7 @@
 
 TmsServer::TmsServer()
 {
-    TmsServer(QApplication::translate("MerkaartorPreferences","New Server"), "", "", "EPSG:3857", 256, 0, 17, "", "");
+    TmsServer(QApplication::translate("MerkaartorPreferences","New Server"), QString(), QString(), "EPSG:3857", 256, 0, 17, QString(), QString());
 }
 
 TmsServer::TmsServer(QString Name, QString Adress, QString Path, QString Projection, int tileSize, int minZoom, int maxZoom, QString SourceTag, QString LicenseUrl, QString baseUrl, bool Origin, bool Deleted)
@@ -34,7 +34,7 @@ TmsServer::TmsServer(QString Name, QString Adress, QString Path, QString Project
     , TmsBlOrigin(Origin)
     , deleted(Deleted)
 {
-    if (Name == "") {
+    if (Name.isEmpty()) {
         TmsName = QApplication::translate("MerkaartorPreferences","New Server");
     }
 }
@@ -148,7 +148,7 @@ void TmsServersList::toXml(QDomElement parent)
 {
     QDomElement rt = parent.ownerDocument().createElement("TmsServers");
     parent.appendChild(rt);
-    rt.setAttribute("creator", QString("%1 v%2%3").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(VERSION)).arg(STRINGIFY(REVISION)));
+    rt.setAttribute("creator", QString("%1 v%2").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(VERSION)));
 
     TmsServerListIterator it(theServers);
     while (it.hasNext()) {
diff --git a/src/Preferences/TmsServersList.h b/src/Preferences/TmsServersList.h
index 62c7ebc..256e008 100644
--- a/src/Preferences/TmsServersList.h
+++ b/src/Preferences/TmsServersList.h
@@ -21,7 +21,7 @@ class TmsServer
 {
     public:
         TmsServer();
-        TmsServer(QString Name, QString Adress, QString Path, QString Projection, int tileSize, int minZoom, int maxZoom, QString SourceTag, QString LicenseUrl, QString TmsBaseUrl = "", bool Origin=false, bool Deleted=false);
+        TmsServer(QString Name, QString Adress, QString Path, QString Projection, int tileSize, int minZoom, int maxZoom, QString SourceTag, QString LicenseUrl, QString TmsBaseUrl = QString(), bool Origin=false, bool Deleted=false);
 
         void toXml(QDomElement parent);
         static TmsServer fromXml(QDomElement parent);
diff --git a/src/Preferences/WMSPreferencesDialog.cpp b/src/Preferences/WMSPreferencesDialog.cpp
index 1cfd5b8..ec3e6c7 100644
--- a/src/Preferences/WMSPreferencesDialog.cpp
+++ b/src/Preferences/WMSPreferencesDialog.cpp
@@ -35,15 +35,13 @@ WMSPreferencesDialog::WMSPreferencesDialog(QWidget* parent)
     loadPrefs();
 
     edWmsLayers->setVisible(false);
-    lblWMSC->setVisible(false);
     frWmsSettings->setVisible(true);
     isTiled = 0;
     frTileIt->setEnabled(false);
     edWmsUrl->setValidator(&wmsValid);
 
     connect(tvWmsLayers, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(on_tvWmsLayers_itemChanged(QTreeWidgetItem *, int)));
-    connect (&m_networkManager, SIGNAL(finished(QNetworkReply *)), this, SLOT(httpRequestFinished(QNetworkReply *)));
-
+    connect(&m_networkManager, SIGNAL(finished(QNetworkReply *)), this, SLOT(httpRequestFinished(QNetworkReply *)));
 }
 
 WMSPreferencesDialog::~WMSPreferencesDialog()
@@ -219,7 +217,7 @@ void WMSPreferencesDialog::on_lvWmsServers_itemSelectionChanged()
     frTileIt->setEnabled(false);
     cbTileIt->setChecked(false);
     sbZoomLevels->setValue(0);
-    lblWMSC->setVisible(false);
+    setStatus( Empty );
     frWmsSettings->setVisible(true);
     isTiled = 0;
     selWmscLayer = WmscLayer();
@@ -365,7 +363,7 @@ void WMSPreferencesDialog::showCapabilities(void)
 #else
 #define theQuery theUrl
 #endif
-    if ((theUrl.host() == "") || (theUrl.path() == "")) {
+    if (theUrl.host().isEmpty() || theUrl.path().isEmpty()) {
         QMessageBox::critical(this, tr("Merkaartor: GetCapabilities"), tr("Address and Path cannot be blank."), QMessageBox::Ok);
     }
 
@@ -416,10 +414,13 @@ void WMSPreferencesDialog::httpRequestFinished(QNetworkReply * reply)
     if (reply != curReply)
         return;
 
+    setStatus( Empty );
+
     int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
     if (reply->error() != QNetworkReply::NoError) {
         if (reply->error() != QNetworkReply::OperationCanceledError)
-            QMessageBox::critical(this, tr("Merkaartor: GetCapabilities"), tr("Error reading capabilities.\n") + reply->errorString(), QMessageBox::Ok);
+            setStatus( ErrorGetCapabilities, reply->errorString() );
+            //QMessageBox::critical(this, tr("Merkaartor: GetCapabilities"), tr("Error reading capabilities.\n") + reply->errorString(), QMessageBox::Ok);
     } else {
         switch (statusCode) {
             case 200:
@@ -433,16 +434,18 @@ void WMSPreferencesDialog::httpRequestFinished(QNetworkReply * reply)
                 curReply = NULL;
                 return;
             default:
+                QString reason = reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
+                setStatus( ErrorGetCapabilities, reason);
+                /*
                 QMessageBox::information(this, tr("Merkaartor: GetCapabilities"),
                                   tr("Download failed: %1.")
-                                  .arg(statusCode));
+                                  .arg(statusCode)); */
                 curReply->deleteLater();
                 curReply = NULL;
                 return;
         }
     }
 
-    lblWMSC->setVisible(false);
     frWmsSettings->setVisible(true);
     isTiled = 0;
 
@@ -511,6 +514,8 @@ void WMSPreferencesDialog::httpRequestFinished(QNetworkReply * reply)
     if (!vendorElem.isNull()) {
         parseVendorSpecific(vendorElem);
     }
+
+    tvWmsLayers->setCurrentItem(tvWmsLayers->topLevelItem(0));
 }
 
 void WMSPreferencesDialog::parseVendorSpecific(QDomElement &vendorElem)
@@ -529,7 +534,7 @@ void WMSPreferencesDialog::parseVendorSpecific(QDomElement &vendorElem)
 
 void WMSPreferencesDialog::parseTileSet(QDomElement &tilesetElem, WmscLayer &aLayer)
 {
-    lblWMSC->setVisible(true);
+    setStatus( Caching );
     frWmsSettings->setVisible(false);
     isTiled = 1;
 
@@ -574,23 +579,28 @@ QTreeWidgetItem * WMSPreferencesDialog::parseLayer(const QDomElement& aLayerElem
     QDomElement title = aLayerElem.firstChildElement("Title");
     QDomElement name = aLayerElem.firstChildElement("Name");
 
+    QString theTitle, theName;
+    if (!name.isNull())
+        theName = name.firstChild().nodeValue();
+    if (!title.isNull()) {
+        theTitle = title.firstChild().nodeValue();
+    } else theTitle = tr("Unnamed layer");
+
+
     QTreeWidgetItem *newItem = new QTreeWidgetItem;
     newItem->setFlags(Qt::NoItemFlags |Qt::ItemIsEnabled);
-    if (!name.isNull())
-        newItem->setText(0,name.firstChild().nodeValue());
-    else {
-        if (!title.isNull())
-            newItem->setText(0,title.firstChild().nodeValue());
-        else
-            newItem->setText(0,tr("Unnamed"));
-    }
 
-    if (!title.isNull())
+
+    newItem->setText(0,theTitle);
+    newItem->setText(1,theName);
+
+    if (!title.isNull()) {
         newItem->setToolTip(0, title.firstChild().nodeValue());
+    } else {
+        newItem->setToolTip(0, tr("Untitled"));
+    }
 
-    QString theName;
     if (!name.isNull()) {
-        theName = name.firstChild().nodeValue();
         newItem->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
         newItem->setData(0, Qt::UserRole, theName);
         newItem->setCheckState(0, Qt::Unchecked);
@@ -640,14 +650,51 @@ QTreeWidgetItem * WMSPreferencesDialog::parseLayer(const QDomElement& aLayerElem
     }
 
     tvWmsLayers->expandItem(newItem);
+    tvWmsLayers->header()->setStretchLastSection(false);
+#ifdef QT5
+    tvWmsLayers->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
+#else
+    tvWmsLayers->header()->setResizeMode(QHeaderView::ResizeToContents);
+#endif
     return newItem;
 }
 
+void WMSPreferencesDialog::setStatus( WMSStatus status, QString message ) {
+    switch (status) {
+        case Caching:
+            lblStatus->setText(tr("This is a caching WMS server."));
+            break;
+        case ErrorNetwork:
+            lblStatus->setText(tr("Could not contact WMS server: %1").arg(message));
+            break;
+        case ErrorGetCapabilities:
+            lblStatus->setText(tr("Could not get capabilities: %1").arg(message));
+            break;
+        default:
+            lblStatus->setText(QString());
+    }
+
+    if (status > Error) {
+        lblStatus->setStyleSheet("QLabel { color : red; }");
+    } else {
+        lblStatus->setStyleSheet(QString());
+    }
+}
+
+void WMSPreferencesDialog::setTreeCheckState(Qt::CheckState state, QTreeWidgetItem *twi) {
+    twi->setCheckState(0, state);
+    for (int i = 0; i < twi->childCount(); i++)
+        setTreeCheckState(state, twi->child(i));
+}
+
 void WMSPreferencesDialog::on_tvWmsLayers_itemChanged(QTreeWidgetItem *twi, int)
 {
     QStringList theLayers;
     bool hasSelection = false;
 
+    /* Set the checkbox status recursively for the whole subtree */
+    setTreeCheckState(twi->checkState(0), twi);
+
     if (isTiled == 1 && twi->checkState(0) == Qt::Checked) {
         theLayers.append(twi->data(0, Qt::UserRole).toString());
         hasSelection = true;
diff --git a/src/Preferences/WMSPreferencesDialog.h b/src/Preferences/WMSPreferencesDialog.h
index 86f6593..9b949e5 100644
--- a/src/Preferences/WMSPreferencesDialog.h
+++ b/src/Preferences/WMSPreferencesDialog.h
@@ -19,6 +19,7 @@
 
 #include <ui_WMSPreferencesDialog.h>
 #include "MerkaartorPreferences.h"
+#include "Global.h"
 
 #include <QList>
 #include <QtXml>
@@ -109,6 +110,14 @@ public slots:
     void on_tvWmsLayers_currentItemChanged ( QTreeWidgetItem * current, QTreeWidgetItem * previous );
 
 private:
+    enum WMSStatus {
+       Empty,
+       Caching,
+       Error,
+       ErrorNetwork,
+       ErrorGetCapabilities,
+    };
+
     void updateUrl();
     void loadPrefs();
     void savePrefs();
@@ -118,8 +127,12 @@ private:
     void parseVendorSpecific(QDomElement& vendorElem);
     void parseTileSet(QDomElement& tilesetElem, WmscLayer& aLayer);
 
+    void setTreeCheckState(Qt::CheckState state, QTreeWidgetItem *twi);
+    void setStatus( WMSStatus status, QString message = QString() );
+
     void refreshStyles();
 
+
 public:
     QList<WmsServer> theWmsServers;
     QString getSelectedServer();
diff --git a/src/Preferences/WMSPreferencesDialog.ui b/src/Preferences/WMSPreferencesDialog.ui
index 878d90e..e2765e0 100644
--- a/src/Preferences/WMSPreferencesDialog.ui
+++ b/src/Preferences/WMSPreferencesDialog.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>586</width>
-    <height>583</height>
+    <width>797</width>
+    <height>718</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -129,23 +129,27 @@
          <item>
           <widget class="QTreeWidget" name="tvWmsLayers">
            <property name="headerHidden">
-            <bool>true</bool>
+            <bool>false</bool>
+           </property>
+           <property name="columnCount">
+            <number>2</number>
            </property>
            <column>
             <property name="text">
-             <string>1</string>
+             <string>Title</string>
+            </property>
+           </column>
+           <column>
+            <property name="text">
+             <string notr="true">Name</string>
             </property>
            </column>
           </widget>
          </item>
          <item>
-          <widget class="QLabel" name="lblWMSC">
+          <widget class="QLabel" name="lblStatus">
            <property name="text">
-            <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">This is a caching WMS (</span><a href="http://wiki.openstreetmap.org/wiki/Merkaartor/Documentation#WMS-C_Servers"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">WMS-C)</span></a><span style=" font-weight:600;"> serv [...]
+            <string notr="true"/>
            </property>
            <property name="openExternalLinks">
             <bool>true</bool>
@@ -226,9 +230,6 @@ p, li { white-space: pre-wrap; }
                 </widget>
                </item>
               </layout>
-              <zorder>cbTileIt</zorder>
-              <zorder>label_2</zorder>
-              <zorder>sbZoomLevels</zorder>
              </widget>
             </item>
             <item>
@@ -314,19 +315,6 @@ p, li { white-space: pre-wrap; }
           </layout>
          </item>
          <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Vertical</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>20</width>
-             <height>1</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
           <layout class="QHBoxLayout" name="horizontalLayout">
            <item>
             <widget class="QPushButton" name="btApplyWmsServer">
diff --git a/src/Preferences/WmsServersList.cpp b/src/Preferences/WmsServersList.cpp
index 93216fc..1a892c3 100644
--- a/src/Preferences/WmsServersList.cpp
+++ b/src/Preferences/WmsServersList.cpp
@@ -17,7 +17,7 @@
 
 WmsServer::WmsServer()
 {
-    WmsServer(QApplication::translate("MerkaartorPreferences","New Server"), "", "", "", "", "", "", "", "");
+    WmsServer(QApplication::translate("MerkaartorPreferences","New Server"), QString(), QString(), QString(), QString(), QString(), QString(), QString(), QString());
 }
 
 WmsServer::WmsServer(QString Name, QString Adress, QString Path, QString Layers
@@ -36,7 +36,7 @@ WmsServer::WmsServer(QString Name, QString Adress, QString Path, QString Layers
     , WmsCLayer(CLayer)
     , deleted(Deleted)
 {
-    if (Name == "") {
+    if (Name.isEmpty()) {
         WmsName = QApplication::translate("MerkaartorPreferences","New Server");
     }
 }
@@ -208,7 +208,7 @@ void WmsServersList::toXml(QDomElement parent)
 {
     QDomElement rt = parent.ownerDocument().createElement("WmsServers");
     parent.appendChild(rt);
-    rt.setAttribute("creator", QString("%1 v%2%3").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(VERSION)).arg(STRINGIFY(REVISION)));
+    rt.setAttribute("creator", QString("%1 v%2").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(VERSION)));
 
     WmsServerListIterator it(theServers);
     while (it.hasNext()) {
diff --git a/src/QMapControl/WmscMapAdapter.h b/src/QMapControl/WmscMapAdapter.h
index baa6843..ef9d53a 100644
--- a/src/QMapControl/WmscMapAdapter.h
+++ b/src/QMapControl/WmscMapAdapter.h
@@ -86,7 +86,7 @@ public:
 
     virtual bool isValid(int x, int y, int z) const;
     virtual QString getQuery(int x, int y, int z) const;
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const { return QPixmap(); }
 
     virtual QString projection() const;
@@ -100,7 +100,7 @@ public:
 
     virtual bool toXML(QXmlStreamWriter& /*stream*/) { return true; }
     virtual void fromXML(QXmlStreamReader& /*xParent*/) {}
-    virtual QString toPropertiesHtml() {return "";}
+    virtual QString toPropertiesHtml() {return QString();}
 
     virtual void setSettings(QSettings* /*aSet*/) {}
 
diff --git a/src/QMapControl/browserimagemanager.cpp b/src/QMapControl/browserimagemanager.cpp
index 42eda0e..468cf2b 100644
--- a/src/QMapControl/browserimagemanager.cpp
+++ b/src/QMapControl/browserimagemanager.cpp
@@ -125,7 +125,7 @@ BrowserImageManager::BrowserImageManager(QObject* parent)
 }
 #else
 BrowserImageManager::BrowserImageManager(QObject* parent)
-    :QObject(parent), emptyPixmap(QPixmap(1,1)), errorPixmap(QPixmap(512,512)), page(0)
+    :QObject(parent), emptyPixmap(QPixmap(1,1)), errorPixmap(QPixmap(512,512)), page(0), timeoutTimer(new QTimer(this))
 {
     errorPixmap.fill(Qt::gray);
     QPainter P(&errorPixmap);
@@ -143,7 +143,6 @@ BrowserImageManager::BrowserImageManager(QObject* parent)
 
     connect(page, SIGNAL(loadFinished(bool)), this, SLOT(pageLoadFinished(bool)));
 
-    timeoutTimer = new QTimer();
     connect(timeoutTimer, SIGNAL(timeout()), this, SLOT(timeout()));
     timeoutTimer->setInterval(M_PREFS->getNetworkTimeout());
 
@@ -156,10 +155,9 @@ BrowserImageManager::BrowserImageManager(QObject* parent)
 
 BrowserImageManager::~BrowserImageManager()
 {
-    delete timeoutTimer;
 }
 
-QByteArray BrowserImageManager::getData(IMapAdapter* anAdapter, QString url)
+QByteArray BrowserImageManager::getData(IMapAdapter* anAdapter, const QString &url)
 {
     QImage pm = getImage(anAdapter, url);
     QBuffer buf;
@@ -167,13 +165,13 @@ QByteArray BrowserImageManager::getData(IMapAdapter* anAdapter, QString url)
     return buf.buffer();
 }
 
-QImage BrowserImageManager::getImage(IMapAdapter* anAdapter, QString url)
+QImage BrowserImageManager::getImage(IMapAdapter* anAdapter, const QString &url)
 {
 //	QPixmap pm(emptyPixmap);
     QPixmap pm;
 
     QString host = anAdapter->getHost();
-    QString strHash = QString("%1%2").arg(anAdapter->getName()).arg(url);
+    QString strHash = anAdapter->getName() + url;
     QString hash = QString(strHash.toLatin1().toBase64());
     if (hash.size() > 255) {
         QCryptographicHash crypt(QCryptographicHash::Md5);
@@ -309,10 +307,7 @@ QImage BrowserImageManager::prefetchImage(IMapAdapter* anAdapter, int x, int y,
 
 void BrowserImageManager::receivedData(const QByteArray& /* ba */, const QHash<QString, QString>& /* headers */, const QString& hash)
 {
-    if (prefetch.contains(hash))
-    {
-        prefetch.removeAt(prefetch.indexOf(hash));
-    }
+    prefetch.removeOne(hash);
     emit(dataReceived());
 }
 
diff --git a/src/QMapControl/browserimagemanager.h b/src/QMapControl/browserimagemanager.h
index d7abac6..10f8a47 100644
--- a/src/QMapControl/browserimagemanager.h
+++ b/src/QMapControl/browserimagemanager.h
@@ -77,8 +77,8 @@ class BrowserImageManager : public QObject, public IImageManager
          * @param path the path to the image
          * @return the pixmap of the asked image
          */
-        QImage getImage(IMapAdapter* anAdapter, QString url);
-        QByteArray getData(IMapAdapter* anAdapter, QString url);
+        QImage getImage(IMapAdapter* anAdapter, const QString &url);
+        QByteArray getData(IMapAdapter* anAdapter, const QString &url);
 
         //QPixmap prefetchImage(const QString& host, const QString& path);
         QImage prefetchImage(IMapAdapter* anAdapter, int x, int y, int z);
@@ -106,7 +106,7 @@ class BrowserImageManager : public QObject, public IImageManager
     private:
         QPixmap emptyPixmap;
         QPixmap errorPixmap;
-        QList<QString> prefetch;
+        QStringList prefetch;
 
         QQueue<LoadingRequest> loadingRequests;
         bool requestActive;
diff --git a/src/QMapControl/imagemanager.cpp b/src/QMapControl/imagemanager.cpp
index fcf3aad..957314f 100644
--- a/src/QMapControl/imagemanager.cpp
+++ b/src/QMapControl/imagemanager.cpp
@@ -44,10 +44,10 @@ ImageManager::~ImageManager()
     delete net;
 }
 
-QByteArray ImageManager::getData(IMapAdapter* anAdapter, QString url)
+QByteArray ImageManager::getData(IMapAdapter* anAdapter, const QString &url)
 {
     QString host = anAdapter->getHost();
-    QString strHash = QString("%1%2").arg(anAdapter->getName()).arg(url);
+    QString strHash = anAdapter->getName() + url;
     QString hash = QString(strHash.toLatin1().toBase64());
     if (hash.size() > 255) {
         QCryptographicHash crypt(QCryptographicHash::Md5);
@@ -72,12 +72,12 @@ QByteArray ImageManager::getData(IMapAdapter* anAdapter, QString url)
     return ba;
 }
 
-QImage ImageManager::getImage(IMapAdapter* anAdapter, QString url)
+QImage ImageManager::getImage(IMapAdapter* anAdapter, const QString &url)
 {
 // 	qDebug() << "ImageManager::getImage";
 
     QString host = anAdapter->getHost();
-    QString strHash = QString("%1%2").arg(anAdapter->getName()).arg(url);
+    QString strHash = anAdapter->getName() + url;
     QString hash = QString(strHash.toLatin1().toBase64());
     if (hash.size() > 255) {
         QCryptographicHash crypt(QCryptographicHash::Md5);
@@ -154,10 +154,7 @@ void ImageManager::receivedData(const QByteArray& ba, const QHash<QString, QStri
         }
     }
 
-    if (prefetch.contains(hash))
-    {
-        prefetch.removeAt(prefetch.indexOf(hash));
-    }
+    prefetch.removeOne(hash);
     emit(dataReceived());
 }
 
diff --git a/src/QMapControl/imagemanager.h b/src/QMapControl/imagemanager.h
index 5b115fe..fca6f64 100644
--- a/src/QMapControl/imagemanager.h
+++ b/src/QMapControl/imagemanager.h
@@ -52,8 +52,8 @@ class ImageManager : public QObject, public IImageManager
          * @param path the path to the image
          * @return the pixmap of the asked image
          */
-        QImage getImage(IMapAdapter* anAdapter, QString url);
-        QByteArray getData(IMapAdapter* anAdapter, QString url);
+        QImage getImage(IMapAdapter* anAdapter, const QString &url);
+        QByteArray getData(IMapAdapter* anAdapter, const QString &url);
 
         //QPixmap prefetchImage(const QString& host, const QString& path);
         QImage prefetchImage(IMapAdapter* anAdapter, int x, int y, int z);
@@ -81,7 +81,7 @@ class ImageManager : public QObject, public IImageManager
     private:
         QPixmap emptyPixmap;
         MapNetwork* net;
-        QList<QString> prefetch;
+        QStringList prefetch;
 
         static ImageManager* m_ImageManagerInstance;
 
diff --git a/src/QMapControl/mapcontrol.cpp b/src/QMapControl/mapcontrol.cpp
index d6b8166..603c24d 100644
--- a/src/QMapControl/mapcontrol.cpp
+++ b/src/QMapControl/mapcontrol.cpp
@@ -51,7 +51,7 @@ Layer* MapControl::getLayer(const QString& layername) const
 	return layermanager->getLayer(layername);
 }
 
-QList<QString> MapControl::getLayers() const
+QStringList MapControl::getLayers() const
 {
 	return layermanager->getLayers();
 }
diff --git a/src/QMapControl/mapcontrol.h b/src/QMapControl/mapcontrol.h
index 3535859..1a092a9 100644
--- a/src/QMapControl/mapcontrol.h
+++ b/src/QMapControl/mapcontrol.h
@@ -85,9 +85,9 @@ class MapControl : public QWidget
 		
 		//! returns the names of all layers
 		/*!
-		 * @return returns a QList with the names of all layers
+		 * @return returns a QStringList with the names of all layers
 		 */
-		QList<QString> getLayers() const;
+		QStringList getLayers() const;
 		
 		//! returns the number of existing layers
 		/*!
@@ -157,7 +157,7 @@ class MapControl : public QWidget
 		 * The MouesMode Dragging draws an rectangular in the map while the MouseButton is pressed.
 		 * When the Button is released a draggedRect() signal is emitted.
 		 * 
-		 * The second MouseMode (the default) is Panning, which allows to drag the map around.
+		 * The second MouseMode (the default) is Panning, which allows dragging the map around.
 		 * @param mousemode the MouseMode
 		 */
 		void setMouseMode(MouseMode mousemode);
@@ -204,7 +204,7 @@ class MapControl : public QWidget
 		
 		//! Emitted AFTER a MouseEvent occured
 		/*!
-		 * This signals allows to receive click events within the MapWidget together with the world coordinate.
+		 * This signals allows receiving click events within the MapWidget together with the world coordinate.
 		 * It is emitted on MousePressEvents and MouseReleaseEvents.
 		 * The kind of the event can be obtained by checking the events type.
 		 * @param  evnt the QMouseEvent that occured
diff --git a/src/QMapControl/mapnetwork.cpp b/src/QMapControl/mapnetwork.cpp
index 3f17597..308df96 100644
--- a/src/QMapControl/mapnetwork.cpp
+++ b/src/QMapControl/mapnetwork.cpp
@@ -60,16 +60,16 @@ void MapNetwork::launchRequest()
         return;
     LoadingRequest* R = loadingRequests.dequeue();
 
-    QUrl U;
-    if (!R->host.contains("://")) {
-        U.setUrl("http://" + QString(R->host).append(R->url));
+    QUrl theUrl;
+    if (R->host.contains("://")) {
+        theUrl.setUrl(QString(R->host).append(R->url));
     } else {
-        U.setUrl(QString(R->host).append(R->url));
+        theUrl.setUrl("http://" + QString(R->host).append(R->url));
     }
 
-    qDebug() << "getting: " << U.toString();
+    qDebug() << "getting: " << theUrl.toString();
 
-    launchRequest(U, R);
+    launchRequest(theUrl, R);
 }
 
 void MapNetwork::launchRequest(QUrl url, LoadingRequest* R)
@@ -80,15 +80,15 @@ void MapNetwork::launchRequest(QUrl url, LoadingRequest* R)
     req.setRawHeader("Accept", "image/*");
     req.setRawHeader("User-Agent", USER_AGENT.toLatin1());
 
-    QNetworkReply* rply = m_networkManager->get(req);
-    loadingMap[rply] = R;
+    QNetworkReply* reply = m_networkManager->get(req);
+    loadingMap[reply] = R;
 
     QTimer* timeoutTimer = new QTimer();
     connect(timeoutTimer, SIGNAL(timeout()), this, SLOT(timeout()));
     timeoutTimer->setInterval(M_PREFS->getNetworkTimeout());
     timeoutTimer->setSingleShot(true);
 
-    timeoutMap[timeoutTimer] = rply;
+    timeoutMap[timeoutTimer] = reply;
     timeoutTimer->start();
 }
 
diff --git a/src/QMapControl/tilemapadapter.h b/src/QMapControl/tilemapadapter.h
index aaf5faa..ae49138 100644
--- a/src/QMapControl/tilemapadapter.h
+++ b/src/QMapControl/tilemapadapter.h
@@ -84,7 +84,7 @@ public:
 
     virtual bool isValid(int x, int y, int z) const;
     virtual QString getQuery(int x, int y, int z) const;
-    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return ""; }
+    virtual QString getQuery(const QRectF& , const QRectF& , const QRect& ) const { return QString(); }
     virtual QPixmap getPixmap(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const { return QPixmap(); }
 
     virtual QRectF	getBoundingbox() const;
@@ -97,7 +97,7 @@ public:
 
     virtual bool toXML(QXmlStreamWriter& /*stream*/) { return true; }
     virtual void fromXML(QXmlStreamReader& /*xParent*/) {}
-    virtual QString toPropertiesHtml() {return "";}
+    virtual QString toPropertiesHtml() {return QString();}
 
     virtual void setSettings(QSettings* /*aSet*/) {}
 
diff --git a/src/QMapControl/wmsmapadapter.h b/src/QMapControl/wmsmapadapter.h
index 5725872..2a91fe3 100644
--- a/src/QMapControl/wmsmapadapter.h
+++ b/src/QMapControl/wmsmapadapter.h
@@ -107,7 +107,7 @@ public:
     virtual void	zoom_out() {}
 
     virtual bool	isValid(int, int, int) const { return true; }
-    virtual QString getQuery(int, int, int)  const { return ""; }
+    virtual QString getQuery(int, int, int)  const { return QString(); }
     virtual QString getQuery(const QRectF& wgs84Bbox, const QRectF& projBbox, const QRect& size) const ;
     virtual QPixmap getPixmap(const QRectF& /* wgs84Bbox */, const QRectF& /* projBbox */, const QRect& /* size */) const { return QPixmap(); }
 
@@ -127,7 +127,7 @@ public:
 
     virtual bool toXML(QXmlStreamWriter& /*stream*/) { return true; }
     virtual void fromXML(QXmlStreamReader& /*xParent*/) {}
-    virtual QString toPropertiesHtml() {return "";}
+    virtual QString toPropertiesHtml() {return QString();}
 
     virtual void setSettings(QSettings* /*aSet*/) {}
 
diff --git a/src/Render/MapRenderer.cpp b/src/Render/MapRenderer.cpp
index cc62ef1..e7a8d18 100644
--- a/src/Render/MapRenderer.cpp
+++ b/src/Render/MapRenderer.cpp
@@ -211,140 +211,6 @@ MapRenderer::MapRenderer()
     lbllayer = LabelStyleLayer(this);
 }
 
-#if 0
-void MapRenderer::render(
-        QPainter* P,
-        QMap<RenderPriority, QSet <Feature*> > theFeatures,
-        const RendererOptions& options,
-        MapView* aView
-)
-{
-    #ifndef NDEBUG
-        QTime Start(QTime::currentTime());
-    #endif
-
-    theView = aView;
-    theOptions = options;
-
-    QMap<RenderPriority, QSet<Feature*> >::const_iterator itm;
-    QSet<Feature*>::const_iterator it;
-
-    bool bgLayerVisible = TEST_RFLAGS(RendererOptions::BackgroundVisible);
-    bool fgLayerVisible = TEST_RFLAGS(RendererOptions::ForegroundVisible);
-    bool tchpLayerVisible = TEST_RFLAGS(RendererOptions::TouchupVisible);
-    bool lblLayerVisible = TEST_RFLAGS(RendererOptions::NamesVisible);
-
-    Way * R = NULL;
-    Node * Pt = NULL;
-    Relation * RR = NULL;
-
-    QPixmap pix(theView->size());
-    thePainter = new QPainter();
-
-    itm = theFeatures.constBegin();
-    while (itm != theFeatures.constEnd())
-    {
-        pix.fill(Qt::transparent);
-        thePainter->begin(&pix);
-        if (M_PREFS->getUseAntiAlias())
-            thePainter->setRenderHint(QPainter::Antialiasing);
-        int curLayer = (itm.key()).layer();
-        while (itm != theFeatures.constEnd() && (itm.key()).layer() == curLayer)
-        {
-            for (it = itm.value().constBegin(); it != itm.value().constEnd(); ++it)
-            {
-                qreal alpha = (*it)->getAlpha();
-                thePainter->setOpacity(alpha);
-
-                R = NULL;
-                Pt = NULL;
-                RR = NULL;
-
-                if (!(R = CAST_WAY(*it)))
-                    if (!(Pt = CAST_NODE(*it)))
-                        RR = CAST_RELATION(*it);
-
-                if (R) {
-                    // If there is painter at the relation level, don't paint at the way level
-                    bool draw = true;
-                    for (int i=0; i<R->sizeParents(); ++i) {
-                        if (!R->getParent(i)->isDeleted() && R->getParent(i)->hasPainter(PixelPerM))
-                            draw = false;
-                    }
-                    if (!draw)
-                        continue;
-                }
-
-                if (!Pt) {
-                    if (bgLayerVisible)
-                    {
-                        thePainter->save();
-                        if (R && R->area() == 0)
-                            thePainter->setCompositionMode(QPainter::CompositionMode_DestinationOver);
-
-                        if (R)
-                            bglayer.draw(R);
-                        else if (Pt)
-                            bglayer.draw(Pt);
-                        else if (RR)
-                            bglayer.draw(RR);
-
-                        thePainter->restore();
-                    }
-                    if (fgLayerVisible)
-                    {
-                        thePainter->save();
-
-                        if (R)
-                            fglayer.draw(R);
-                        else if (Pt)
-                            fglayer.draw(Pt);
-                        else if (RR)
-                            fglayer.draw(RR);
-
-                        thePainter->restore();
-                    }
-                }
-                if (tchpLayerVisible)
-                {
-                    thePainter->save();
-
-                    if (R)
-                        tchuplayer.draw(R);
-                    else if (Pt)
-                        tchuplayer.draw(Pt);
-                    else if (RR)
-                        tchuplayer.draw(RR);
-
-                    thePainter->restore();
-                }
-                if (lblLayerVisible) {
-                    thePainter->save();
-
-                    if (R)
-                        lbllayer.draw(R);
-                    else if (Pt)
-                        lbllayer.draw(Pt);
-                    else if (RR)
-                        lbllayer.draw(RR);
-
-                    thePainter->restore();
-                }
-
-                (*it)->draw(*thePainter, aView);
-            }
-            ++itm;
-        }
-        thePainter->end();
-        P->drawPixmap(0, 0, pix);
-#ifndef NDEBUG
-    QTime Stop(QTime::currentTime());
-    qDebug() << Start.msecsTo(Stop) << "ms";
-#endif
-    }
-}
-#else
-
 QPoint MapRenderer::toView(Node* aPt) const
 {
     return theTransform.map(aPt->projected()).toPoint();
@@ -360,10 +226,6 @@ void MapRenderer::render(
         const RendererOptions& options
 )
 {
-//    #ifndef NDEBUG
-//        QTime Start(QTime::currentTime());
-//    #endif
-
     theViewport = pViewport;
     theScreen = screen;
     thePixelPerM = pixelPerM;
@@ -385,7 +247,6 @@ void MapRenderer::render(
     theTransform.reset();
     theTransform.scale(ScaleLon, -ScaleLat);
     theTransform.translate(-pViewport.topLeft().x(), -pViewport.topLeft().y());
-//    qDebug() << "render transform: " << theTransform;
 
     theOptions = options;
     theGlobalPainter = M_STYLE->getGlobalPainter();
@@ -531,11 +392,4 @@ void MapRenderer::render(
         }
     }
     thePainter->restore();
-
-//    #ifndef NDEBUG
-//        QTime Stop(QTime::currentTime());
-//        qDebug() << Start.msecsTo(Stop) << "ms";
-//    #endif
 }
-#endif
-
diff --git a/src/Render/NativeRenderDialog.cpp b/src/Render/NativeRenderDialog.cpp
index b741a4f..75ad12a 100644
--- a/src/Render/NativeRenderDialog.cpp
+++ b/src/Render/NativeRenderDialog.cpp
@@ -148,7 +148,7 @@ void NativeRenderDialog::render(QPainter& P, QRect theR, RendererOptions opt)
     mapview->setViewport(boundingBox(), theR);
     mapview->setRenderOptions(opt);
     mapview->invalidate(true, true, false);
-    mapview->drawFeatures(P);
+    mapview->drawFeaturesSync(P);
     if (opt.options & RendererOptions::ScaleVisible)
         mapview->drawScale(P);
     if (opt.options & RendererOptions::LatLonGridVisible)
@@ -171,17 +171,12 @@ void NativeRenderDialog::exportPDF()
     if (s.isNull())
         return;
 
-#if QT_VERSION >= 0x040500
-    QPrinter* prt = preview->printer();
-#else
-    QPrinter* prt = thePrinter;
-#endif
-    prt->setOutputFormat(QPrinter::PdfFormat);
-    prt->setOutputFileName(s);
+    thePrinter->setOutputFormat(QPrinter::PdfFormat);
+    thePrinter->setOutputFileName(s);
 
-    QPainter P(prt);
+    QPainter P(thePrinter);
     P.setRenderHint(QPainter::Antialiasing);
-    QRect theR = prt->pageRect();
+    QRect theR = thePrinter->pageRect();
     theR.moveTo(0, 0);
     RendererOptions opt = options();
     opt.options |= RendererOptions::PrintAllLabels;
@@ -203,11 +198,8 @@ void NativeRenderDialog::exportRaster()
 //    QString s = QFileDialog::getSaveFileName(NULL,tr("Output filename"),"",tr("Image files (*.png *.jpg)"));
     if (s.isNull())
         return;
-#if QT_VERSION >= 0x040500
-    QRect theR = preview->printer()->pageRect();
-#else
+
     QRect theR = thePrinter->pageRect();
-#endif
     theR.moveTo(0, 0);
 
     QPixmap pix(theR.size());
@@ -242,11 +234,7 @@ void NativeRenderDialog::exportSVG()
         return;
 
     QSvgGenerator svgg;
-#if QT_VERSION >= 0x040500
-    QRect theR = preview->printer()->pageRect();
-#else
     QRect theR = thePrinter->pageRect();
-#endif
     theR.moveTo(0, 0);
     svgg.setSize(theR.size());
     svgg.setFileName(s);
diff --git a/src/Sync/DirtyList.cpp b/src/Sync/DirtyList.cpp
index 6c68d76..4ffaeac 100644
--- a/src/Sync/DirtyList.cpp
+++ b/src/Sync/DirtyList.cpp
@@ -21,6 +21,10 @@
 #include <algorithm>
 
 int glbAdded, glbUpdated, glbDeleted;
+int glbNodesAdded, glbNodesUpdated, glbNodesDeleted;
+int glbWaysAdded, glbWaysUpdated, glbWaysDeleted;
+int glbRelationsAdded, glbRelationsUpdated, glbRelationsDeleted;
+
 QString glbChangeSetComment;
 
 QString stripToOSMId(const IFeature::FId& id)
@@ -30,10 +34,10 @@ QString stripToOSMId(const IFeature::FId& id)
 
 QString userName(const Feature* F)
 {
-    QString s(F->tagValue("name",""));
+    QString s(F->tagValue("name", QString()));
     if (!s.isEmpty())
         return " ("+s+")";
-    return "";
+    return QString();
 }
 
 DirtyList::~DirtyList()
@@ -279,6 +283,9 @@ DirtyListDescriber::DirtyListDescriber(Document* aDoc, const DirtyListBuild& aFu
 : DirtyListVisit(aDoc, aFuture, false), Task(0)
 {
     glbAdded = glbUpdated = glbDeleted = 0;
+    glbNodesAdded = glbNodesUpdated = glbNodesDeleted = 0;
+    glbWaysAdded = glbWaysUpdated = glbWaysDeleted = 0;
+    glbRelationsAdded = glbRelationsUpdated = glbRelationsDeleted = 0;
 }
 
 int DirtyListDescriber::tasks() const
@@ -295,25 +302,37 @@ bool DirtyListDescriber::showChanges(QWidget* aParent)
 
     runVisit();
 
-    CoordBox bbox = theDocument->getDirtyOrOriginLayer()->boundingBox();
-    QString bboxComment = QString("BBOX:%1,%2,%3,%4")
-            .arg(QString::number(bbox.bottomLeft().x(), 'f', 2))
-            .arg(QString::number(bbox.bottomLeft().y(), 'f', 2))
-            .arg(QString::number(bbox.topRight().x(), 'f', 2))
-            .arg(QString::number(bbox.topRight().y(), 'f', 2));
-
-    QString statComment = QString("ADD:%1 UPD:%2 DEL:%3").arg(glbAdded).arg(glbUpdated).arg(glbDeleted);
-
-    glbChangeSetComment = bboxComment + " " + statComment;
-    Ui.edChangesetComment->setText(glbChangeSetComment);
-    Ui.edChangesetComment->selectAll();
-
-    bool ok = (dlg->exec() == QDialog::Accepted);
-
-    if (!Ui.edChangesetComment->text().isEmpty())
-        glbChangeSetComment = Ui.edChangesetComment->text();
-    else
-        glbChangeSetComment = "-";
+    Ui.lblNodesAdded->setText(QString::number(glbNodesAdded));
+    Ui.lblNodesUpdated->setText(QString::number(glbNodesUpdated));
+    Ui.lblNodesDeleted->setText(QString::number(glbNodesDeleted));
+    Ui.lblWaysAdded->setText(QString::number(glbWaysAdded));
+    Ui.lblWaysUpdated->setText(QString::number(glbWaysUpdated));
+    Ui.lblWaysDeleted->setText(QString::number(glbWaysDeleted));
+    Ui.lblRelationsAdded->setText(QString::number(glbRelationsAdded));
+    Ui.lblRelationsUpdated->setText(QString::number(glbRelationsUpdated));
+    Ui.lblRelationsDeleted->setText(QString::number(glbRelationsDeleted));
+    Ui.lblAdded->setText(QString::number(glbAdded));
+    Ui.lblUpdated->setText(QString::number(glbUpdated));
+    Ui.lblDeleted->setText(QString::number(glbDeleted));
+
+    //Ui.edChangesetComment->setText(glbChangeSetComment);
+    //Ui.edChangesetComment->selectAll();
+
+    bool ok = false;
+    while (!ok) {
+        if (dlg->exec() == QDialog::Accepted) {
+            /* Dialog was accepted, check for non-empty comment */
+            if (!Ui.edChangesetComment->text().isEmpty()) {
+                glbChangeSetComment = Ui.edChangesetComment->text();
+                ok = true;
+            } else if (QMessageBox::question(NULL,
+                        QApplication::tr("Use empty changeset comment?"),
+                        QApplication::tr("The changeset comment is empty. It's considered a courtesy to your fellow mappers to provide a good comment, so everyone knows what your change does and with what intention.\n"
+                            "Do you still wish to commit empty changeset comment?"), QMessageBox::Yes, QMessageBox::No )
+                    == QMessageBox::Yes
+               ) ok = true;
+        } else break; /* Dialog was cancelled */
+    }
 
     Task = Ui.ChangesList->count();
     SAFE_DELETE(dlg)
@@ -326,6 +345,7 @@ bool DirtyListDescriber::addRoad(Way* R)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","ADD road %1").arg(R->id().numId) + userName(R), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(R->id()));
     ++glbAdded;
+    ++glbWaysAdded;
     return false;
 }
 
@@ -334,6 +354,7 @@ bool DirtyListDescriber::addPoint(Node* Pt)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","ADD trackpoint %1").arg(Pt->id().numId) + userName(Pt), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(Pt->id()));
     ++glbAdded;
+    ++glbNodesAdded;
     return false;
 }
 
@@ -342,6 +363,7 @@ bool DirtyListDescriber::addRelation(Relation* R)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","ADD relation %1").arg(R->id().numId) + userName(R), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(R->id()));
     ++glbAdded;
+    ++glbRelationsAdded;
     return false;
 }
 
@@ -350,6 +372,7 @@ bool DirtyListDescriber::updatePoint(Node* Pt)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","UPDATE trackpoint %1").arg(Pt->id().numId) + userName(Pt), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(Pt->id()));
     ++glbUpdated;
+    ++glbNodesUpdated;
     return false;
 }
 
@@ -358,6 +381,7 @@ bool DirtyListDescriber::updateRelation(Relation* R)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","UPDATE relation %1").arg(R->id().numId) + userName(R), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(R->id()));
     ++glbUpdated;
+    ++glbRelationsUpdated;
     return false;
 }
 
@@ -366,6 +390,7 @@ bool DirtyListDescriber::updateRoad(Way* R)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","UPDATE road %1").arg(R->id().numId) + userName(R), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(R->id()));
     ++glbUpdated;
+    ++glbWaysUpdated;
     return false;
 }
 
@@ -374,6 +399,7 @@ bool DirtyListDescriber::erasePoint(Node* Pt)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","REMOVE trackpoint %1").arg(Pt->id().numId) + userName(Pt), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(Pt->id()));
     ++glbDeleted;
+    ++glbNodesDeleted;
     return false;
 }
 
@@ -382,6 +408,7 @@ bool DirtyListDescriber::eraseRoad(Way* R)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","REMOVE road %1").arg(R->id().numId) + userName(R), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(R->id()));
     ++glbDeleted;
+    ++glbWaysDeleted;
     return false;
 }
 
@@ -390,6 +417,7 @@ bool DirtyListDescriber::eraseRelation(Relation* R)
     QListWidgetItem* it = new QListWidgetItem(QApplication::translate("DirtyListExecutor","REMOVE relation %1").arg(R->id().numId) + userName(R), theListWidget);
     it->setData(Qt::UserRole, QVariant::fromValue(R->id()));
     ++glbDeleted;
+    ++glbRelationsDeleted;
     return false;
 }
 
@@ -482,7 +510,7 @@ bool DirtyListExecutor::executeChanges(QWidget* aParent)
 
 bool DirtyListExecutor::start()
 {
-    ChangeSetId = "";
+    ChangeSetId.clear();
     Progress->setValue(++Done);
 
     qDebug() << QString("OPEN changeset");
@@ -521,7 +549,7 @@ bool DirtyListExecutor::stop()
     QString DataIn, DataOut;
     if (sendRequest("PUT",URL,DataIn,DataOut))
     {
-        ChangeSetId = "";
+        ChangeSetId.clear();
         return true;
     }
 
diff --git a/src/Sync/DirtyListExecutorOSC.cpp b/src/Sync/DirtyListExecutorOSC.cpp
index a261c2a..8007c43 100644
--- a/src/Sync/DirtyListExecutorOSC.cpp
+++ b/src/Sync/DirtyListExecutorOSC.cpp
@@ -177,7 +177,7 @@ bool DirtyListExecutorOSC::executeChanges(QWidget* aParent)
 
 bool DirtyListExecutorOSC::start()
 {
-    ChangeSetId = "";
+    ChangeSetId.clear();
     Progress->setValue(++Done);
     qDebug() << QString("OPEN changeset");
 
@@ -304,7 +304,9 @@ bool DirtyListExecutorOSC::stop()
     URL = theDownloader->getURLToCloseChangeSet(ChangeSetId);
     QUrl theUrl(Web+URL);
     theDownloader->setAnimator(NULL, NULL, NULL, false);
-    theDownloader->request("PUT",theUrl,DataIn, true);
+    if (!theDownloader->request("PUT",theUrl,DataIn)) {
+        QMessageBox::warning(NULL, tr("Changeset could not be closed."), tr("An unknown error has occurred. It might already be closed, or will be closed automatically. If you want to be sure, please, check manually on the osm.org website."));
+    }
 
     return true;
 }
diff --git a/src/Sync/DownloadOSM.cpp b/src/Sync/DownloadOSM.cpp
index 4231e7e..94c7f16 100644
--- a/src/Sync/DownloadOSM.cpp
+++ b/src/Sync/DownloadOSM.cpp
@@ -48,8 +48,7 @@ void Downloader::animate()
 
 void Downloader::setAnimator(QProgressDialog *anAnimator, QLabel* anAnimatorLabel, QProgressBar* anAnimatorBar, bool anAnimate)
 {
-    if (AnimationTimer)
-        delete AnimationTimer;
+    delete AnimationTimer;
 
     AnimatorLabel = anAnimatorLabel;
     AnimatorBar = anAnimatorBar;
@@ -77,10 +76,10 @@ void Downloader::on_Cancel_clicked()
 #include "QTextBrowser"
 
 bool Downloader::go(const QUrl& url) {
-    return request("GET", url, QString(), false);
+    return request("GET", url, QString());
 }
 
-bool Downloader::request(const QString& theMethod, const QUrl& url, const QString& theData, bool FireForget) {
+bool Downloader::request(const QString& theMethod, const QUrl& url, const QString& theData) {
     if (Error) return false;
 
     qDebug() << "Downloader::request: " << url;
@@ -100,9 +99,6 @@ bool Downloader::request(const QString& theMethod, const QUrl& url, const QStrin
         connect(currentReply,SIGNAL(downloadProgress(qint64, qint64)), this,SLOT(progress(qint64, qint64)));
     }
 
-    if (FireForget)
-        return true;
-
     if (Loop.exec() == QDialog::Rejected)
         return false;
 
@@ -115,7 +111,7 @@ bool Downloader::request(const QString& theMethod, const QUrl& url, const QStrin
         LocationText = redir.toString();
         if (!LocationText.isEmpty()) {
             QUrl newUrl(LocationText);
-            return request(theMethod, newUrl, theData, FireForget);
+            return request(theMethod, newUrl, theData);
         }
     }
 
@@ -354,10 +350,30 @@ bool downloadOSM(QWidget* aParent, const QString& aWeb, const QString& aUser, co
     }
     Downloader Rcv(aUser, aPassword);
     QString URL = Rcv.getURLToMap();
-    URL = URL.arg(aBox.bottomLeft().x(), 0, 'f').arg(aBox.bottomLeft().y(), 0, 'f').arg(aBox.topRight().x(), 0, 'f').arg(aBox.topRight().y(), 0, 'f');
 
-    QUrl theUrl(aWeb+URL);
-    return downloadOSM(aParent, theUrl, aUser, aPassword, theDocument, theLayer);
+    if ((fabs(aBox.bottomLeft().x()) < 180.0 && fabs(aBox.topRight().x()) > 180.0) 
+     || (fabs(aBox.bottomLeft().x()) > 180.0 && fabs(aBox.topRight().x()) < 180.0)) {
+        /* Check for +-180 meridian, and split query in two if necessary */
+        int sign = (aBox.bottomLeft().x() > 0) ? 1 : -1;
+        CoordBox q1 = aBox, q2 = aBox;
+        if (aBox.bottomLeft().x() > 0) {
+            q1.setRight(180*sign);
+            q2.setLeft(-180*sign);
+            q2.setRight(q2.right()-360);
+        } else {
+            q1.setLeft(180*sign);
+            q2.setRight(-180*sign);
+            q2.setLeft(q2.left()+360);
+        }
+        return downloadOSM(aParent, aWeb, aUser, aPassword, q1, theDocument, theLayer)
+            && downloadOSM(aParent, aWeb, aUser, aPassword, q2, theDocument, theLayer);
+
+    } else {
+        /* Normal code path */
+        URL = URL.arg(aBox.bottomLeft().x(), 0, 'f').arg(aBox.bottomLeft().y(), 0, 'f').arg(aBox.topRight().x(), 0, 'f').arg(aBox.topRight().y(), 0, 'f');
+        QUrl theUrl(aWeb+URL);
+        return downloadOSM(aParent, theUrl, aUser, aPassword, theDocument, theLayer);
+    }
 }
 
 bool downloadTracksFromOSM(QWidget* Main, const QString& aWeb, const QString& aUser, const QString& aPassword, const CoordBox& aBox , Document* theDocument)
@@ -557,79 +573,6 @@ bool downloadMapdust(MainWindow* Main, const CoordBox& aBox, Document* theDocume
     return OK;
 }
 
-bool downloadOpenstreetbugs(MainWindow* Main, const CoordBox& aBox, Document* theDocument, SpecialLayer* theLayer)
-{
-    QUrl osbUrl;
-
-    osbUrl.setUrl(M_PREFS->getOpenStreetBugsUrl());
-    osbUrl.setPath(osbUrl.path() + "getGPX");
-
-    if (Main)
-        Main->view()->setUpdatesEnabled(false);
-
-    Downloader theDownloader("", "");
-
-    QList<TrackLayer*> theTracklayers;
-    SpecialLayer* trackLayer = theLayer;
-    if (!trackLayer) {
-        SpecialLayer* trackLayer = new SpecialLayer(QApplication::translate("Downloader","OpenStreetBugs"),Layer::OsmBugsLayer);
-        trackLayer->setUploadable(false);
-        theDocument->add(trackLayer);
-    }
-    theTracklayers << trackLayer;
-
-    IProgressWindow* aProgressWindow = dynamic_cast<IProgressWindow*>(Main);
-    if (!aProgressWindow)
-        return false;
-
-    QProgressDialog* dlg = aProgressWindow->getProgressDialog();
-    dlg->setWindowTitle(QApplication::translate("Downloader","Parsing..."));
-
-    QProgressBar* Bar = aProgressWindow->getProgressBar();
-    Bar->setTextVisible(false);
-    Bar->setMaximum(11);
-
-    QLabel* Lbl = aProgressWindow->getProgressLabel();
-    Lbl->setText(QApplication::translate("Downloader","Parsing XML"));
-
-    if (dlg)
-        dlg->show();
-
-    theDownloader.setAnimator(dlg,Lbl,Bar,true);
-    Lbl->setText(QApplication::translate("Downloader","Downloading points"));
-
-#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
-    QUrlQuery theQuery(osbUrl);
-#define theQuery theQuery
-#else
-#define theQuery osbUrl
-#endif
-    theQuery.addQueryItem("t", COORD2STRING(aBox.topRight().y()));
-    theQuery.addQueryItem("l", COORD2STRING(aBox.bottomLeft().x()));
-    theQuery.addQueryItem("b", COORD2STRING(aBox.bottomLeft().y()));
-    theQuery.addQueryItem("r", COORD2STRING(aBox.topRight().x()));
-    theQuery.addQueryItem("open", "yes");
-#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
-    osbUrl.setQuery(theQuery);
-#endif
-#undef theQuery
-
-    if (!theDownloader.go(osbUrl))
-        return false;
-    if (theDownloader.resultCode() != 200)
-        return false;
-    QByteArray Ar(theDownloader.content());
-    bool OK = importGPX(Main, Ar, theDocument, theTracklayers, true);
-
-    if (Main)
-        Main->view()->setUpdatesEnabled(true);
-    if (OK) {
-        if (Main)
-            Main->invalidateView();
-    }
-    return OK;
-}
-
 bool downloadMoreOSM(MainWindow* Main, const CoordBox& aBox , Document* theDocument)
 {
     Layer* theLayer;
@@ -747,12 +690,12 @@ bool downloadOSM(MainWindow* Main, const CoordBox& aBox , Document* theDocument)
             {
                 directAPI = true;
                 directUrl = M_PREFS->getXapiUrl();
-                if (!directUrl.endsWith("/")) directUrl += "/";
+                //if (!directUrl.endsWith("/")) directUrl += "/";
                 directUrl += ui.edXapiUrl->text();
             }
             else if (ui.FromMap->isChecked())
             {
-                QRectF R(SlippyMap->viewArea());
+                QRectF R(SlippyMap->selectedArea());
                 Clip = CoordBox(Coord(R.x(), R.y()), Coord(R.x()+R.width(), R.y()+R.height()));
             }
             if (retry) continue;
diff --git a/src/Sync/DownloadOSM.h b/src/Sync/DownloadOSM.h
index 81f297f..70a8081 100644
--- a/src/Sync/DownloadOSM.h
+++ b/src/Sync/DownloadOSM.h
@@ -30,7 +30,7 @@ class Downloader : public QObject
     public:
         Downloader(const QString& aUser, const QString& aPwd);
 
-        bool request(const QString& theMethod, const QUrl& URL, const QString& Out, bool FireForget=false);
+        bool request(const QString& theMethod, const QUrl& URL, const QString& Out);
         bool go(const QUrl& url);
         QByteArray& content();
         int resultCode();
@@ -80,7 +80,6 @@ bool downloadMoreOSM(MainWindow* Main, const CoordBox& aBox , Document* theDocum
 bool downloadFeatures(MainWindow* Main, const QList<Feature*>& aDownloadList , Document* theDocument);
 bool downloadFeature(MainWindow* Main, const IFeature::FId& id, Document* theDocument, Layer* theLayer=NULL);
 bool downloadFeatures(MainWindow* Main, const QList<IFeature::FId>& aDownloadList, Document* theDocument, Layer* theLayer=NULL);
-bool downloadOpenstreetbugs(MainWindow* Main, const CoordBox& aBox, Document* theDocument, SpecialLayer* theLayer=NULL);
 bool downloadMapdust(MainWindow* Main, const CoordBox& aBox, Document* theDocument, SpecialLayer* theLayer=NULL);
 
 bool checkForConflicts(Document* theDocument);
diff --git a/src/Sync/SyncListDialog.ui b/src/Sync/SyncListDialog.ui
index b41a755..96972ba 100644
--- a/src/Sync/SyncListDialog.ui
+++ b/src/Sync/SyncListDialog.ui
@@ -1,58 +1,261 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>SyncListDialog</class>
- <widget class="QDialog" name="SyncListDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="SyncListDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>300</height>
+    <width>597</width>
+    <height>412</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Upload to Openstreetmap</string>
   </property>
-  <layout class="QVBoxLayout" >
-   <property name="spacing" >
+  <layout class="QVBoxLayout">
+   <property name="spacing">
     <number>4</number>
    </property>
-   <property name="margin" >
+   <property name="margin">
     <number>4</number>
    </property>
    <item>
-    <widget class="QLabel" name="lblChangesetComment" >
-     <property name="text" >
-      <string>Please specify a comment for this changeset.</string>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="lblChangesetComment">
+       <property name="text">
+        <string>Comment</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="edChangesetComment"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_2">
+     <property name="font">
+      <font>
+       <pointsize>8</pointsize>
+      </font>
+     </property>
+     <property name="text">
+      <string>A good comment should concisely and adequately describe the edit.</string>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QLineEdit" name="edChangesetComment" />
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
    </item>
    <item>
-    <widget class="QLabel" name="label" >
-     <property name="text" >
-      <string>Please review carefully the changes sent to OSM</string>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>The following changes will be commited:</string>
      </property>
     </widget>
    </item>
    <item>
-    <widget class="QListWidget" name="ChangesList" />
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="2" column="1">
+      <widget class="QLabel" name="lblNodesAdded">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_4">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Added</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QLabel" name="label_5">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Updated</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QLabel" name="label_6">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Deleted</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="QLabel" name="label_8">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Ways</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="label_7">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Nodes</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QLabel" name="label_9">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Relations</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="2">
+      <widget class="QLabel" name="lblWaysAdded">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="3">
+      <widget class="QLabel" name="lblRelationsAdded">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QLabel" name="lblNodesUpdated">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="2">
+      <widget class="QLabel" name="lblWaysUpdated">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="3">
+      <widget class="QLabel" name="lblRelationsUpdated">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <widget class="QLabel" name="lblNodesDeleted">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="2">
+      <widget class="QLabel" name="lblWaysDeleted">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="3">
+      <widget class="QLabel" name="lblRelationsDeleted">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="4">
+      <widget class="QLabel" name="label_10">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Sum</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="4">
+      <widget class="QLabel" name="lblAdded">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="4">
+      <widget class="QLabel" name="lblUpdated">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="4">
+      <widget class="QLabel" name="lblDeleted">
+       <property name="text">
+        <string notr="true">-</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QListWidget" name="ChangesList"/>
    </item>
    <item>
-    <layout class="QHBoxLayout" >
-     <property name="spacing" >
+    <layout class="QHBoxLayout">
+     <property name="spacing">
       <number>6</number>
      </property>
-     <property name="margin" >
+     <property name="margin">
       <number>0</number>
      </property>
      <item>
       <spacer>
-       <property name="orientation" >
+       <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
-       <property name="sizeHint" stdset="0" >
+       <property name="sizeHint" stdset="0">
         <size>
          <width>131</width>
          <height>31</height>
@@ -61,15 +264,15 @@
       </spacer>
      </item>
      <item>
-      <widget class="QPushButton" name="okButton" >
-       <property name="text" >
+      <widget class="QPushButton" name="okButton">
+       <property name="text">
         <string>OK</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="cancelButton" >
-       <property name="text" >
+      <widget class="QPushButton" name="cancelButton">
+       <property name="text">
         <string>Cancel</string>
        </property>
       </widget>
@@ -86,11 +289,11 @@
    <receiver>SyncListDialog</receiver>
    <slot>accept()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>278</x>
      <y>253</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>96</x>
      <y>254</y>
     </hint>
@@ -102,11 +305,11 @@
    <receiver>SyncListDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>369</x>
      <y>253</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>179</x>
      <y>282</y>
     </hint>
diff --git a/src/TagTemplate/TagTemplate.cpp b/src/TagTemplate/TagTemplate.cpp
index de7b0dd..20a427f 100644
--- a/src/TagTemplate/TagTemplate.cpp
+++ b/src/TagTemplate/TagTemplate.cpp
@@ -34,8 +34,7 @@ TagTemplateWidget::~TagTemplateWidget()
 {
     // No need to delete; will be destroyed automatically by parent + crash if no active widget.
     // delete theMainWidget;
-    for (int i=0; i<theValues.size(); ++i)
-        delete theValues[i];
+    qDeleteAll(theValues);
     delete theSelector;
 }
 
@@ -46,23 +45,24 @@ TagTemplateWidget* TagTemplateWidget::fromXml(const QDomElement& e)
     }
 
     TagTemplateWidget* aTW = NULL;
-    if (e.attribute("type") == "combo") {
+    const QString tp = e.attribute("type");
+    if (tp == "combo") {
         aTW = TagTemplateWidgetCombo::fromXml(e);
     } else
-    if (e.attribute("type") == "yesno") {
+    if (tp == "yesno") {
         aTW = TagTemplateWidgetYesno::fromXml(e);
     } else
-    if (e.attribute("type") == "constant") {
+    if (tp == "constant") {
         aTW = TagTemplateWidgetConstant::fromXml(e);
     } else
-    if (e.attribute("type") == "edit") {
+    if (tp == "edit") {
         aTW = TagTemplateWidgetEdit::fromXml(e);
     } else
         Q_ASSERT(false);
 
     if (aTW) {
         aTW->theId = e.attribute("id");
-        aTW->theType = e.attribute("type");
+        aTW->theType = tp;
         aTW->theTag = e.attribute("tag");
     }
 
@@ -79,7 +79,7 @@ void TagTemplateWidget::parseCommonElements(const QDomElement& e)
     } else
     if (e.tagName() == "selector") {
         theSelector = TagSelector::parse(e.attribute("expr"));
-    }
+    } else
     if (e.tagName() == "value") {
         TagTemplateWidgetValue* aTCV = TagTemplateWidgetValue::fromXml(e);
         if (aTCV)
@@ -475,7 +475,7 @@ QWidget* TagTemplateWidgetConstant::getWidget(const Feature* F, const MapView* V
         else
             aLabel->setText(theDescription);
     } else
-        aValue->setText(QString("<b>%1</b>").arg(F->tagValue(theTag, "")));
+        aValue->setText(QString("<b>%1</b>").arg(F->tagValue(theTag, QString())));
 
     theMainWidget = aValue;
     theLabelWidget = aLabel;
@@ -486,7 +486,7 @@ QWidget* TagTemplateWidgetConstant::getWidget(const Feature* F, const MapView* V
 void TagTemplateWidgetConstant::apply(const Feature* F)
 {
     if (!theValues.count()) {
-        ((QLabel*)theMainWidget)->setText(QString("<b>%1</b>").arg(F->tagValue(theTag, "")));
+        ((QLabel*)theMainWidget)->setText(QString("<b>%1</b>").arg(F->tagValue(theTag, QString())));
         return;
     }
     bool Regexp = false;
@@ -512,7 +512,7 @@ void TagTemplateWidgetConstant::apply(const Feature* F)
             emit tagChanged(theTag, newVal);
         }
     } else
-        ((QLabel*)theMainWidget)->setText(QString("<b>%1</b>").arg(F->tagValue(theTag, "")));
+        ((QLabel*)theMainWidget)->setText(QString("<b>%1</b>").arg(F->tagValue(theTag, QString())));
 }
 
 TagTemplateWidgetConstant* TagTemplateWidgetConstant::fromXml(const QDomElement& e)
@@ -700,7 +700,7 @@ TagSelectorMatchResult TagTemplate::matchesTag(const Feature* F, const MapView*
         {
             if (const Relation* Parent = dynamic_cast<const Relation*>(R->getParent(i)))
                 if (!Parent->isDeleted())
-                    if (Parent->tagValue("type","") == "multipolygon")
+                    if (Parent->tagValue("type",QString()) == "multipolygon")
                         return TagSelect_NoMatch;
         }
     }
@@ -709,7 +709,7 @@ TagSelectorMatchResult TagTemplate::matchesTag(const Feature* F, const MapView*
     // Special casing for multipolygon relations
     if (const Relation* R = dynamic_cast<const Relation*>(F))
     {
-        if (R->tagValue("type","") == "multipolygon") {
+        if (R->tagValue("type",QString()) == "multipolygon") {
             for (int i=0; i<R->size(); ++i)
                 if (!R->get(i)->isDeleted())
                     if ((res = theSelector->matches(R->get(i),V->pixelPerM())))
@@ -857,10 +857,8 @@ TagTemplates::TagTemplates()
 
 TagTemplates::~TagTemplates()
 {
-    for (int i=0; i< widgets.size(); ++i)
-        delete widgets[i];
-    for (int i=0; i< items.size(); ++i)
-        delete items[i];
+    qDeleteAll(widgets);
+    qDeleteAll(items);
 }
 
 QWidget* TagTemplates::getWidget(const Feature* F, const MapView* V)
diff --git a/src/Tools/QFatFs/QFat.cpp b/src/Tools/QFatFs/QFat.cpp
index 47fe4e7..3f17280 100644
--- a/src/Tools/QFatFs/QFat.cpp
+++ b/src/Tools/QFatFs/QFat.cpp
@@ -288,7 +288,7 @@ FatError QFat::setCurrentTocs(const QString &path)
         m_curTocsPath = path;
         return FatNoError;
     } else {
-        m_curTocsPath = "";
+        m_curTocsPath.clear();
         return FatDirNotFound;
     }
 }
diff --git a/src/Utils/EditCompleterDelegate.cpp b/src/Utils/EditCompleterDelegate.cpp
index b6dd43f..01799df 100644
--- a/src/Utils/EditCompleterDelegate.cpp
+++ b/src/Utils/EditCompleterDelegate.cpp
@@ -109,7 +109,7 @@ void EditCompleterDelegate::setModelData(QWidget* editor, QAbstractItemModel* mo
             newVal = edit->text();
 
     if (newVal == index.model()->data(index).toString()) return;
-    if (!newVal.isEmpty())
+    if (!newVal.isEmpty() || index.column() == 1)
         model->setData(index, newVal);
 }
 
diff --git a/src/Utils/OsmLink.cpp b/src/Utils/OsmLink.cpp
index df961b6..dfad6c3 100644
--- a/src/Utils/OsmLink.cpp
+++ b/src/Utils/OsmLink.cpp
@@ -107,6 +107,47 @@ QString OsmLink::parseUrl(QUrl theUrl)
         qreal spanLon = spn[1].toDouble(&parseOk);                  PARSE_ERROR(spn[1]);
 
         setMinMax(lat-spanLat, lon-spanLon/2, lat+spanLat, lon+spanLon/2);
+    } else if (theUrl.host().contains("mapy.cz")) {
+
+        qreal zoom = theQuery.queryItemValue("z").toInt(&parseOk);   ARG_VALID(zoom);
+        qreal lat = theQuery.queryItemValue("y").toDouble(&parseOk); ARG_VALID(lat);
+        qreal lon = theQuery.queryItemValue("x").toDouble(&parseOk); ARG_VALID(lon);
+
+        setLatLonZoom(lat, lon, zoom);
+    } else if (theUrl.toString().contains("/#map=")) {
+        // http://www.openstreetmap.org/#map=<zoom>/<lat>/<lon>
+        QRegExp rx("/#map=([0-9]+)/([0-9.]+)/([0-9.]+)$");
+        if (rx.indexIn(theUrl.toString()) >= 0) {
+            qreal zoom = rx.cap(1).toUInt(&parseOk); PARSE_ERROR(rx.cap(1));
+            qreal lat = rx.cap(2).toDouble(&parseOk); PARSE_ERROR(rx.cap(2));
+            qreal lon = rx.cap(3).toDouble(&parseOk); PARSE_ERROR(rx.cap(3));
+
+            setLatLonZoom(lat, lon, zoom);
+      }
+    } else if (theUrl.toString().contains("/maps/@")) {
+        // https://www.google.de/maps/@<lat>,<lon>,<zoom>z
+        QRegExp rx("/maps/@([0-9.]+),([0-9.]+),([0-9.]+)z$");
+        if (rx.indexIn(theUrl.toString()) >= 0) {
+            qreal lat = rx.cap(1).toDouble(&parseOk); PARSE_ERROR(rx.cap(1));
+            qreal lon = rx.cap(2).toDouble(&parseOk); PARSE_ERROR(rx.cap(2));
+            qreal zoom = rx.cap(3).toDouble(&parseOk); PARSE_ERROR(rx.cap(3));
+
+            setLatLonZoom(lat, lon, zoom);
+        }
+    } else if (theUrl.toString().startsWith("geo:")) {
+        // geo:<lat>,<lon>?z=<zoom>
+        QRegExp rx("^geo:([0-9.]+),([0-9.]+)");
+        if (rx.indexIn(theUrl.toString()) >= 0) {
+            qreal lat = rx.cap(1).toDouble(&parseOk); PARSE_ERROR(rx.cap(1));
+            qreal lon = rx.cap(2).toDouble(&parseOk); PARSE_ERROR(rx.cap(2));
+            qreal zoom = 16; // default value
+
+            rx.setPattern("\\?z=([0-9]+)$");
+            if (rx.indexIn(theUrl.toString()) >= 0)
+                zoom = rx.cap(1).toUInt(&parseOk); PARSE_ERROR(rx.cap(1));
+
+            setLatLonZoom(lat, lon, zoom);
+        }
     }
 #undef theQuery
     return QString("Unrecognised URL: %1").arg(theUrl.toString());
diff --git a/src/Utils/SlippyMapWidget.cpp b/src/Utils/SlippyMapWidget.cpp
index ebf4716..b34edfa 100644
--- a/src/Utils/SlippyMapWidget.cpp
+++ b/src/Utils/SlippyMapWidget.cpp
@@ -13,7 +13,7 @@
 
 #define TILESIZE 256
 #define MINZOOMLEVEL 0
-#define MAXZOOMLEVEL 17
+#define MAXZOOMLEVEL 19
 
 
 /* SLIPPYMAPWIDGET */
@@ -22,7 +22,7 @@ class SlippyMapWidgetPrivate
 {
     public:
         SlippyMapWidgetPrivate(SlippyMapWidget* w)
-            : theWidget(w), InDrag(false)
+            : theWidget(w), InDrag(false), InSelection(false)
         {
             Sets = M_PREFS->getQSettings();
             Sets->beginGroup("SlippyMapWidget");
@@ -50,6 +50,13 @@ class SlippyMapWidgetPrivate
         int Zoom, VpZoom;
         qreal Lat,Lon, VpLat, VpLon;
         QPoint PreviousDrag;
+        /* Used only during selection */
+        bool InSelection;
+        QPoint SelectionStart, SelectionEnd;
+
+        /* Current selection in coordinates */
+        QRectF CurrentSelectionCoord;
+
         bool InDrag;
         QSettings* Sets;
 };
@@ -80,8 +87,6 @@ SlippyMapWidget::SlippyMapWidget(QWidget* aParent)
 {
     p = new SlippyMapWidgetPrivate(this);
     theSlippyCache->setMap(p);
-    setContextMenuPolicy (Qt::CustomContextMenu);
-    connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(on_customContextMenuRequested(const QPoint &)));
     resize(500,400);
 }
 
@@ -114,21 +119,22 @@ static int lat2tile(qreal lat, int z)
     return (int)(floor((1.0 - log( tan(lat * M_PI/180.0) + 1.0 / cos(lat * M_PI/180.0)) / M_PI) / 2.0 * pow(2.0, z)));
 }
 
-
-QRectF SlippyMapWidget::viewArea() const
+static qreal long2tileF(qreal lon, int z)
 {
-    qreal X1 = p->Lat - (width()/2.0)/TILESIZE;
-    qreal Y1 = p->Lon - (height()/2.0)/TILESIZE;
-    qreal X2 = p->Lat + (width()/2.0)/TILESIZE;
-    qreal Y2 = p->Lon + (height()/2.0)/TILESIZE;
+    return (lon + 180.0) / 360.0 * pow(2.0, z);
+}
 
-    qreal Lon1 = tile2lon(X1, p->Zoom);
-    qreal Lat1 = tile2lat(Y1, p->Zoom);
+static qreal lat2tileF(qreal lat, int z)
+{
+    return (1.0 - log( tan(lat * M_PI/180.0) + 1.0 / cos(lat * M_PI/180.0)) / M_PI) / 2.0 * pow(2.0, z);
+}
 
-    qreal Lon2 = tile2lon(X2, p->Zoom);
-    qreal Lat2 = tile2lat(Y2, p->Zoom);
 
-    return QRectF(Lon1, Lat2, Lon2-Lon1, Lat1-Lat2);
+QRectF SlippyMapWidget::selectedArea()
+{
+    if (p->CurrentSelectionCoord.isNull())
+        makeSelection(QRect(0,0,width(),height()));
+    return p->CurrentSelectionCoord;
 }
 
 void SlippyMapWidget::setViewportArea(QRectF theRect)
@@ -149,20 +155,22 @@ void SlippyMapWidget::paintEvent(QPaintEvent*)
 {
     QPainter Painter(this);
     Painter.fillRect(QRect(0,0,width(),height()),QColor(255,255,255));
-    int LatRect = int(floor(p->Lat));
-    int LatPixel = int(-(p->Lat - LatRect ) * TILESIZE + width()/2);
     int LonRect = int(floor(p->Lon));
-    int LonPixel = int(-(p->Lon - LonRect ) * TILESIZE + height()/2);
+    int LonPixel = int(-(p->Lon - LonRect ) * TILESIZE + width()/2);
+    int LatRect = int(floor(p->Lat));
+    int LatPixel = int(-(p->Lat - LatRect ) * TILESIZE + height()/2);
+
     while (LatPixel > 0)
         LatPixel -=TILESIZE, --LatRect;
     while (LonPixel > 0)
         LonPixel -= TILESIZE, --LonRect;
-    for (int x=LatPixel; x<width(); x += TILESIZE)
-        for (int y=LonPixel; y<height(); y+= TILESIZE)
+
+    for (int x=LonPixel; x<width(); x += TILESIZE)
+        for (int y=LatPixel; y<height(); y+= TILESIZE)
         {
-            int ThisLatRect = LatRect + (x-LatPixel)/TILESIZE;
-            int ThisLonRect = LonRect + (y-LonPixel)/TILESIZE;
-            QPixmap* img = p->getImage(ThisLatRect,ThisLonRect);
+            int ThisLonRect = LonRect + (x-LonPixel)/TILESIZE;
+            int ThisLatRect = LatRect + (y-LatPixel)/TILESIZE;
+            QPixmap* img = p->getImage(ThisLonRect,ThisLatRect);
             if (img)
                 Painter.drawPixmap(x,y,*img);
             delete img;
@@ -183,6 +191,16 @@ void SlippyMapWidget::paintEvent(QPaintEvent*)
     Painter.setPen(QPen(Qt::black, 3));
     Painter.setBrush(Qt::NoBrush);
     Painter.drawText(QPoint(width()-21,(height()/2)+10), "V");
+
+    if (p->InSelection) {
+        Painter.setPen(QPen(Qt::blue, 1, Qt::DashLine));
+        Painter.drawRect(QRect(p->SelectionStart, p->SelectionEnd));
+    } else if (!p->CurrentSelectionCoord.isNull()) {
+        Painter.setPen(QPen(Qt::blue, 1));
+        QPoint topLeft     = coord2relative(p->CurrentSelectionCoord.topLeft());
+        QPoint bottomRight = coord2relative(p->CurrentSelectionCoord.bottomRight());
+        Painter.drawRect(QRect(topLeft, bottomRight));
+    }
 }
 
 void SlippyMapWidget::ZoomTo(const QPoint & NewCenter, int NewZoom)
@@ -197,12 +215,24 @@ void SlippyMapWidget::ZoomTo(const QPoint & NewCenter, int NewZoom)
     qreal dx = (NewCenter.x()-width()/2)/(TILESIZE*1.0);
     qreal dy = (NewCenter.y()-height()/2)/(TILESIZE*1.0);
 
-    p->Lat = (p->Lat + dx) * (1 << NewZoom) / (1 << p->Zoom) - dx;
-    p->Lon = (p->Lon + dy) * (1 << NewZoom) / (1 << p->Zoom) - dy;
+    p->Lon = (p->Lon + dx) * (1 << NewZoom) / (1 << p->Zoom) - dx;
+    p->Lat = (p->Lat + dy) * (1 << NewZoom) / (1 << p->Zoom) - dy;
     p->Zoom = NewZoom;
+    normalizeCoordinates();
     update();
 }
 
+/* The Lat and Lon coordinates are in fact tile coordinates. The valid range for
+ * world is 0 to 2^zoom-1. Make sure it's so!
+ */
+void SlippyMapWidget::normalizeCoordinates(void) {
+    unsigned limit = (1 << p->Zoom);
+    if (p->Lon < 0) p->Lon = 0;
+    if (p->Lat < 0) p->Lat = 0;
+    if (p->Lon > limit) p->Lon = limit;
+    if (p->Lat > limit) p->Lat = limit;
+}
+
 void SlippyMapWidget::wheelEvent(QWheelEvent* ev)
 {
     int NewZoom = ev->delta()/120 + p->Zoom;
@@ -212,16 +242,9 @@ void SlippyMapWidget::wheelEvent(QWheelEvent* ev)
 
 void SlippyMapWidget::mousePressEvent(QMouseEvent* ev)
 {
-    if (ev->button() == Qt::MidButton)
-    {
-        ZoomTo(ev->pos(), p->Zoom + 1);
-    }
-//	else if (ev->button() == Qt::RightButton)
-//	{
-//		ZoomTo(ev->pos(), p->Zoom - 1);
-//	}
-    else
-    {
+    if (ev->button() == Qt::MidButton) {
+        on_resetViewAction_triggered(true);
+    } else if (ev->button() == Qt::LeftButton) {
         if (ev->pos().x() > width()-20)
         {
             if (ev->pos().y() < 20)
@@ -238,53 +261,116 @@ void SlippyMapWidget::mousePressEvent(QMouseEvent* ev)
             }
             else if ((ev->pos().y() > (height()/2)-20) && (ev->pos().y() < (height()/2)))
             {
-                p->Lat = p->VpLon;
-                p->Lon = p->VpLat;
+                p->Lon = p->VpLon;
+                p->Lat = p->VpLat;
                 p->Zoom = p->VpZoom;
+                normalizeCoordinates();
                 update();
                 emit redraw();
                 return;
             }
         }
+
+        /* No special place, start selection */
+        p->InSelection = true;
+        p->SelectionStart = p->SelectionEnd = ev->pos();
+        qDebug() << "Enter selection";
+    } else {
+        /* RightButton, start drag */
         p->PreviousDrag = ev->pos();
+        p->InDrag = true;
     }
     emit redraw();
 }
 
+/* TODO: relative2coord could be split off this */
+void SlippyMapWidget::makeSelection(const QRect& relative) {
+    /* Compute viewport boundingbox */
+    qreal X1 = p->Lon - (width()/2.0)/TILESIZE;
+    qreal Y1 = p->Lat - (height()/2.0)/TILESIZE;
+    qreal X2 = p->Lon + (width()/2.0)/TILESIZE;
+    qreal Y2 = p->Lat + (height()/2.0)/TILESIZE;
+
+    /* Actual difference per pixel */
+    qreal xpixel = (X2-X1)/width();
+    qreal ypixel = (Y2-Y1)/height();
+
+    /* Shift the border according to relative */
+    X1 += xpixel * relative.topLeft().x();
+    Y1 += ypixel * relative.topLeft().y();
+    X2 -= xpixel * (width() - relative.bottomRight().x());
+    Y2 -= ypixel * (height() - relative.bottomRight().y());
+
+    qreal Lon1 = tile2lon(X1, p->Zoom);
+    qreal Lat1 = tile2lat(Y1, p->Zoom);
+
+    qreal Lon2 = tile2lon(X2, p->Zoom);
+    qreal Lat2 = tile2lat(Y2, p->Zoom);
+
+    /* Save the selection */
+    p->CurrentSelectionCoord =  QRectF(Lon1, Lat2, Lon2-Lon1, Lat1-Lat2);
+
+    qDebug() << "Selection rectangle: " << p->CurrentSelectionCoord;
+}
+
+/* Convert absolute coordinates to relative (to the widget) */
+QPoint SlippyMapWidget::coord2relative(const QPointF& coord) const {
+    /* Convert into local coordinate */
+    qreal X = long2tileF(coord.x(), p->Zoom);
+    qreal Y = lat2tileF(coord.y(), p->Zoom);
+
+    /* p->Lon and p->Lat are the center, but in the same units as X and Y. */
+    X -= p->Lon;
+    Y -= p->Lat;
+
+    /* Now, the p->Lon and p->Lat is equal to width()/2 and height()/2, and X
+     * and Y are the distance in multiples of TILESIZE */
+    QPoint pt(X*TILESIZE, Y*TILESIZE);
+
+    /* Finally shift it relative to topLeft */
+    return pt+QPoint(width()/2, height()/2);
+}
+
 void SlippyMapWidget::mouseReleaseEvent(QMouseEvent*)
 {
+    if (p->InSelection) {
+        QRect SelectionRect(p->SelectionStart, p->SelectionEnd);
+        if (SelectionRect.width() && SelectionRect.height()) {
+            makeSelection(SelectionRect);
+            update();
+            emit redraw();
+        } else {
+            /* Default to full viewport */
+            makeSelection(QRect(0, 0, width(), height()));
+        }
+    }
     p->InDrag = false;
+    p->InSelection = false;
 }
 
 void SlippyMapWidget::mouseMoveEvent(QMouseEvent* ev)
 {
-    QPoint Delta = ev->pos()-p->PreviousDrag;
-    if (!Delta.isNull())
-    {
-        p->InDrag = true;
-        p->Lat -= Delta.x()/(TILESIZE*1.);
-        p->Lon -= Delta.y()/(TILESIZE*1.);
-        p->PreviousDrag = ev->pos();
-        update();
-        emit redraw();
+    if (p->InDrag) {
+        QPoint Delta = ev->pos()-p->PreviousDrag;
+        if (!Delta.isNull())
+        {
+            p->Lon -= Delta.x()/(TILESIZE*1.);
+            p->Lat -= Delta.y()/(TILESIZE*1.);
+            p->PreviousDrag = ev->pos();
+            update();
+            emit redraw();
+        }
+    } else if (p->InSelection) {
+       p->SelectionEnd = ev->pos();
+       update();
+       emit redraw();
     }
 }
 
-void SlippyMapWidget::on_customContextMenuRequested(const QPoint & pos)
-{
-    QMenu menu;
-
-    QAction* resetViewAction = new QAction(tr("Reset view"), this);
-    connect(resetViewAction, SIGNAL(triggered(bool)), this, SLOT(on_resetViewAction_triggered(bool)));
-
-    menu.addAction(resetViewAction);
-    menu.exec(mapToGlobal(pos));
-}
-
 void SlippyMapWidget::on_resetViewAction_triggered(bool)
 {
-    p->Lat = 1.0;
     p->Lon = 1.0;
+    p->Lat = 1.0;
     p->Zoom = 1;
     update();
 }
@@ -334,7 +420,9 @@ void SlippyMapCache::preload(const Coord& C, const QString& Filename)
 
 void SlippyMapCache::on_requestFinished(QNetworkReply *reply)
 {
-    qDebug() << "Finished with error code" << reply->error();
+    if (reply->error() != QNetworkReply::NoError) {
+        qWarning() << "SlippyMap: Finished with error code " << reply->error() << ": " << reply->errorString();
+    }
     if (reply == DownloadReply)
     {
         DownloadBusy = false;
@@ -413,7 +501,7 @@ void SlippyMapCache::startDownload()
             Queue.erase(Queue.begin());
             QUrl reqUrl(baseUrl);
             reqUrl.setPath(QString("/%1/%2/%3.png").arg(DownloadCoord.Zoom).arg(DownloadCoord.X).arg(DownloadCoord.Y));
-            qDebug() << "Starting download with url: " << reqUrl;
+            //qDebug() << "Starting download with url: " << reqUrl;
             QNetworkRequest req(reqUrl);
             req.setRawHeader(QByteArray("User-Agent"), USER_AGENT.toLatin1());
             DownloadReply = Download.get(req);
diff --git a/src/Utils/SlippyMapWidget.h b/src/Utils/SlippyMapWidget.h
index fad2c13..1f9d7bd 100644
--- a/src/Utils/SlippyMapWidget.h
+++ b/src/Utils/SlippyMapWidget.h
@@ -72,7 +72,7 @@ class SlippyMapWidget :	public QWidget
         bool isDragging();
 
         void setViewportArea(QRectF theRect);
-        QRectF viewArea() const;
+        QRectF selectedArea();
 
         static SlippyMapCache* theSlippyCache;
 
@@ -82,9 +82,11 @@ class SlippyMapWidget :	public QWidget
     private:
         SlippyMapWidgetPrivate* p;
         void ZoomTo(const QPoint & NewCenter, int NewZoom);
+        void normalizeCoordinates(void);
+        void makeSelection(const QRect& relative);
+        QPoint coord2relative(const QPointF &coord) const;
 
     private slots:
-        virtual void on_customContextMenuRequested(const QPoint & pos);
         virtual void on_resetViewAction_triggered(bool);
 };
 
diff --git a/src/Utils/TagSelector.cpp b/src/Utils/TagSelector.cpp
index 6e1f81b..a49ed2a 100644
--- a/src/Utils/TagSelector.cpp
+++ b/src/Utils/TagSelector.cpp
@@ -24,7 +24,7 @@ bool canParseSymbol(const QString& Expression, int& idx, char Symbol)
 
 bool canParseString(const QString& Expression, int& idx, QString& Key)
 {
-    Key = "";
+    Key.clear();
     skipWhite(Expression,idx);
     if (idx >= Expression.length())
         return false;
@@ -49,7 +49,7 @@ bool canParseString(const QString& Expression, int& idx, QString& Key)
 
 bool canParseValue(const QString& Expression, int& idx, QString& Key)
 {
-    Key = "";
+    Key.clear();
     skipWhite(Expression,idx);
     if (idx >= Expression.length())
         return false;
@@ -168,7 +168,7 @@ TagSelectorIsOneOf* parseTagSelectorIsOneOf(const QString& Expression, int& idx)
         return 0;
     if (!canParseSymbol(Expression, idx, '('))
         return 0;
-    QList<QString> Values;
+    QStringList Values;
     while (true)
     {
         QString Value;
@@ -773,18 +773,12 @@ TagSelectorMatchResult TagSelectorOperator::matches(const IFeature* F, qreal Pix
 
 QString TagSelectorOperator::asExpression(bool) const
 {
-    QString R;
-    R += "[";
-    R += Key;
-    R += "]";
-    R += Oper;
-    R += Value;
-    return R;
+    return "[" + Key + "]" + Oper + Value;
 }
 
 /* TAGSELECTORISONEOF */
 
-TagSelectorIsOneOf::TagSelectorIsOneOf(const QString& key, const QList<QString>& values)
+TagSelectorIsOneOf::TagSelectorIsOneOf(const QString& key, const QStringList& values)
     : Key(key), Values(values)
     , specialKey(TagSelectKey_None)
     , specialValue(TagSelectValue_None)
@@ -875,18 +869,7 @@ TagSelectorMatchResult TagSelectorIsOneOf::matches(const IFeature* F, qreal /*Pi
 
 QString TagSelectorIsOneOf::asExpression(bool) const
 {
-    QString R;
-    R += "[";
-    R += Key;
-    R += "] isoneof (";
-    for (int i=0; i<Values.size(); ++i)
-    {
-        if (i)
-            R += " , ";
-        R += Values[i];
-    }
-    R += ")";
-    return R;
+    return "[" + Key + "] isoneof (" + Values.join(" , ") + ")";
 }
 
 /* TAGSELECTORTYPEIS */
@@ -920,10 +903,7 @@ TagSelectorMatchResult TagSelectorTypeIs::matches(const IFeature* F, qreal /*Pix
 
 QString TagSelectorTypeIs::asExpression(bool) const
 {
-    QString R;
-    R += "Type is ";
-    R += Type;
-    return R;
+    return "Type is " + Type;
 }
 
 /* TAGSELECTORHASTAGS */
@@ -950,9 +930,7 @@ TagSelectorMatchResult TagSelectorHasTags::matches(const IFeature* F, qreal /*Pi
 
 QString TagSelectorHasTags::asExpression(bool) const
 {
-    QString R;
-    R += "HasTags";
-    return R;
+    return "HasTags";
 }
 
 /* TAGSELECTOROR */
@@ -964,8 +942,7 @@ TagSelectorOr::TagSelectorOr(const QList<TagSelector*> terms)
 
 TagSelectorOr::~TagSelectorOr()
 {
-    for (int i=0; i<Terms.size(); ++i)
-        delete Terms[i];
+    qDeleteAll(Terms);
 }
 
 TagSelector* TagSelectorOr::copy() const
@@ -1010,8 +987,7 @@ TagSelectorAnd::TagSelectorAnd(const QList<TagSelector*> terms)
 
 TagSelectorAnd::~TagSelectorAnd()
 {
-    for (int i=0; i<Terms.size(); ++i)
-        delete Terms[i];
+    qDeleteAll(Terms);
 }
 
 TagSelector* TagSelectorAnd::copy() const
@@ -1071,12 +1047,8 @@ TagSelectorMatchResult TagSelectorNot::matches(const IFeature* F, qreal PixelPer
 QString TagSelectorNot::asExpression(bool /* Precedence */) const
 {
     if (!Term)
-        return "";
-    QString R;
-    R += "not(";
-    R += Term->asExpression(true);
-    R += ")";
-    return R;
+        return QString();
+    return "not(" + Term->asExpression(true) + ")";
 }
 
 /* TAGSELECTORPARENT */
@@ -1116,12 +1088,8 @@ TagSelectorMatchResult TagSelectorParent::matches(const IFeature* F, qreal Pixel
 QString TagSelectorParent::asExpression(bool /* Precedence */) const
 {
     if (!Term)
-        return "";
-    QString R;
-    R += " parent(";
-    R += Term->asExpression(true);
-    R += ")";
-    return R;
+        return QString();
+    return " parent(" + Term->asExpression(true) + ")";
 }
 
 /* TAGSELECTORFALSE */
@@ -1142,9 +1110,7 @@ TagSelectorMatchResult TagSelectorFalse::matches(const IFeature* /* F */, qreal
 
 QString TagSelectorFalse::asExpression(bool /* Precedence */) const
 {
-    QString R;
-    R += " false ";
-    return R;
+    return " false ";
 }
 
 /* TAGSELECTORTRUE */
@@ -1165,9 +1131,7 @@ TagSelectorMatchResult TagSelectorTrue::matches(const IFeature* /* F */, qreal /
 
 QString TagSelectorTrue::asExpression(bool /* Precedence */) const
 {
-    QString R;
-    R += " true ";
-    return R;
+    return " true ";
 }
 
 /* TAGSELECTORDEFAULT */
@@ -1198,9 +1162,6 @@ TagSelectorMatchResult TagSelectorDefault::matches(const IFeature* F, qreal Pixe
 
 QString TagSelectorDefault::asExpression(bool /* Precedence */) const
 {
-    QString R;
-    R += " [Default] ";
-    R += Term->asExpression(true);
-    return R;
+    return " [Default] " + Term->asExpression(true);
 }
 
diff --git a/src/Utils/TagSelector.h b/src/Utils/TagSelector.h
index 24b3e07..92493e7 100644
--- a/src/Utils/TagSelector.h
+++ b/src/Utils/TagSelector.h
@@ -83,7 +83,7 @@ class TagSelectorOperator : public TagSelector
 class TagSelectorIsOneOf : public TagSelector
 {
     public:
-        TagSelectorIsOneOf(const QString& key, const QList<QString>& values);
+        TagSelectorIsOneOf(const QString& key, const QStringList& values);
 
         virtual TagSelector* copy() const;
         virtual TagSelectorMatchResult matches(const IFeature* F, qreal PixelPerM) const;
@@ -91,9 +91,9 @@ class TagSelectorIsOneOf : public TagSelector
 
     private:
         QList<QRegExp> rxv;
-        QList<QString> exactMatchv;
+        QStringList exactMatchv;
         QString Key;
-        QList<QString> Values;
+        QStringList Values;
         TagSelectorSpecialKey specialKey;
         TagSelectorSpecialValue specialValue;
 };
diff --git a/src/common/AboutDialog.ui b/src/common/AboutDialog.ui
index 710c121..6a81361 100644
--- a/src/common/AboutDialog.ui
+++ b/src/common/AboutDialog.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>435</width>
+    <width>525</width>
     <height>469</height>
    </rect>
   </property>
@@ -23,50 +23,90 @@
       <enum>QLayout::SetMinimumSize</enum>
      </property>
      <item>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
+      <layout class="QGridLayout" name="gridLayout">
+       <property name="horizontalSpacing">
+        <number>20</number>
+       </property>
+       <property name="verticalSpacing">
+        <number>-1</number>
+       </property>
+       <item row="2" column="1">
+        <widget class="QLabel" name="Proj4Version">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size:small; font-weight:bold; }</string>
+         </property>
+         <property name="text">
+          <string notr="true">%1</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
         <widget class="QLabel" name="Version">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size:small; font-weight:bold; }</string>
+         </property>
          <property name="text">
-          <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:small; font-style:italic;">Merkaartor version</span><span style=" font-size:8pt;"> </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:small; font-weight:600;">%1</span></p></body></html></string>
+          <string notr="true">%1</string>
          </property>
         </widget>
        </item>
-       <item>
-        <widget class="QLabel" name="QTVersion">
+       <item row="0" column="0">
+        <widget class="QLabel" name="VersionLabel">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size: x-small; font-style: italic; }</string>
+         </property>
          <property name="text">
-          <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:small;"><span style=" font-style:italic;">Qt version</span> </p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:small;"><span style=" font-weight:600;">%1</span> (built with <span style=" font-weight:600;">%2</span>)</p></body></html></string>
+          <string>Merkaartor version</string>
          </property>
         </widget>
        </item>
-       <item>
-        <widget class="QLabel" name="Proj4Version">
+       <item row="1" column="1">
+        <widget class="QLabel" name="QTVersion">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size:small; font-weight:bold; }</string>
+         </property>
          <property name="text">
-          <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">PROJ4 version</span><br /><span style=" font-weight:600;">%1</span></p></body></html></string>
+          <string notr="true">%1 (%2)</string>
          </property>
         </widget>
        </item>
-       <item>
+       <item row="3" column="1">
         <widget class="QLabel" name="GdalVersion">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size:small; font-weight:bold; }</string>
+         </property>
          <property name="text">
-          <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">GDAL version</span><br /><span style=" font-weight:600;">%1</span></p></body></html></string>
+          <string notr="true">%1</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="QTVersionLabel">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size: x-small; font-style: italic; }</string>
+         </property>
+         <property name="text">
+          <string>Qt version</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <widget class="QLabel" name="Proj4VersionLabel">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size: x-small; font-style: italic; }</string>
+         </property>
+         <property name="text">
+          <string>PROJ.4 version</string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
+        <widget class="QLabel" name="GdalVersionLabel">
+         <property name="styleSheet">
+          <string notr="true">QLabel { font-size: x-small; font-style: italic; }</string>
+         </property>
+         <property name="text">
+          <string>GDAL version</string>
          </property>
         </widget>
        </item>
@@ -100,7 +140,7 @@ p, li { white-space: pre-wrap; }
         </size>
        </property>
        <property name="text">
-        <string>TextLabel</string>
+        <string notr="true">TextLabel</string>
        </property>
       </widget>
      </item>
@@ -116,18 +156,17 @@ p, li { white-space: pre-wrap; }
    <item>
     <widget class="QLabel" name="label_3">
      <property name="text">
-      <string>This program is licensed under the GNU Public License v2</string>
+      <string>This program is licensed under the GNU General Public License v2</string>
      </property>
     </widget>
    </item>
    <item>
     <widget class="QLabel" name="lblUrl">
      <property name="text">
-      <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://merkaartor.be"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://merkaartor.be</span></a></p></body></html></string>
+      <string notr="true"><a href="http://merkaartor.be/">http://merkaartor.be/</a></string>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
      </property>
      <property name="textInteractionFlags">
       <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
diff --git a/src/common/Document.cpp b/src/common/Document.cpp
index d17072d..a7f2406 100644
--- a/src/common/Document.cpp
+++ b/src/common/Document.cpp
@@ -154,7 +154,7 @@ void Document::lockPainters() {
 }
 
 void Document::lockPaintersForWrite() {
-    qDebug() << "LockW";
+    p->theFeaturePaintersLock.lockForWrite();
 }
 
 const Painter* Document::getPainter(int i)
@@ -736,9 +736,6 @@ bool Document::importKML(const QString& filename, TrackLayer* NewLayer)
 #ifndef _MOBILE
 bool Document::importGDAL(const QString& filename, DrawingLayer* NewLayer)
 {
-    Q_UNUSED(filename)
-    Q_UNUSED(NewLayer)
-
     ImportExportGdal imp(this);
     if (!imp.loadFile(filename))
         return false;
diff --git a/src/common/FeatureManipulations.cpp b/src/common/FeatureManipulations.cpp
index 6f3d066..34c5270 100644
--- a/src/common/FeatureManipulations.cpp
+++ b/src/common/FeatureManipulations.cpp
@@ -398,7 +398,7 @@ static void handleWaysplitRelations(Document* theDocument, CommandList* theList,
 
 static void splitRoad(Document* theDocument, CommandList* theList, Way* In, const QList<Node*>& Points, QList<Way*>& Result)
 {
-    int pos;
+    int pos = 0;
     if (In->isClosed()) {  // Special case: If area, rotate the area so that the start node is the first point of splitting
 
         QList<Node*> Target;
@@ -1544,6 +1544,7 @@ void terraceArea(Document* theDocument, CommandList* theList, PropertiesDock* th
 
     qreal longestLen = 0.0f;
     unsigned int sides[2];
+    sides[0] = 0;
     for (int i = 0; i < theArea->size()-1; ++i) {
         const Coord p1(theArea->getNode(i)->position());
         const Coord p2(theArea->getNode(i+1)->position());
diff --git a/src/common/Global.cpp b/src/common/Global.cpp
index b731c13..cda7146 100644
--- a/src/common/Global.cpp
+++ b/src/common/Global.cpp
@@ -74,12 +74,12 @@ void g_removeFromTagList(quint32 k, quint32 v)
         tagList.remove(k);
 }
 
-QList<QString> g_getTagKeys()
+QStringList g_getTagKeys()
 {
     return tagKeys;
 }
 
-QList<QString> g_getTagValues()
+QStringList g_getTagValues()
 {
     return tagValues;
 }
diff --git a/src/common/Global.h b/src/common/Global.h
index a0e5696..89ecfe3 100644
--- a/src/common/Global.h
+++ b/src/common/Global.h
@@ -40,8 +40,8 @@ extern MainWindow* g_Merk_MainWindow;
 
 extern QPair<quint32, quint32> g_addToTagList(QString k, QString v);
 extern void g_removeFromTagList(quint32 k, quint32 v);
-extern QList<QString> g_getTagKeys();
-extern QList<QString> g_getTagValues();
+extern QStringList g_getTagKeys();
+extern QStringList g_getTagValues();
 extern const QString& g_getTagKey(int idx);
 extern quint32 g_getTagKeyIndex(const QString& s);
 extern QStringList g_getTagKeyList();
diff --git a/src/common/MapView.cpp b/src/common/MapView.cpp
index c016d73..f488782 100644
--- a/src/common/MapView.cpp
+++ b/src/common/MapView.cpp
@@ -136,7 +136,7 @@ MapView::MapView(QWidget* parent) :
 
 
     p->osmLayer = new OsmRenderLayer(this);
-    connect(p->osmLayer, SIGNAL(renderingDone()), SLOT(update()));
+    connect(p->osmLayer, SIGNAL(renderingDone()), SLOT(renderingDone()));
 }
 
 MapView::~MapView()
@@ -543,6 +543,11 @@ void MapView::drawLatLonGrid(QPainter & P)
     P.restore();
 }
 
+void MapView::drawFeaturesSync(QPainter & P) {
+    while (!p->osmLayer->isRenderingDone());
+    p->osmLayer->drawImage(&P);
+}
+
 void MapView::drawFeatures(QPainter & P)
 {
     p->osmLayer->drawImage(&P);
@@ -848,14 +853,14 @@ void MapView::on_MoveLeft_activated()
     QPoint p(rect().width()/4,0);
     panScreen(p);
 
-//    invalidate(true, true, true);
+    invalidate(true, true, true);
 }
 void MapView::on_MoveRight_activated()
 {
     QPoint p(-rect().width()/4,0);
     panScreen(p);
 
-//    invalidate(true, true, true);
+    invalidate(true, true, true);
 }
 
 void MapView::on_MoveUp_activated()
@@ -863,7 +868,7 @@ void MapView::on_MoveUp_activated()
     QPoint p(0,rect().height()/4);
     panScreen(p);
 
-//    invalidate(true, true, true);
+    invalidate(true, true, true);
 }
 
 void MapView::on_MoveDown_activated()
@@ -871,7 +876,7 @@ void MapView::on_MoveDown_activated()
     QPoint p(0,-rect().height()/4);
     panScreen(p);
 
-//    invalidate(true, true, true);
+    invalidate(true, true, true);
 }
 
 void MapView::zoomIn()
@@ -884,6 +889,10 @@ void MapView::zoomOut()
     zoom(M_PREFS->getZoomOut()/100., rect().center());
 }
 
+void MapView::renderingDone() {
+    update();
+}
+
 bool MapView::isSelectionLocked()
 {
     return SelectionLocked;
@@ -1134,6 +1143,14 @@ void MapView::setRenderOptions(const RendererOptions &opt)
     p->ROptions = opt;
 }
 
+void MapView::stopRendering() {
+    p->osmLayer->stopRendering();
+}
+
+void MapView::resumeRendering() {
+    p->osmLayer->resumeRendering();
+}
+
 qreal MapView::nodeWidth()
 {
     return p->NodeWidth;
diff --git a/src/common/MapView.h b/src/common/MapView.h
index 7b3c6cf..0101a8f 100644
--- a/src/common/MapView.h
+++ b/src/common/MapView.h
@@ -38,6 +38,7 @@ public:
     void setInteraction(Interaction* anInteraction);
 
     void drawFeatures(QPainter & painter);
+    void drawFeaturesSync(QPainter & P);
     void drawLatLonGrid(QPainter & painter);
     void drawDownloadAreas(QPainter & painter);
     void drawScale(QPainter & painter);
@@ -88,6 +89,9 @@ public:
     RendererOptions renderOptions();
     void setRenderOptions(const RendererOptions& opt);
 
+    void stopRendering();
+    void resumeRendering();
+
     qreal nodeWidth();
 
     QString toPropertiesHtml();
@@ -124,6 +128,8 @@ public slots:
     virtual void zoomIn();
     virtual void zoomOut();
 
+    virtual void renderingDone();
+
 signals:
     void viewportChanged();
 
diff --git a/src/common/Projection.cpp b/src/common/Projection.cpp
index dc4d085..e984d80 100644
--- a/src/common/Projection.cpp
+++ b/src/common/Projection.cpp
@@ -26,6 +26,7 @@ Projection::Projection(void)
     pj_set_searchpath(1, &proj_dir);
 #endif // Q_OS_WIN
 
+
 #ifndef _MOBILE
     theProj = NULL;
     theWGS84Proj = Projection::getProjection("+proj=longlat +ellps=WGS84 +datum=WGS84");
@@ -35,8 +36,17 @@ Projection::Projection(void)
 
 Projection::~Projection(void)
 {
+    /* TODO: pj_free should be called, but it segfaults if two of the same
+     * Projection objects have the same projPJ. A better machinism, perhaps
+     * projPJ caching, should be provided.
+     *
+     * In the meantime, pj_free is not called, which does little harm as it's
+     * usually called at exit only.
+     * */
 #ifndef _MOBILE
-    pj_free(theProj);
+    if (theProj) {
+        //pj_free(theProj);
+    }
 #endif // _MOBILE
 }
 
diff --git a/src/common/TagModel.cpp b/src/common/TagModel.cpp
index dfd40bd..a31f791 100644
--- a/src/common/TagModel.cpp
+++ b/src/common/TagModel.cpp
@@ -6,6 +6,7 @@
 #include "Document.h"
 #include "Feature.h"
 #include "Layer.h"
+#include <QMessageBox>
 
 TagModel::TagModel(MainWindow* aMain)
 : Main(aMain)
@@ -70,7 +71,7 @@ QVariant TagModel::data(const QModelIndex &index, int role) const
             if (index.column() == 0)
                 return newKeyText();
             else
-                return "";
+                return QString();
         }
         else
         {
@@ -83,7 +84,7 @@ QVariant TagModel::data(const QModelIndex &index, int role) const
     else if (role == Qt::EditRole)
     {
         if (index.row() >= Tags.size())
-            return "";
+            return QString();
         else
         {
             if (index.column() == 0)
@@ -121,6 +122,16 @@ bool TagModel::setData(const QModelIndex &index, const QVariant &value, int role
     if (!theFeatures.size()) return false;
     if (index.isValid() && role == Qt::EditRole)
     {
+        /* Check if one of the same name already exists */
+        if (index.column() == 0) {
+            for (int i = 0; i < Tags.size(); i++) {
+                if ((i != index.row()) && (Tags[i].first == value.toString())) {
+                    QMessageBox::warning(NULL, tr("Tag editor"), tr("Tag with this name already exists."));
+                    return false;
+                }
+            }
+        }
+
         if ((int)index.row() == Tags.size())
         {
             if (index.column() == 0)
diff --git a/src/merkaartor.desktop b/src/merkaartor.desktop
index 4eaa998..ecc40a8 100644
--- a/src/merkaartor.desktop
+++ b/src/merkaartor.desktop
@@ -10,4 +10,4 @@ Exec=merkaartor
 Terminal=false
 StartupNotify=false
 Categories=Education;Geography;Network;Qt;
-
+Keywords=OSM;GIS;Map;Geo;
diff --git a/src/qextserialport/posix_qextserialport.cpp b/src/qextserialport/posix_qextserialport.cpp
index ce92fae..989ee7d 100644
--- a/src/qextserialport/posix_qextserialport.cpp
+++ b/src/qextserialport/posix_qextserialport.cpp
@@ -823,7 +823,7 @@ bool Posix_QextSerialPort::open(OpenMode mode)
         Posix_File->setFileName(port);
         qDebug("Trying to open File");
         if (Posix_File->open(QIODevice::ReadWrite|QIODevice::Unbuffered)) {
-            qDebug("Opened File succesfully");
+            qDebug("Opened File successfully");
             /*set open mode*/
             QIODevice::open(mode);
 
diff --git a/src/src.pro b/src/src.pro
index 2cdbfc1..64ca8a7 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -6,6 +6,13 @@ include (Config.pri)
 #Custom config
 include(Custom.pri)
 
+CONFIG += debug_and_release
+
+# This is a workaround to get qDebug() to stdout on Windows
+win32 {
+	CONFIG += console
+}
+
 isEmpty(SYSTEM_QTSA) {
   include(../3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.pri)
 } else {
@@ -15,7 +22,11 @@ isEmpty(SYSTEM_QUAZIP) {
   DEFINES += QUAZIP_STATIC
   include(../3rdparty/quazip-0.7/quazip.pri)
 } else {
-  LIBS += -lquazip
+  isEmpty(SYSTEM_QUAZIP_LDFLAGS) {
+      LIBS += -lquazip
+  } else {
+      LIBS += $$SYSTEM_QUAZIP_LDFLAGS
+  }
 }
 
 #Qt Version
@@ -77,6 +88,9 @@ macx {
     QMAKE_INFO_PLIST = $$PWD/../macos/Info.plist
     # This is where we get the the ports from
     INCLUDEPATH += /opt/local/include
+    # Stuff from homebrew comes from here
+    INCLUDEPATH += /usr/local/include
+    LIBS += -L/usr/local/lib
 }
 
 contains(NVIDIA_HACK,1) {
@@ -164,13 +178,6 @@ win32 {
 }
 
 
-unix {
-    CONFIG += link_pkgconfig
-    PKGCONFIG += sqlite3
-}
-win32 {
-    LIBS += -lsqlite3
-}
 
 DEFINES += SHARE_DIR=$${SHARE_DIR}
 INSTALLS += target
@@ -180,6 +187,7 @@ win32-msvc* {
 }
 
 TRANSLATIONS += \
+    ../translations/merkaartor_en.ts \
     ../translations/merkaartor_ar.ts \
     ../translations/merkaartor_cs.ts \
     ../translations/merkaartor_de.ts \
@@ -200,6 +208,7 @@ TRANSLATIONS += \
     ../translations/merkaartor_pt_BR.ts \
 
 BINTRANSLATIONS += \
+    ../translations/merkaartor_en.qm \
     ../translations/merkaartor_ar.qm \
     ../translations/merkaartor_cs.qm \
     ../translations/merkaartor_de.qm \
@@ -257,16 +266,20 @@ unix {
     QMAKE_CFLAGS += $$system(gdal-config --cflags)
 }
 
+# Setup the PROJ.4
 LIBS += -lproj
+PKGCONFIG += proj
 
 contains (SPATIALITE, 1) {
     DEFINES += USE_SPATIALITE
     unix {
         CONFIG += link_pkgconfig
         PKGCONFIG += spatialite
+        PKGCONFIG += sqlite3
     }
     win32 {
         LIBS += -lspatialite
+        LIBS += -lsqlite3
     }
 }
 contains (PROTOBUF, 1) {
@@ -282,9 +295,58 @@ contains (PROTOBUF, 1) {
 unix:!macx {
     desktop.path = $${PREFIX}/share/applications
     desktop.files = merkaartor.desktop
-    desktopicons.path = $${PREFIX}/share/icons/hicolor/48x48/apps/
-    desktopicons.files = $$PWD/../Icons/48x48/merkaartor.png
-    INSTALLS += desktop desktopicons
+    desktopicon8x8.path = $${PREFIX}/share/icons/hicolor/8x8/apps/
+    desktopicon8x8.files = $$PWD/../Icons/8x8/merkaartor.png
+    desktopicon16x16.path = $${PREFIX}/share/icons/hicolor/16x16/apps/
+    desktopicon16x16.files = $$PWD/../Icons/16x16/merkaartor.png
+    desktopicon22x22.path = $${PREFIX}/share/icons/hicolor/22x22/apps/
+    desktopicon22x22.files = $$PWD/../Icons/22x22/merkaartor.png
+    desktopicon24x24.path = $${PREFIX}/share/icons/hicolor/24x24/apps/
+    desktopicon24x24.files = $$PWD/../Icons/24x24/merkaartor.png
+    desktopicon32x32.path = $${PREFIX}/share/icons/hicolor/32x32/apps/
+    desktopicon32x32.files = $$PWD/../Icons/32x32/merkaartor.png
+    desktopicon36x36.path = $${PREFIX}/share/icons/hicolor/36x36/apps/
+    desktopicon36x36.files = $$PWD/../Icons/36x36/merkaartor.png
+    desktopicon40x40.path = $${PREFIX}/share/icons/hicolor/40x40/apps/
+    desktopicon40x40.files = $$PWD/../Icons/40x40/merkaartor.png
+    desktopicon42x42.path = $${PREFIX}/share/icons/hicolor/42x42/apps/
+    desktopicon42x42.files = $$PWD/../Icons/42x42/merkaartor.png
+    desktopicon48x48.path = $${PREFIX}/share/icons/hicolor/48x48/apps/
+    desktopicon48x48.files = $$PWD/../Icons/48x48/merkaartor.png
+    desktopicon64x64.path = $${PREFIX}/share/icons/hicolor/64x64/apps/
+    desktopicon64x64.files = $$PWD/../Icons/64x64/merkaartor.png
+    desktopicon72x72.path = $${PREFIX}/share/icons/hicolor/72x72/apps/
+    desktopicon72x72.files = $$PWD/../Icons/72x72/merkaartor.png
+    desktopicon80x80.path = $${PREFIX}/share/icons/hicolor/80x80/apps/
+    desktopicon80x80.files = $$PWD/../Icons/80x80/merkaartor.png
+    desktopicon96x96.path = $${PREFIX}/share/icons/hicolor/96x96/apps/
+    desktopicon96x96.files = $$PWD/../Icons/96x96/merkaartor.png
+    desktopicon128x128.path = $${PREFIX}/share/icons/hicolor/128x128/apps/
+    desktopicon128x128.files = $$PWD/../Icons/128x128/merkaartor.png
+    desktopicon192x192.path = $${PREFIX}/share/icons/hicolor/192x192/apps/
+    desktopicon192x192.files = $$PWD/../Icons/192x192/merkaartor.png
+    desktopicon256x256.path = $${PREFIX}/share/icons/hicolor/256x256/apps/
+    desktopicon256x256.files = $$PWD/../Icons/256x256/merkaartor.png
+    desktopicon512x512.path = $${PREFIX}/share/icons/hicolor/512x512/apps/
+    desktopicon512x512.files = $$PWD/../Icons/512x512/merkaartor.png
+    INSTALLS += desktop \
+                desktopicon8x8 \
+                desktopicon16x16 \
+                desktopicon22x22 \
+                desktopicon24x24 \
+                desktopicon32x32 \
+                desktopicon36x36 \
+                desktopicon40x40 \
+                desktopicon42x42 \
+                desktopicon48x48 \
+                desktopicon64x64 \
+                desktopicon72x72 \
+                desktopicon80x80 \
+                desktopicon96x96 \
+                desktopicon128x128 \
+                desktopicon192x192 \
+                desktopicon256x256 \
+                desktopicon512x512
 }
 
 
diff --git a/translations/README b/translations/README
deleted file mode 100644
index a7c000f..0000000
--- a/translations/README
+++ /dev/null
@@ -1,25 +0,0 @@
-Merkaartor stores translations in the .ts files from Qt and the .mat files of
-templates. Translations can be done using linguist and hand written XML directly
-in SVN or using Launchpad (preferred way) at
-https://translations.launchpad.net/merkaartor/trunk
-
-The script in this directory allows to convert between the two XML file types
-and the standard gettext .po files.
-
-The templates and the main translations are separated in two different sets
-(name templates and merkaartor). These two should not be mixed.
-
-Synchronisation may be like following:
-  - Update whole merkaartor svn using "svn update" in root directory
-  - Remove old stuff: make clean
-  - Download po-files from Launchpad and store them in this directory
-  - Call conversion: make
-  - Checkin modified templates (in ../Templates) and .ts files
-  - Upload changed .po and .pot files to launchpad
-
-Conflict solving:
-  - When no translations have been changed in SVN, then "all p(o)" may be
-    choosen
-  - When local changes have been done, conflicts should be solved one-by-one
-  - "all up(s)tream" should only be choosen when you synchonised data directly
-    before you started to make local translations.
diff --git a/translations/README.md b/translations/README.md
new file mode 100644
index 0000000..e6f15a9
--- /dev/null
+++ b/translations/README.md
@@ -0,0 +1,25 @@
+Merkaartor currently uses Qt Linguist and Transifex to translate stuff. Although
+you might be tempted to change translations in git repo directly, please don't.
+Translation files are meant to be updated via Transifex.com only, and pulled
+into the repository before version release.
+
+The regular workflow is:
+
+0) From time to time, update translation files on Transifex:
+    
+    $ lupdate -no-obsolete Merkaartor.pro
+    $ tx push -s
+
+   This pushes the original english strings to Transifex, updating the database and
+   allowing new strings to be downloaded.
+
+1) Before release, Transifex data should be pulled and commited into the
+repository. This is not necessary, but serves as a backup in case something
+terrible happens to Transifex.
+
+    $ tx pull
+    $ git commit translations/*.ts
+
+2) During release, the regular qt tools are used to bundle translations. Care
+should be taken to include new translations in Merkaartor.pro, so the .qm files
+get generated properly.
diff --git a/translations/merkaartor_ar.ts b/translations/merkaartor_ar.ts
index 939d0a0..666cc9f 100644
--- a/translations/merkaartor_ar.ts
+++ b/translations/merkaartor_ar.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ar">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="ar" version="2.0">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -15,8 +13,8 @@
 p, li { white-space: pre-wrap; }
 </style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:small; font-style:italic;">Merkaartor version</span><span style=" font-size:8pt;"> </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:small; font-weight:600;">%1%2(%3)</span></p></body></html></source>
-        <translation type="unfinished"></translation>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:small; font-weight:600;">%1</span></p></body></html></source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/AboutDialog.ui" line="42"/>
@@ -26,57 +24,57 @@ p, li { white-space: pre-wrap; }
 </style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:small;"><span style=" font-style:italic;">Qt version</span> </p>
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:small;"><span style=" font-weight:600;">%1</span> (built with <span style=" font-weight:600;">%2</span>)</p></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="65"/>
+        <location filename="../src/common/AboutDialog.ui" line="54"/>
         <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
 p, li { white-space: pre-wrap; }
 </style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">PROJ4 version</span><br /><span style=" font-weight:600;">%1</span></p></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="76"/>
+        <location filename="../src/common/AboutDialog.ui" line="65"/>
         <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
 p, li { white-space: pre-wrap; }
 </style></head><body style=" font-size:small; font-weight:400; font-style:normal;">
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">GDAL version</span><br /><span style=" font-weight:600;">%1</span></p></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="114"/>
+        <location filename="../src/common/AboutDialog.ui" line="103"/>
         <source>TextLabel</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="../src/common/AboutDialog.ui" line="123"/>
-        <source>Copyright Bart Vanhauwaert, Chris Browet and others, 2006-2012</source>
-        <translation type="unfinished"></translation>
+    <message utf8="true">
+        <location filename="../src/common/AboutDialog.ui" line="112"/>
+        <source>Copyright Bart Vanhauwaert, Chris Browet, Ladislav Láska and others, 2006-2015</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="130"/>
-        <source>This program is licensed under the GNU Public License v2</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/common/AboutDialog.ui" line="119"/>
+        <source>This program is licensed under the GNU General Public License v2</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="137"/>
+        <location filename="../src/common/AboutDialog.ui" line="126"/>
         <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
 p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://merkaartor.be"><span style=" font-size:8pt; text-decoration: underline; color:#0000ff;">http://merkaartor.be</span></a></p></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="157"/>
+        <location filename="../src/common/AboutDialog.ui" line="146"/>
         <source>Changelog</source>
         <translation>سجل التغييرات</translation>
     </message>
     <message>
-        <location filename="../src/common/AboutDialog.ui" line="200"/>
+        <location filename="../src/common/AboutDialog.ui" line="189"/>
         <source>OK</source>
         <translation>مُوافق</translation>
     </message>
@@ -84,93 +82,123 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>ActionsDialog</name>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="20"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="21"/>
         <source>Description</source>
         <translation>الوصف</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="20"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="21"/>
         <source>Shortcut</source>
         <translation>الإختصار</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="41"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="46"/>
         <source>&Import</source>
         <translation>إ&ستيراد</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="42"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="47"/>
         <source>&Export</source>
         <translation>&صدّر</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="43"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="48"/>
         <source>&Default</source>
         <translation>&غيابي</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="44"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="49"/>
         <source>&OK</source>
         <translation>&موافق</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="45"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="50"/>
         <source>&Cancel</source>
         <translation>إل&غاء</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="72"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="77"/>
         <source>Shortcut Editor</source>
         <translation>محرّر الإختصار</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="116"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="121"/>
         <source>Load Shortcut scheme</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="116"/>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="143"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="121"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="148"/>
         <source>Merkaartor shortcut scheme (*.mss)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="120"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="125"/>
         <source>Unable to open file</source>
         <translation>غير قادر على فتح الملف</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="120"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="125"/>
         <source>%1 could not be opened.</source>
         <translation>لم أستطع فتح %1</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="143"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="148"/>
         <source>Save Shortcut scheme</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="143"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="148"/>
         <source>untitled</source>
         <translation>غير معنون</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="143"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="148"/>
         <source>All Files (*)</source>
         <translation>كلّ الملفات (*)</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="159"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="164"/>
         <source>Unable to open save file</source>
         <translation>غير قادر على فتح ملف الحفظ</translation>
     </message>
     <message>
-        <location filename="../src/Tools/ActionsDialog.cpp" line="159"/>
+        <location filename="../src/Tools/ActionsDialog.cpp" line="164"/>
         <source>%1 could not be opened for writing.</source>
         <translation>إستحالة فتح %1 للكتابة.</translation>
     </message>
 </context>
 <context>
+    <name>BuildBridgeInteraction</name>
+    <message>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="106"/>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="131"/>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="138"/>
+        <source>BridgeBuilder</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="106"/>
+        <source>Sorry, I don't know how to build bridge from THAT. Please, give me two nodes only.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="111"/>
+        <source>Convert segment to bridge</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="131"/>
+        <source>Selected segment is already tagged as bridge/tunnel. Please, make sure you know what you're doing.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="138"/>
+        <source>Unsupported action: The bridge does not seem to be a single way.</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
     <name>Command</name>
     <message>
         <location filename="../src/Commands/Command.cpp" line="25"/>
@@ -214,24 +242,17 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="../src/Docks/DirtyDock.cpp" line="67"/>
         <source>There is <b>no</b> dirty object</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/DirtyDock.cpp" line="70"/>
         <source>There is <b>one</b> dirty object</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message numerus="yes">
         <location filename="../src/Docks/DirtyDock.cpp" line="74"/>
         <source>There are <b>%n</b> dirty objects</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-        </translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message>
         <location filename="../src/Docks/DirtyDock.cpp" line="194"/>
@@ -261,9 +282,9 @@ p, li { white-space: pre-wrap; }
         <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
 p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;">
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">There is <span style=" font-weight:600;">no</span> dirty object</p></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/DirtyDock.ui" line="60"/>
@@ -274,7 +295,7 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>DirtyLayerWidget</name>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="641"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="642"/>
         <source>Zoom</source>
         <translation>التكبير</translation>
     </message>
@@ -363,6 +384,11 @@ API message is '%1'</source>
 رسالة الــAPI هي '%1'</translation>
     </message>
     <message>
+        <location filename="../src/Sync/DirtyList.cpp" line="464"/>
+        <source>Uploading changes...</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <location filename="../src/Sync/DirtyList.cpp" line="490"/>
         <source>OPEN changeset</source>
         <translation>إفتح حزمة تغييرات</translation>
@@ -372,11 +398,6 @@ API message is '%1'</source>
         <source>CLOSE changeset</source>
         <translation>أغلق حزمة التغييرات</translation>
     </message>
-    <message>
-        <location filename="../src/Sync/DirtyList.cpp" line="464"/>
-        <source>Uploading changes...</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>DirtyListExecutorOSC</name>
@@ -411,12 +432,12 @@ API message is '%1'</source>
         <source>There was an error uploading this request (%1)
 "%2"
 Please redownload the problematic feature to handle the conflict.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="102"/>
         <source>Checking changes...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="184"/>
@@ -477,97 +498,97 @@ Please redownload the problematic feature to handle the conflict.</source>
 <context>
     <name>Document</name>
     <message>
-        <location filename="../src/common/Document.cpp" line="88"/>
-        <location filename="../src/common/Document.cpp" line="100"/>
-        <location filename="../src/common/Document.cpp" line="110"/>
+        <location filename="../src/common/Document.cpp" line="91"/>
+        <location filename="../src/common/Document.cpp" line="103"/>
+        <location filename="../src/common/Document.cpp" line="113"/>
         <source>untitled</source>
         <translation>غير معنون</translation>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="152"/>
-        <location filename="../src/common/Document.cpp" line="480"/>
+        <location filename="../src/common/Document.cpp" line="173"/>
+        <location filename="../src/common/Document.cpp" line="501"/>
         <source>Dirty layer</source>
         <translation>طبقة الخرطوش</translation>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="155"/>
+        <location filename="../src/common/Document.cpp" line="176"/>
         <source>Uploaded layer</source>
         <translation>حمّلت الطبقة</translation>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="352"/>
+        <location filename="../src/common/Document.cpp" line="373"/>
         <source>Background imagery</source>
         <translation>الصور الخلفية</translation>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="369"/>
+        <location filename="../src/common/Document.cpp" line="390"/>
         <source>Drawing layer #%1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="378"/>
+        <location filename="../src/common/Document.cpp" line="399"/>
         <source>Filter layer #%1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="572"/>
+        <location filename="../src/common/Document.cpp" line="593"/>
         <source>OSM Export</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="582"/>
+        <location filename="../src/common/Document.cpp" line="603"/>
         <source>Exporting OSM...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="878"/>
+        <location filename="../src/common/Document.cpp" line="899"/>
         <source>Document</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1215"/>
+        <location filename="../src/common/Document.cpp" line="1229"/>
         <source>History rebuild: Create node %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1221"/>
+        <location filename="../src/common/Document.cpp" line="1235"/>
         <source>History rebuild: Update node %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1227"/>
+        <location filename="../src/common/Document.cpp" line="1241"/>
         <source>History rebuild: Delete node %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1233"/>
+        <location filename="../src/common/Document.cpp" line="1247"/>
         <source>History rebuild: Create way %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1239"/>
+        <location filename="../src/common/Document.cpp" line="1253"/>
         <source>History rebuild: Update way %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1245"/>
+        <location filename="../src/common/Document.cpp" line="1259"/>
         <source>History rebuild: Delete way %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1251"/>
+        <location filename="../src/common/Document.cpp" line="1265"/>
         <source>History rebuild: Create relation %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1257"/>
+        <location filename="../src/common/Document.cpp" line="1271"/>
         <source>History rebuild: Update relation %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/Document.cpp" line="1263"/>
+        <location filename="../src/common/Document.cpp" line="1277"/>
         <source>History rebuild: Delete relation %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -595,12 +616,12 @@ Please redownload the problematic feature to handle the conflict.</source>
     <message>
         <location filename="../src/common/DownloadMapDialog.ui" line="74"/>
         <source>WWW link (OSM/Google maps)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/DownloadMapDialog.ui" line="88"/>
         <source>Xapi selector</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/DownloadMapDialog.ui" line="100"/>
@@ -621,251 +642,232 @@ Please redownload the problematic feature to handle the conflict.</source>
 <context>
     <name>Downloader</name>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="492"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="498"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="504"/>
-        <source>Download failed</source>
-        <translation>فشل عملية التنزيل</translation>
+        <location filename="../src/ImportExport/ImportExportOSC.cpp" line="64"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="449"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="637"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="760"/>
+        <source>%1 download</source>
+        <translation>تنزيل %1</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="200"/>
-        <source>error</source>
-        <translation>خطأ</translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="340"/>
+        <source>Downloading unresolved...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="204"/>
-        <source>didn't download enough</source>
-        <translation>لم أنزل الكافي</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="../src/Sync/DownloadOSM.cpp" line="331"/>
-        <source>Downloading from OSM (%n bytes)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <location filename="../src/Sync/DownloadOSM.cpp" line="333"/>
-        <source>Downloading from OSM (%n kBytes)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-        </translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="347"/>
+        <source>Downloading unresolved %1 of %2</source>
+        <translation>نزّل الـ %1 غير المحلول من %2</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="459"/>
-        <source>Downloading from OSM (connecting)</source>
-        <translation>جاري التنزيل من OSM (جاري الإتصال)</translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="356"/>
+        <source>Parsing unresolved %1 of %2</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="489"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="501"/>
-        <source>Unexpected http status code (%1)
-Server message is '%2'</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="460"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="375"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="513"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="586"/>
+        <source>Parsing...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="491"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="503"/>
-        <source>
-API message is '%1'</source>
-        <translation>
-رسالة الــAPI هي '%1'</translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="466"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="382"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="520"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="593"/>
+        <source>Parsing XML</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="498"/>
-        <source>Username/password invalid</source>
-        <translation>فشل إسم المستخدم/كلمة المرور</translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="474"/>
+        <source>Conflicts from %1</source>
+        <translation>تناقض من %1</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="516"/>
-        <source>Unresolved conflicts</source>
-        <translation>تناقضات غير محلولة</translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="544"/>
+        <source>Empty roads/relations detected</source>
+        <translation>إكتشاف طرقات/علاقات فارغة</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="516"/>
-        <source>Please resolve existing conflicts first</source>
-        <translation>الرجاء حلّ التناقضات الموجودة أولاً</translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="545"/>
+        <source>Empty roads/relations are probably errors.
+Do you want to mark them for deletion?</source>
+        <translation>إحتمال أن تكون الطرقات/العلاقات خطأ
+هل تريد وضع علامة عليهم للمحو ؟</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="667"/>
-        <source>MapDust</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="553"/>
+        <source>Remove empty feature %1</source>
+        <translation>أمحي الميزة الفارغة %1</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="728"/>
-        <source>OpenStreetBugs</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="565"/>
+        <source>Conflicts have been detected</source>
+        <translation>تمّ إكتشاف تناقد</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="690"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="752"/>
-        <source>Downloading points</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/ImportExport/ImportOSM.cpp" line="566"/>
+        <source>This means that some of the feature you modified since your last download have since been modified by someone else on the server.
+The features have been duplicated as "conflict_..." on the "Conflicts..." layer.
+Before being able to upload your changes, you will have to manually merge the two versions and remove the one from the "Conflicts..." layer.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="460"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="546"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="684"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="746"/>
-        <source>Parsing XML</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="141"/>
+        <source>Uploading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="554"/>
-        <source>Downloading trackpoints %1-%2</source>
-        <translation>جاري تنزيل نقاط الأثر %1-%2</translation>
+        <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="166"/>
+        <source>Preparing changes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="573"/>
-        <source>Downloaded track - nodes %1-%2</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="168"/>
+        <source>Waiting for server response</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportExportOSC.cpp" line="63"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="613"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="779"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="901"/>
-        <source>%1 download</source>
-        <translation>تنزيل %1</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="124"/>
+        <source>error</source>
+        <translation>خطأ</translation>
     </message>
-    <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="341"/>
-        <source>Downloading unresolved %1 of %2</source>
-        <translation>نزّل الـ %1 غير المحلول من %2</translation>
+    <message numerus="yes">
+        <location filename="../src/Sync/DownloadOSM.cpp" line="166"/>
+        <source>Downloading from OSM (%n bytes)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/Sync/DownloadOSM.cpp" line="168"/>
+        <source>Downloading from OSM (%n kBytes)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="350"/>
-        <source>Parsing unresolved %1 of %2</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="288"/>
+        <source>Downloading...</source>
+        <translation>جاري التنزيل...</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="468"/>
-        <source>Conflicts from %1</source>
-        <translation>تناقض من %1</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="298"/>
+        <source>Downloading from OSM (connecting)</source>
+        <translation>جاري التنزيل من OSM (جاري الإتصال)</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="559"/>
-        <source>Conflicts have been detected</source>
-        <translation>تمّ إكتشاف تناقد</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="325"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="337"/>
+        <source>Unexpected http status code (%1)
+Server message is '%2'</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="560"/>
-        <source>This means that some of the feature you modified since your last download have since been modified by someone else on the server.
-The features have been duplicated as "conflict_..." on the "Conflicts..." layer.
-Before being able to upload your changes, you will have to manually merge the two versions and remove the one from the "Conflicts..." layer.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="327"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="339"/>
+        <source>
+API message is '%1'</source>
+        <translation>
+رسالة الــAPI هي '%1'</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="538"/>
-        <source>Empty roads/relations detected</source>
-        <translation>إكتشاف طرقات/علاقات فارغة</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="328"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="334"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="340"/>
+        <source>Download failed</source>
+        <translation>فشل عملية التنزيل</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="539"/>
-        <source>Empty roads/relations are probably errors.
-Do you want to mark them for deletion?</source>
-        <translation>إحتمال أن تكون الطرقات/العلاقات خطأ
-هل تريد وضع علامة عليهم للمحو ؟</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="334"/>
+        <source>Username/password invalid</source>
+        <translation>فشل إسم المستخدم/كلمة المرور</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="547"/>
-        <source>Remove empty feature %1</source>
-        <translation>أمحي الميزة الفارغة %1</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="352"/>
+        <source>Unresolved conflicts</source>
+        <translation>تناقضات غير محلولة</translation>
     </message>
     <message>
-        <location filename="../src/Utils/SlippyMapWidget.cpp" line="69"/>
-        <source>Downloading %1,%2 (zoom %3)...</source>
-        <translation>جاري تنزيل %1,%2 (نسبة التكبير/التصغير %3)...</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="352"/>
+        <source>Please resolve existing conflicts first</source>
+        <translation>الرجاء حلّ التناقضات الموجودة أولاً</translation>
     </message>
     <message>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="449"/>
-        <source>Downloading...</source>
-        <translation>جاري التنزيل...</translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="390"/>
+        <source>Downloading trackpoints %1-%2</source>
+        <translation>جاري تنزيل نقاط الأثر %1-%2</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="454"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="539"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="677"/>
-        <location filename="../src/Sync/DownloadOSM.cpp" line="739"/>
-        <source>Parsing...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="409"/>
+        <source>Downloaded track - nodes %1-%2</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportOSM.cpp" line="334"/>
-        <source>Downloading unresolved...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="503"/>
+        <source>MapDust</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="141"/>
-        <source>Uploading...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="526"/>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="599"/>
+        <source>Downloading points</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="166"/>
-        <source>Preparing changes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Sync/DownloadOSM.cpp" line="575"/>
+        <source>OpenStreetBugs</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Sync/DirtyListExecutorOSC.cpp" line="168"/>
-        <source>Waiting for server response</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Utils/SlippyMapWidget.cpp" line="69"/>
+        <source>Downloading %1,%2 (zoom %3)...</source>
+        <translation>جاري تنزيل %1,%2 (نسبة التكبير/التصغير %3)...</translation>
     </message>
 </context>
 <context>
     <name>DrawingLayerWidget</name>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="305"/>
-        <source>Close</source>
-        <translation>أغلِق</translation>
-    </message>
-    <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="300"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="301"/>
         <source>Zoom</source>
         <translation>التكبير</translation>
     </message>
+    <message>
+        <location filename="../src/Layers/LayerWidget.cpp" line="306"/>
+        <source>Close</source>
+        <translation>أغلِق</translation>
+    </message>
 </context>
 <context>
     <name>EditInteraction</name>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="277"/>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="279"/>
         <source>Cannot delete</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="277"/>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="279"/>
         <source>Cannot delete the selection because it is outside the downloaded area.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="280"/>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="282"/>
         <source>Cannot delete everything</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="281"/>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="283"/>
         <source>The complete selection cannot be deleted because part of it is outside the downloaded area.
 Delete what can be?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="326"/>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="328"/>
         <source>Reverse way %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="326"/>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="328"/>
         <source>Reverse %1 ways</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -916,12 +918,17 @@ Delete what can be?</source>
     <message>
         <location filename="../src/Docks/FeaturesDock.cpp" line="433"/>
         <source>Download missing children</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/FeaturesDock.cpp" line="434"/>
+        <source>Add to selection</source>
+        <translation>إضافة إلى الاختيار</translation>
     </message>
     <message>
         <location filename="../src/Docks/FeaturesDock.cpp" line="435"/>
         <source>Delete</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/FeaturesDock.cpp" line="442"/>
@@ -936,18 +943,13 @@ Delete what can be?</source>
     <message>
         <location filename="../src/Docks/FeaturesDock.cpp" line="444"/>
         <source>POI's</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/FeaturesDock.cpp" line="445"/>
         <source>All</source>
         <translation>الكلّ</translation>
     </message>
-    <message>
-        <location filename="../src/Docks/FeaturesDock.cpp" line="434"/>
-        <source>Add to selection</source>
-        <translation>إضافة إلى الاختيار</translation>
-    </message>
 </context>
 <context>
     <name>FeaturesDockWidget</name>
@@ -959,17 +961,17 @@ Delete what can be?</source>
     <message>
         <location filename="../src/Docks/FeaturesDock.ui" line="72"/>
         <source>Only features fully within the viewport</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/FeaturesDock.ui" line="101"/>
         <source>Find...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/FeaturesDock.ui" line="108"/>
         <source>Reset</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -987,7 +989,7 @@ Delete what can be?</source>
     <message>
         <location filename="../src/Layers/FilterEditDialog.ui" line="30"/>
         <source>Filter</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Layers/FilterEditDialog.ui" line="42"/>
@@ -998,7 +1000,7 @@ Delete what can be?</source>
 <context>
     <name>FilterLayerWidget</name>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="688"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="689"/>
         <source>Close</source>
         <translation>أغلِق</translation>
     </message>
@@ -1008,17 +1010,17 @@ Delete what can be?</source>
     <message>
         <location filename="../src/Preferences/FilterPreferencesDialog.ui" line="14"/>
         <source>Filters setup</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/FilterPreferencesDialog.ui" line="20"/>
         <source>Filters</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/FilterPreferencesDialog.ui" line="47"/>
         <source>Filter list:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/FilterPreferencesDialog.ui" line="76"/>
@@ -1028,7 +1030,7 @@ Delete what can be?</source>
     <message>
         <location filename="../src/Preferences/FilterPreferencesDialog.ui" line="93"/>
         <source>Filter</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/FilterPreferencesDialog.ui" line="105"/>
@@ -1054,268 +1056,242 @@ Delete what can be?</source>
 <context>
     <name>GeoImageDock</name>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="86"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="970"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="78"/>
+        <source>Network timeout</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="78"/>
+        <source>Cannot read the photo's details from the Walking Papers server.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="98"/>
+        <source>Please specify Walking Papers URL</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="99"/>
+        <source>URL:</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="113"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="997"/>
         <source>Geo Images</source>
         <translation>صور جغرافية</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="95"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="121"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="998"/>
+        <source>Center map</source>
+        <translation>حدّد مركز الخريطة</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="122"/>
         <source>c</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="96"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="972"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="123"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="999"/>
         <source>Remove Images</source>
         <translation>أحذف الصور</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="97"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="973"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="124"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="1000"/>
         <source>Copy filename to clipboard</source>
         <translation>أنسخ إسم الملف إلى الحافظة</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="356"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="482"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="125"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="1001"/>
+        <source>Select next image</source>
+        <translation>إختر الصورة التالية</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="126"/>
+        <source>PgDown</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="128"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="1002"/>
+        <source>Select previous image</source>
+        <translation>إختر الصورة السابقة</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="129"/>
+        <source>PgUp</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="131"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="1003"/>
+        <source>Save geotagged image...</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="339"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="465"/>
+        <source>Photo layer</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="383"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="509"/>
         <source>Load geotagged Images</source>
         <translation>حمّل صور جغرافية معلّمة</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="357"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="483"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="384"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="510"/>
         <source>Select the layer to which the images belong:</source>
         <translation>إختر الطبقة اللتي تنتمي إليها الصورة:</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="370"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="496"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="397"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="523"/>
         <source>Layer is read-only</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="371"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="497"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="398"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="524"/>
         <source>The used layer is not writeable. Should it be made writeable?
 If not, you can't load images that belong to it.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="504"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="531"/>
         <source>Loading Images ...</source>
         <translation>جاري تحميل الصور...</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="504"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="531"/>
         <source>Abort loading</source>
         <translation>إجهاض عملية التحميل</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="699"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="543"/>
+        <source>No such file</source>
+        <translation>لا ملف كهذا</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="543"/>
+        <source>Can't find image "%1".</source>
+        <translation>غير قادر للعثور على الصورة  "%1".</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="551"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="553"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="941"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="945"/>
+        <source>Exiv2</source>
+        <translation>Exiv2</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="551"/>
+        <source>Error while opening "%2":
+%1</source>
+        <translation>خطأ عند محاولة فتح "%2":
+%1</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="553"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="945"/>
+        <source>Error while loading EXIF-data from "%1".</source>
+        <translation>خطء عند تحميل معطيات الــ EXIF من "%1".</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="726"/>
         <source>Specify offset</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="701"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="728"/>
         <source>Position images more to the:</source>
         <translation>ضع الصور غالباً في:</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="702"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="729"/>
         <source>end of the track</source>
         <translation>آخر الممر</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="703"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="730"/>
         <source>beginning of the track</source>
         <translation>بداية الممر</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="707"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="734"/>
         <source>hh:mm:ss</source>
         <translation>س.س.د.د.ث.ث.</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="772"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="792"/>
+        <source>No TrackPoints</source>
+        <translation>لا نقاط أثرات</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="792"/>
+        <source>No TrackPoints found for image "%1"</source>
+        <translation>لم أجد نقاط أثرات للصورة "%1"</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="799"/>
         <source>ss 'seconds'</source>
         <translation>ث.ث. 'ثواني'</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="774"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="801"/>
         <source>mm 'minutes and' ss 'seconds'</source>
         <translation>mm 'دقائق و ' ss 'ثواني'</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="776"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="803"/>
         <source>hh 'hours,' mm 'minutes and' ss 'seconds'</source>
         <translation>hh 'ساعات,' mm 'دقائق و ' ss 'ثواني'</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="777"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="804"/>
         <source>Wrong image?</source>
         <translation>الصورة غير الصحيحة ؟</translation>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="778"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="805"/>
         <source>Image "%1" was taken %2 before the next trackpoint was recorded.
 Do you still want to use it?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="779"/>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="806"/>
         <source>Image "%1" was taken %2 after the last trackpoint was recorded.
 Do you still want to use it?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="516"/>
-        <source>No such file</source>
-        <translation>لا ملف كهذا</translation>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="859"/>
+        <source>Specify output filename</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="51"/>
-        <source>Network timeout</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="859"/>
+        <source>JPEG Images (*.jpg)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="51"/>
-        <source>Cannot read the photo's details from the Walking Papers server.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="71"/>
-        <source>Please specify Walking Papers URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="72"/>
-        <source>URL:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="94"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="971"/>
-        <source>Center map</source>
-        <translation>حدّد مركز الخريطة</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="104"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="976"/>
-        <source>Save geotagged image...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="312"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="438"/>
-        <source>Photo layer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="516"/>
-        <source>Can't find image "%1".</source>
-        <translation>غير قادر للعثور على الصورة  "%1".</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="524"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="526"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="914"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="918"/>
-        <source>Exiv2</source>
-        <translation>Exiv2</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="524"/>
-        <source>Error while opening "%2":
-%1</source>
-        <translation>خطأ عند محاولة فتح "%2":
-%1</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="765"/>
-        <source>No TrackPoints</source>
-        <translation>لا نقاط أثرات</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="765"/>
-        <source>No TrackPoints found for image "%1"</source>
-        <translation>لم أجد نقاط أثرات للصورة "%1"</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="832"/>
-        <source>JPEG Images (*.jpg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="526"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="918"/>
-        <source>Error while loading EXIF-data from "%1".</source>
-        <translation>خطء عند تحميل معطيات الــ EXIF من "%1".</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="832"/>
-        <source>Specify output filename</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="914"/>
-        <source>Error while opening "%1":
-%2</source>
-        <translation>خطء عند محاولة فتح "%1":
-%2</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="98"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="974"/>
-        <source>Select next image</source>
-        <translation>إختر الصورة التالية</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="99"/>
-        <source>PgDown</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="101"/>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="975"/>
-        <source>Select previous image</source>
-        <translation>إختر الصورة السابقة</translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/GeoImageDock.cpp" line="102"/>
-        <source>PgUp</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Docks/GeoImageDock.cpp" line="941"/>
+        <source>Error while opening "%1":
+%2</source>
+        <translation>خطء عند محاولة فتح "%1":
+%2</translation>
     </message>
 </context>
 <context>
     <name>GotoDialog</name>
     <message>
-        <location filename="../src/common/GotoDialog.cpp" line="97"/>
-        <source>Invalid OSM url</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/common/GotoDialog.cpp" line="98"/>
-        <source>The specified url is invalid!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/common/GotoDialog.cpp" line="106"/>
-        <location filename="../src/common/GotoDialog.cpp" line="117"/>
-        <source>Invalid Coordinates format</source>
-        <translation>بنية الإحداثيات غير صحيحة</translation>
-    </message>
-    <message>
-        <location filename="../src/common/GotoDialog.cpp" line="107"/>
-        <source>Coordinates must be: '<left lon>, <bottom lat>, <right lon>, <top lat>'</source>
-        <translation>الإحداثيات يجب أن تكون: خطّ الطول اليسار، خطّ العرض الأسفل، خطّ العرض اليمين، خطّ العرض الأعلى</translation>
-    </message>
-    <message>
-        <location filename="../src/common/GotoDialog.cpp" line="118"/>
-        <source>Coordinates must be: '<center lat>, <center lon>, <span lat>, <span lon>'</source>
-        <translation>يجب أن تكون الإحداثيات على الشكل التالي: '<مركز خط العرض>, <مركز خط الطول>, <إمتداد خط العرض>, <إمتداد خط الطول>'</translation>
-    </message>
-    <message>
         <location filename="../src/common/GotoDialog.ui" line="14"/>
         <source>Go To</source>
         <translation>إذهب إلى</translation>
@@ -1328,17 +1304,17 @@ Do you still want to use it?</source>
     <message>
         <location filename="../src/common/GotoDialog.ui" line="61"/>
         <source>WWW link (OSM/Google maps)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/GotoDialog.ui" line="80"/>
         <source>Coordinates</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/GotoDialog.ui" line="92"/>
         <source>Show projected</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/GotoDialog.ui" line="107"/>
@@ -1363,7 +1339,7 @@ Do you still want to use it?</source>
     <message>
         <location filename="../src/common/GotoDialog.ui" line="203"/>
         <source>OSM XAPI url</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/GotoDialog.ui" line="225"/>
@@ -1371,228 +1347,156 @@ Do you still want to use it?</source>
         <source>Search</source>
         <translation>إبحث</translation>
     </message>
+    <message>
+        <location filename="../src/common/GotoDialog.cpp" line="97"/>
+        <source>Invalid OSM url</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/common/GotoDialog.cpp" line="98"/>
+        <source>The specified url is invalid!</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/common/GotoDialog.cpp" line="106"/>
+        <location filename="../src/common/GotoDialog.cpp" line="117"/>
+        <source>Invalid Coordinates format</source>
+        <translation>بنية الإحداثيات غير صحيحة</translation>
+    </message>
+    <message>
+        <location filename="../src/common/GotoDialog.cpp" line="107"/>
+        <source>Coordinates must be: '<left lon>, <bottom lat>, <right lon>, <top lat>'</source>
+        <translation>الإحداثيات يجب أن تكون: خطّ الطول اليسار، خطّ العرض الأسفل، خطّ العرض اليمين، خطّ العرض الأعلى</translation>
+    </message>
+    <message>
+        <location filename="../src/common/GotoDialog.cpp" line="118"/>
+        <source>Coordinates must be: '<center lat>, <center lon>, <span lat>, <span lon>'</source>
+        <translation>يجب أن تكون الإحداثيات على الشكل التالي: '<مركز خط العرض>, <مركز خط الطول>, <إمتداد خط العرض>, <إمتداد خط الطول>'</translation>
+    </message>
 </context>
 <context>
     <name>ImageLayerWidget</name>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="317"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="318"/>
         <source>None</source>
         <translation>لا شيء</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="324"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="325"/>
         <source>Shape adapter</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="407"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="408"/>
         <source>Zoom</source>
         <translation>التكبير</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="414"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="415"/>
         <source>Set view projection to layer's</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="419"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="420"/>
         <source>Reset alignment adjustment</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="424"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="425"/>
         <source>Close</source>
         <translation>أغلِق</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="432"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="433"/>
         <source>WMS adapter</source>
         <translation>مكيّف الــ WMS</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="448"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="449"/>
         <source>TMS adapter</source>
         <translation>مكيف الــTMS</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="464"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="465"/>
         <source>Plugins</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>ImageMapLayer</name>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="86"/>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="179"/>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="303"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="80"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="173"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="288"/>
         <source>Map - None</source>
         <translation>الخريطة - بدون</translation>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="214"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="207"/>
         <source>Map - WMS - %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="219"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="210"/>
         <source>Map - WMS-C - %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="224"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="213"/>
         <source>Map - WMS-Tiled - %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="240"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="228"/>
         <source>Map - TMS - %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="252"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="240"/>
         <source>Map - %1</source>
         <translation>الخريطة - %1</translation>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="277"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="265"/>
         <source>Licensing Terms: %1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="284"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="272"/>
         <source>License Terms not accepted</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="284"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="272"/>
         <source>You have not ticked the checkbox expressing your agreement with the licensing terms.
-As such, you won't be able to use this source as a map layer.
+As such, you won't be able to use this source as a map layer.
 Is it really what you meant?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="1043"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="1027"/>
         <source>Server</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="1046"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="1030"/>
         <source>Tile size</source>
         <translation>قياس البلاطة</translation>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="1048"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="1032"/>
         <source>Min/Max zoom</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/ImageMapLayer.cpp" line="1052"/>
+        <location filename="../src/Layers/ImageMapLayer.cpp" line="1036"/>
         <source>Projection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>ImportCSVDialog</name>
     <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="32"/>
-        <source>String</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="33"/>
-        <source>Integer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="34"/>
-        <source>Float</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="35"/>
-        <source>Longitude</source>
-        <translation>خط الطول</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="36"/>
-        <source>Latitude</source>
-        <translation>خط العرض</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="376"/>
-        <source>Invalid projection</source>
-        <translation>إسقاط غير صالح</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="376"/>
-        <source>Unable to set projection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="395"/>
-        <source>No coordinates</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="396"/>
-        <source>Latitude or Longitude field missing. It will be impossible to import the file.
-Do you really want to exit?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="433"/>
-        <source>Load CSV import settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="433"/>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
-        <source>Merkaartor import settings (*.mis)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="439"/>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="452"/>
-        <source>Invalid file</source>
-        <translation>الملف غير صحيح</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="439"/>
-        <source>%1 could not be opened.</source>
-        <translation>لم أستطع فتح %1</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="452"/>
-        <source>%1 is not a CSV import settings file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
-        <source>Save CSV import settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
-        <source>untitled</source>
-        <translation>غير معنون</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
-        <source>All Files (*)</source>
-        <translation>كلّ الملفات (*)</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="560"/>
-        <source>Unable to open save import settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="560"/>
-        <source>%1 could not be opened for writing.</source>
-        <translation>إستحالة فتح %1 للكتابة.</translation>
-    </message>
-    <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="14"/>
         <source>Dialog</source>
         <translation>مربع الحوار</translation>
@@ -1600,14 +1504,14 @@ Do you really want to exit?</source>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="26"/>
         <source>Input</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="55"/>
         <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
 p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Courier New'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'Courier New'; font-size:9pt; font-weight:400; font-style:normal;">
 <table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
 <tr>
 <td style="border: none;">
@@ -1615,52 +1519,52 @@ p, li { white-space: pre-wrap; }
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2</span></p>
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3</span></p>
 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4</span></p></td></tr></table></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="75"/>
         <source>OSM Preview</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="93"/>
         <source>Specifications</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="105"/>
         <source>First line contains headers</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="112"/>
         <source>Delimiter</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="124"/>
         <source>Colon (,)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="131"/>
         <source>Semicolon (;)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="138"/>
         <source>Tab</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="145"/>
         <source>Other:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="171"/>
         <source>String Quote</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="177"/>
@@ -1670,131 +1574,237 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="184"/>
         <source>Single quote (')</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="191"/>
         <source>Double quote (")</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="214"/>
         <source>Projection (in PROJ4 format; leave blank for latitude/longitude)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="227"/>
         <source>Fields</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="254"/>
         <source>Field list:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="283"/>
         <source>Field Name (= tag key) :</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="300"/>
         <source>Field Type:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="310"/>
         <source>Import</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="336"/>
         <source>Import range</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="342"/>
         <source>From (0 from start):</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="352"/>
         <source>To (0 to End):</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="367"/>
         <source>Load settings...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportCSVDialog.ui" line="374"/>
         <source>Save settings...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
-</context>
-<context>
-    <name>ImportExportGdal</name>
     <message>
-        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="314"/>
-        <source>Confirm projection</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="32"/>
+        <source>String</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="316"/>
-        <source>Unable to set projection; please specify one</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="33"/>
+        <source>Integer</source>
+        <translation type="unfinished"/>
     </message>
-</context>
-<context>
-    <name>InfoDock</name>
     <message>
-        <location filename="../src/Docks/InfoDock.cpp" line="24"/>
-        <location filename="../src/Docks/InfoDock.cpp" line="96"/>
-        <source>Info</source>
-        <translation>المعلومات</translation>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="34"/>
+        <source>Float</source>
+        <translation type="unfinished"/>
     </message>
-</context>
-<context>
-    <name>Layer</name>
-    <message numerus="yes">
-        <location filename="../src/Layers/Layer.cpp" line="408"/>
-        <source>%n features</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-        </translation>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="35"/>
+        <source>Longitude</source>
+        <translation>خط الطول</translation>
     </message>
     <message>
-        <location filename="../src/Layers/Layer.cpp" line="408"/>
-        <source>Size</source>
-        <translation>القياس</translation>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="36"/>
+        <source>Latitude</source>
+        <translation>خط العرض</translation>
     </message>
     <message>
-        <location filename="../src/Layers/Layer.cpp" line="425"/>
-        <source>Features</source>
-        <translation>الميزات</translation>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="376"/>
+        <source>Invalid projection</source>
+        <translation>إسقاط غير صالح</translation>
     </message>
-</context>
-<context>
-    <name>LayerDock</name>
     <message>
-        <location filename="../src/Docks/LayerDock.cpp" line="243"/>
-        <location filename="../src/Docks/LayerDock.cpp" line="352"/>
-        <source>Show All</source>
-        <translation>أعرض الكلّ</translation>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="376"/>
+        <source>Unable to set projection.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/LayerDock.cpp" line="248"/>
-        <location filename="../src/Docks/LayerDock.cpp" line="356"/>
-        <source>Hide All</source>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="395"/>
+        <source>No coordinates</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="396"/>
+        <source>Latitude or Longitude field missing. It will be impossible to import the file.
+Do you really want to exit?</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="433"/>
+        <source>Load CSV import settings</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="433"/>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
+        <source>Merkaartor import settings (*.mis)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="439"/>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="452"/>
+        <source>Invalid file</source>
+        <translation>الملف غير صحيح</translation>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="439"/>
+        <source>%1 could not be opened.</source>
+        <translation>لم أستطع فتح %1</translation>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="452"/>
+        <source>%1 is not a CSV import settings file</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
+        <source>Save CSV import settings</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
+        <source>untitled</source>
+        <translation>غير معنون</translation>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="544"/>
+        <source>All Files (*)</source>
+        <translation>كلّ الملفات (*)</translation>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="560"/>
+        <source>Unable to open save import settings</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportCSVDialog.cpp" line="560"/>
+        <source>%1 could not be opened for writing.</source>
+        <translation>إستحالة فتح %1 للكتابة.</translation>
+    </message>
+</context>
+<context>
+    <name>ImportExportGdal</name>
+    <message>
+        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="377"/>
+        <source>Confirm projection</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="379"/>
+        <source>Unable to set projection; please specify one</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>InfoDock</name>
+    <message>
+        <location filename="../src/Docks/InfoDock.cpp" line="24"/>
+        <location filename="../src/Docks/InfoDock.cpp" line="96"/>
+        <source>Info</source>
+        <translation>المعلومات</translation>
+    </message>
+</context>
+<context>
+    <name>Layer</name>
+    <message>
+        <location filename="../src/Layers/Layer.cpp" line="416"/>
+        <source>Size</source>
+        <translation>القياس</translation>
+    </message>
+    <message>
+        <location filename="../src/Layers/Layer.cpp" line="416"/>
+        <source>%n features</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Layers/Layer.cpp" line="433"/>
+        <source>Features</source>
+        <translation>الميزات</translation>
+    </message>
+</context>
+<context>
+    <name>LayerDock</name>
+    <message>
+        <location filename="../src/Docks/LayerDock.cpp" line="243"/>
+        <location filename="../src/Docks/LayerDock.cpp" line="352"/>
+        <source>Show All</source>
+        <translation>أعرض الكلّ</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/LayerDock.cpp" line="248"/>
+        <location filename="../src/Docks/LayerDock.cpp" line="356"/>
+        <source>Hide All</source>
         <translation>إخفاء الكلّ</translation>
     </message>
     <message>
+        <location filename="../src/Docks/LayerDock.cpp" line="255"/>
+        <source>Readonly All</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/LayerDock.cpp" line="260"/>
+        <source>Readonly None</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Docks/LayerDock.cpp" line="267"/>
+        <source>Close</source>
+        <translation>أغلِق</translation>
+    </message>
+    <message>
         <location filename="../src/Docks/LayerDock.cpp" line="395"/>
         <source>Layers</source>
         <translation>الطبقات</translation>
@@ -1807,17 +1817,12 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="../src/Docks/LayerDock.cpp" line="402"/>
         <source>Map</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/LayerDock.cpp" line="403"/>
         <source>Draw</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/LayerDock.cpp" line="491"/>
-        <source>Reset Layers to default</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/LayerDock.cpp" line="404"/>
@@ -1825,78 +1830,68 @@ p, li { white-space: pre-wrap; }
         <translation>الأثرات</translation>
     </message>
     <message>
-        <location filename="../src/Docks/LayerDock.cpp" line="255"/>
-        <source>Readonly All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/LayerDock.cpp" line="260"/>
-        <source>Readonly None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Docks/LayerDock.cpp" line="267"/>
-        <source>Close</source>
-        <translation>أغلِق</translation>
+        <location filename="../src/Docks/LayerDock.cpp" line="491"/>
+        <source>Reset Layers to default</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LayerWidget</name>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="172"/>
+        <location filename="../src/Layers/LayerWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation>الشكل</translation>
+    </message>
+    <message>
+        <location filename="../src/Layers/LayerWidget.cpp" line="173"/>
         <source>Visible</source>
         <translation>ظاهر</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="178"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="179"/>
         <source>Readonly</source>
         <translation>فقط للقراءة</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="186"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="187"/>
         <source>Low</source>
         <translation>منحفض</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="186"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="187"/>
         <source>High</source>
         <translation>عالي</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="186"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="187"/>
         <source>Opaque</source>
         <translation>غير شفاف</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="189"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="190"/>
         <source>Opacity</source>
         <translation>اللاشفافية</translation>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="214"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="215"/>
         <source>Layer CLose: Dirty objects present</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="215"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="216"/>
         <source>There are dirty features on this layer.
 Are you sure you want to close it? (no Undo possible)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="220"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="221"/>
         <source>Layer CLose: Not empty</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Layers/LayerWidget.cpp" line="221"/>
+        <location filename="../src/Layers/LayerWidget.cpp" line="222"/>
         <source>Are you sure you want to close this layer? (no Undo possible)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Layers/LayerWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation>الشكل</translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -1904,17 +1899,17 @@ Are you sure you want to close it? (no Undo possible)</source>
     <message>
         <location filename="../src/Layers/LicenseDisplayDialog.ui" line="14"/>
         <source>Licensing Terms</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Layers/LicenseDisplayDialog.ui" line="21"/>
         <source>about:blank</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Layers/LicenseDisplayDialog.ui" line="29"/>
         <source>I have read and agree to the licensing terms</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -1928,2840 +1923,2861 @@ Are you sure you want to close it? (no Undo possible)</source>
 <context>
     <name>Main</name>
     <message>
-        <location filename="../src/Main.cpp" line="210"/>
-        <source>%1 v%2%3(%4)
+        <location filename="../src/Main.cpp" line="242"/>
+        <source>%1 v%2
 Loading plugins...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Main.cpp" line="242"/>
-        <source>%1 v%2%3(%4)
+        <location filename="../src/Main.cpp" line="280"/>
+        <source>%1 v%2
 Initializing...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="712"/>
-        <source>Clear Tag '%1' on %2</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="14"/>
+        <source>Merkaartor</source>
+        <translation>Merkaartor</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="105"/>
-        <source>Create Area %1</source>
-        <translation>أنشئ المنطقة %1</translation>
+        <location filename="../src/MainWindow.ui" line="32"/>
+        <source>&Help</source>
+        <translation>&مساعدة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="140"/>
-        <source>Area: Create Road %1</source>
-        <translation>المنطقة: أنشئ الطريق %1</translation>
+        <location filename="../src/MainWindow.ui" line="38"/>
+        <source>&Create</source>
+        <translation>أن&شئ</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="173"/>
-        <source>Area: Finish Road %1</source>
-        <translation>المنطقة: أنهي الطريق %1</translation>
+        <location filename="../src/MainWindow.ui" line="51"/>
+        <location filename="../src/MainWindow.ui" line="632"/>
+        <source>&Road</source>
+        <translation>&طريق</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="188"/>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="199"/>
-        <source>Area: Add node %1 to Road %2</source>
-        <translation>المنطقة: أضف العقدة %1 إلى الطريق %2</translation>
+        <location filename="../src/MainWindow.ui" line="70"/>
+        <source>&Edit</source>
+        <translation>&حرر</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="269"/>
-        <source>Close Area %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="92"/>
+        <source>&View</source>
+        <translation>ا&عرض</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateDoubleWayInteraction.cpp" line="49"/>
-        <source>Create double way Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="96"/>
+        <source>&Bookmarks</source>
+        <translation>إ&شارات مرجعية</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateDoubleWayInteraction.cpp" line="173"/>
-        <source>Add nodes to double-way Road %1</source>
-        <translation>أضف العقدة إلى الطريق %1 المزدوجة الممرات</translation>
+        <location filename="../src/MainWindow.ui" line="104"/>
+        <source>Set &projection</source>
+        <translation>عيّن الإ&سقاة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateDoubleWayInteraction.cpp" line="224"/>
-        <source>Create double-way Road %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="109"/>
+        <source>Set Areas &opacity</source>
+        <translation>عيّن غموض ال&مساحة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateNodeInteraction.cpp" line="112"/>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="259"/>
-        <source>Create node in Road: %1</source>
-        <translation>أنشئ عقدة في الطريق: %1</translation>
+        <location filename="../src/MainWindow.ui" line="127"/>
+        <source>&File</source>
+        <translation>&ملف</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateNodeInteraction.cpp" line="121"/>
-        <source>Create POI %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="131"/>
+        <source>&Export</source>
+        <translation>&صدّر</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateRoundaboutInteraction.cpp" line="89"/>
-        <source>Create Roundabout %1</source>
-        <translation>إنشاء مستديرة %1</translation>
+        <location filename="../src/MainWindow.ui" line="141"/>
+        <source>Re&cent open</source>
+        <translation>الم&فتوحة حديثاً</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="238"/>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="298"/>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="309"/>
-        <source>Create Node %1 in Road %2</source>
-        <translation>أنشئ العقدة %1 في الطريق %2</translation>
+        <location filename="../src/MainWindow.ui" line="146"/>
+        <source>Recen&t import</source>
+        <translation>الم&صدّر حديثاً</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="282"/>
-        <source>Create Road: %1</source>
-        <translation>%1إنشاء الطريق :</translation>
+        <location filename="../src/MainWindow.ui" line="174"/>
+        <source>T&ools</source>
+        <translation>ال&عدة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="290"/>
-        <source>Create Node: %1</source>
-        <translation>أنشئ العقدة : %1</translation>
+        <location filename="../src/MainWindow.ui" line="178"/>
+        <source>&Style</source>
+        <translation>ال&زيّ</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="312"/>
-        <source>Add Node %1 to Road %2</source>
-        <translation>أضف العقدة %1 إلى الطريق %2</translation>
+        <location filename="../src/MainWindow.ui" line="189"/>
+        <source>Ta&g templates</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="351"/>
-        <source>Close Road %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="214"/>
+        <location filename="../src/MainWindow.ui" line="650"/>
+        <source>&Node</source>
+        <translation>&العقدة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="210"/>
-        <source>Nodes at the same position found.</source>
-        <translation>وجدتُ عقد على نفس الموقع.</translation>
+        <location filename="../src/MainWindow.ui" line="223"/>
+        <source>&Window</source>
+        <translation>&النافذة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="211"/>
-        <source>Do you want to merge all nodes at the drop position?</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="227"/>
+        <location filename="../src/MainWindow.ui" line="934"/>
+        <source>&Docks</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="220"/>
-        <location filename="../src/MainWindow.cpp" line="2747"/>
-        <source>Merge Nodes into %1</source>
-        <translation>أدمج العقد إلى %1</translation>
-    </message>
-    <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="52"/>
-        <source>LEFT-CLICK to select;RIGHT-CLICK to pan;CTRL-LEFT-CLICK to toggle selection;SHIFT-LEFT-CLICK to add to selection;LEFT-DRAG for area selection;CTRL-RIGHT-DRAG for zoom;DOUBLE-CLICK to create a node;DOUBLE-CLICK on a node to start a way;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="54"/>
-        <source>CLICK to select/move;CTRL-CLICK to toggle selection;SHIFT-CLICK to add to selection;SHIFT-DRAG for area selection;CTRL-DRAG for zoom;DOUBLE-CLICK to create a node;DOUBLE-CLICK on a node to start a way;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="289"/>
-        <source>Remove feature %1</source>
-        <translation>أحذف الميزة %1</translation>
+        <location filename="../src/MainWindow.ui" line="246"/>
+        <source>Fea&ture</source>
+        <translation>ال&خصوصية</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="291"/>
-        <source>Remove features</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="250"/>
+        <location filename="../src/MainWindow.cpp" line="1118"/>
+        <source>OpenStreetBugs</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="302"/>
-        <source>Do you want to delete the children nodes also?
-Note that OSM nodes outside the downloaded area will be kept.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="266"/>
+        <location filename="../src/MainWindow.ui" line="959"/>
+        <source>&Layers</source>
+        <translation>ال&طبقات</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="327"/>
-        <source>Reverse %1 ways</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="277"/>
+        <source>&Gps</source>
+        <translation>&نطام العالمي لتحديد الموقع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="222"/>
-        <source>tile %v / %m</source>
-        <translation>البلاطة %v / %m</translation>
+        <location filename="../src/MainWindow.ui" line="290"/>
+        <source>Rel&ation</source>
+        <translation>ال&علاقة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1746"/>
-        <location filename="../src/MainWindow.cpp" line="376"/>
-        <source>Properties...</source>
-        <translation>الخصائص...</translation>
+        <location filename="../src/MainWindow.ui" line="298"/>
+        <source>S&how</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="406"/>
-        <source>Low</source>
-        <translation>منحفض</translation>
+        <location filename="../src/MainWindow.ui" line="302"/>
+        <source>Show directional &Arrows</source>
+        <translation>أعرض &أسهم الإتجاه</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="406"/>
-        <source>High</source>
-        <translation>عالي</translation>
+        <location filename="../src/MainWindow.ui" line="347"/>
+        <source>Main toolbar</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="406"/>
-        <source>Opaque</source>
-        <translation>غير شفاف</translation>
+        <location filename="../src/MainWindow.ui" line="396"/>
+        <source>&Quit</source>
+        <translation>إ&نهاء</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1084"/>
-        <source>File</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="404"/>
+        <source>&About</source>
+        <translation>&حول</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1088"/>
-        <source>Edit</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="416"/>
+        <source>&Open</source>
+        <translation>إ&فتح</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1092"/>
-        <source>View</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="419"/>
+        <source>Create a new document and import a file</source>
+        <translation>أنشئ مستند جديد و إستورد ملفاً</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1096"/>
-        <source>Show</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="422"/>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1100"/>
-        <source>Directional Arrows</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="431"/>
+        <source>Zoom &all</source>
+        <translation>كبّر/صغّر ال&كلّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1104"/>
-        <source>GPS</source>
-        <translation>GPSجهاز تحديد المواقع العالمي</translation>
+        <location filename="../src/MainWindow.ui" line="434"/>
+        <source>F2</source>
+        <translation>F2</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1108"/>
-        <source>Layers</source>
-        <translation>الطبقات</translation>
+        <location filename="../src/MainWindow.ui" line="439"/>
+        <source>Zoom &window</source>
+        <translation>كبّر ال&نافذة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1112"/>
-        <source>Create</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="442"/>
+        <location filename="../src/MainWindow.ui" line="445"/>
+        <source>Zoom window</source>
+        <translation>كبّر النافذة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="572"/>
-        <location filename="../src/MainWindow.cpp" line="1116"/>
-        <source>Feature</source>
-        <translation>الخصوصية</translation>
+        <location filename="../src/MainWindow.ui" line="448"/>
+        <source>F3</source>
+        <translation>F3</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="581"/>
-        <location filename="../src/MainWindow.cpp" line="1124"/>
-        <source>Node</source>
-        <translation>العقدة</translation>
+        <location filename="../src/MainWindow.ui" line="457"/>
+        <source>Zoom &out</source>
+        <translation>&صغّر الرؤية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1128"/>
-        <source>Way</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="460"/>
+        <source>-</source>
+        <translation>-</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="597"/>
-        <location filename="../src/MainWindow.cpp" line="1132"/>
-        <source>Relation</source>
-        <translation>العلاقة</translation>
+        <location filename="../src/MainWindow.ui" line="469"/>
+        <source>Zoom &in</source>
+        <translation>&كبّر الرؤية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1136"/>
-        <source>Tools</source>
-        <translation>الأدوات/العدة</translation>
+        <location filename="../src/MainWindow.ui" line="472"/>
+        <location filename="../src/MainWindow.ui" line="475"/>
+        <source>Zoom in</source>
+        <translation>كبّر الرؤية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1140"/>
-        <source>Windows</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="478"/>
+        <source>+</source>
+        <translation>+</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1144"/>
-        <source>Help</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="483"/>
+        <location filename="../src/MainWindow.ui" line="486"/>
+        <location filename="../src/MainWindow.ui" line="489"/>
+        <source>Curved link</source>
+        <translation>صلة منحنية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1412"/>
-        <location filename="../src/MainWindow.cpp" line="1439"/>
-        <location filename="../src/MainWindow.cpp" line="1473"/>
-        <source>Clipboard invalid</source>
-        <translation>الحافظة غير صالحة</translation>
+        <location filename="../src/MainWindow.ui" line="501"/>
+        <location filename="../src/MainWindow.ui" line="1026"/>
+        <source>&Undo</source>
+        <translation>ت&راجع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1301"/>
-        <source>Cut Features</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="504"/>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="167"/>
-        <source>GPS Exchange format (*.gpx)
-</source>
-        <translation>تصميم تبادل الملفات (*.gpx) لجهاز تحديد المواقع العالمي
-</translation>
+        <location filename="../src/MainWindow.ui" line="513"/>
+        <source>&Redo</source>
+        <translation>&كرّر</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="168"/>
-        <source>OpenStreetMap format (*.osm)
-</source>
-        <translation>تصميم المفات OpenStreetMap (*.osm)
-</translation>
+        <location filename="../src/MainWindow.ui" line="516"/>
+        <source>Ctrl+Y</source>
+        <translation>Ctrl+Y</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="169"/>
-        <source>OpenStreetMap change format (*.osc)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="528"/>
+        <source>&Move</source>
+        <translation>ح&رّك</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="170"/>
-        <source>Noni GPSPlot format (*.ngt)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="531"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="171"/>
-        <source>NMEA GPS log format (*.nmea *.nma)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="540"/>
+        <source>&Import</source>
+        <translation>إ&ستيراد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="172"/>
-        <source>KML file (*.kml)
-</source>
-        <translation>مستند KML (*.kml)
-</translation>
+        <location filename="../src/MainWindow.ui" line="543"/>
+        <source>Import a file into the current document</source>
+        <translation>إستورد ملفاً إلى داخل المستند الحالي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="173"/>
-        <source>Comma delimited format (*.csv)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="552"/>
+        <source>&Download</source>
+        <translation>&نزّل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="176"/>
-        <source>Geotagged images (*.jpg)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="555"/>
+        <source>Download map data for a new area</source>
+        <translation>نزّل معطيات الخريطة لمنطقة أخرى</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="178"/>
-        <source>ESRI Shapefile (*.shp)
-</source>
-        <translation>ملف شكل ESRI  (*.shp)
-</translation>
+        <location filename="../src/MainWindow.ui" line="558"/>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="178"/>
-        <source>Geography Markup Language (*.gml)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="563"/>
+        <source>Link</source>
+        <translation>وصلة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="180"/>
-        <source>Protobuf Binary Format (*.pbf)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="566"/>
+        <location filename="../src/MainWindow.ui" line="569"/>
+        <source>Create link</source>
+        <translation>أنتج وصلة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="184"/>
-        <source>Merkaartor document (*.mdc)
-</source>
-        <translation>مستند Merkaartor (*.mdc)
-</translation>
+        <location filename="../src/MainWindow.ui" line="572"/>
+        <source>L</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="589"/>
-        <source>Road</source>
-        <translation>الطريق</translation>
+        <location filename="../src/MainWindow.ui" line="584"/>
+        <source>&Select</source>
+        <translation>إ&نتقي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="709"/>
-        <source>Load image</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="587"/>
+        <source>Esc</source>
+        <translation>Esc</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="711"/>
-        <source>Add node position to image</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="596"/>
+        <source>&Upload</source>
+        <translation>&حمّل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="713"/>
-        <source>Geotag image with this position</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="599"/>
+        <source>Upload changes to the server</source>
+        <translation>حمّل التغييرات إلى المخدم</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="715"/>
-        <source>Cancel</source>
-        <translation>ألغي</translation>
+        <location filename="../src/MainWindow.ui" line="602"/>
+        <source>Ctrl+U</source>
+        <translation>Ctrl+U</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1412"/>
-        <location filename="../src/MainWindow.cpp" line="1439"/>
-        <location filename="../src/MainWindow.cpp" line="1473"/>
-        <source>Clipboard do not contain valid data.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="614"/>
+        <source>R&emove</source>
+        <translation>إ&زالة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1600"/>
-        <source>Import file</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="617"/>
+        <source>Remove selected features</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1626"/>
-        <location filename="../src/MainWindow.cpp" line="4466"/>
-        <source>Unsaved changes</source>
-        <translation>تغييرات غير محفوطة</translation>
+        <location filename="../src/MainWindow.ui" line="620"/>
+        <source>Del</source>
+        <translation>Del</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1627"/>
-        <source>The current map contains unsaved changes that will be lost when starting a new one.
-Do you want to cancel starting a new map or continue and discard the old changes?</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="635"/>
+        <source>Create new road</source>
+        <translation>أنشئ طريق جديدة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1634"/>
-        <source>Unsaved Style changes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="638"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1635"/>
-        <source>You have modified the current style.
-Do you want to save your changes?</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="653"/>
+        <source>Create new node</source>
+        <translation>أنشئ عقدة جديدة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1721"/>
-        <source>Big Fat Copyright Warning</source>
-        <translation>تحذيرمشدد عن حقوق المؤلف</translation>
+        <location filename="../src/MainWindow.ui" line="656"/>
+        <source>Ctrl+N</source>
+        <translation>Ctrl+N</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1722"/>
-        <source>You are trying to import a KML file. Please be aware that:
-
- - You cannot import to OSM a KML file created from Google Earth. While you might
-   think that nodes you created from GE are yours, they are not!
-   They are still a derivative work from GE, and, as such, cannot be used in OSM.
-
- - If you downloaded it from the Internet, chances are that there is a copyright on it.
-   Please be absolutely sure that using those data in OSM is permitted by the author, or
-   that the data is public domain.
-
-If unsure, please seek advice on the "legal" or "talk" openstreetmap mailing lists.
-
-Are you absolutely sure this KML can legally be imported in OSM?</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="668"/>
+        <source>&Reverse</source>
+        <translation>أ&عكس</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1935"/>
-        <source>Incoming Remote control request</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="671"/>
+        <source>Reverse road direction</source>
+        <translation>أعكس إتجاه الطريق</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1935"/>
-        <source>Unknow action url: %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="680"/>
+        <source>&Go To...</source>
+        <translation>&إذهب إلى...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1946"/>
-        <source>Open files</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="683"/>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2049"/>
-        <source>Error downloading MapDust</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="688"/>
+        <source>&Double carriage way</source>
+        <translation>&طريق ذو إتجاهين</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2049"/>
-        <source>The MapDust bugs could not be downloaded</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="691"/>
+        <source>Create Double carriage way</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2430"/>
-        <source>Join Roads</source>
-        <translation>ألصق الطرقات</translation>
+        <location filename="../src/MainWindow.ui" line="696"/>
+        <source>R&oundabout</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2444"/>
-        <source>Split Roads</source>
-        <translation>إفسخ الطرقات</translation>
+        <location filename="../src/MainWindow.ui" line="699"/>
+        <source>Create Roundabout</source>
+        <translation>أنشئ مسديرة سير</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2458"/>
-        <source>Break Roads</source>
-        <translation>أفصل الطرقات</translation>
+        <location filename="../src/MainWindow.ui" line="711"/>
+        <source>&New</source>
+        <translation>&جديد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2658"/>
-        <source>Axis Align</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="714"/>
+        <source>Create a new document</source>
+        <translation>انشيء مستند جديد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2659"/>
-        <source>Specify the number of regular axes to align edges on (e.g. 4 for rectangular)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="723"/>
+        <source>&Split</source>
+        <translation>إ&قطع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2666"/>
-        <source>triangular</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="726"/>
+        <source>Split road into separate (connected) roads</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2667"/>
-        <source>rectangular</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="729"/>
+        <source>Alt+S</source>
+        <translation>Alt+S</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2668"/>
-        <source>pentagonal</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="738"/>
+        <source>&Join</source>
+        <translation>إ&جمع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2669"/>
-        <source>hexagonal</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="741"/>
+        <source>Join connected roads to a single road</source>
+        <translation>أدمج الطرقات الموصولة في طريق واحدة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2670"/>
-        <source>heptagonal</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="744"/>
+        <source>Alt+J</source>
+        <translation>Alt+J</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2671"/>
-        <source>octagonal</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="753"/>
+        <source>&Break apart</source>
+        <translation>&أفصلها عن بعض البعض</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2675"/>
-        <source>Align onto %1 axes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="756"/>
+        <source>Break</source>
+        <translation>أفصل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2677"/>
-        <source>Align onto %1 regular axes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="759"/>
+        <source>Break apart connected roads</source>
+        <translation>أفصل الطرقات الموصولة عن بعضها البعض</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2684"/>
-        <location filename="../src/MainWindow.cpp" line="2687"/>
-        <source>Unable to align to axes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="762"/>
+        <source>Alt+B</source>
+        <translation>Alt+B</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2685"/>
-        <source>Align to axes operation failed. Please adjust any sharp corners and try again.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="767"/>
+        <source>Re&lation</source>
+        <translation>&علاقة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2688"/>
-        <source>Align to axes operation failed and did not converge on a solution.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="770"/>
+        <source>Create Relation</source>
+        <translation>أنشئ العلاقة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2704"/>
-        <source>Bing Extract</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="782"/>
+        <source>&Area</source>
+        <translation>&المساحة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2719"/>
-        <source>Align Nodes</source>
-        <translation>إصطف العقد</translation>
+        <location filename="../src/MainWindow.ui" line="785"/>
+        <source>Create new area</source>
+        <translation>إنشئ مساحة جديدة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2762"/>
-        <source>Detach Node %1</source>
-        <translation>أفصل العقدة %1</translation>
+        <location filename="../src/MainWindow.ui" line="790"/>
+        <source>&Edit...</source>
+        <translation>&حرّر...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2776"/>
-        <source>Add member to relation</source>
-        <translation>أضف العضو إلى العلاقة</translation>
+        <location filename="../src/MainWindow.ui" line="795"/>
+        <location filename="../src/MainWindow.ui" line="893"/>
+        <source>Save &As...</source>
+        <translation>إحفظ &كــ ...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2788"/>
-        <source>Remove member from relation</source>
-        <translation>أحذف العضو من العلاقة</translation>
+        <location filename="../src/MainWindow.ui" line="800"/>
+        <location filename="../src/MainWindow.ui" line="1398"/>
+        <source>&Load...</source>
+        <translation>&حمّل...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2800"/>
-        <source>Add to Multipolygon</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="805"/>
+        <source>&Curved road</source>
+        <translation>&طريق منحنية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2812"/>
-        <source>Join areas</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="814"/>
+        <source>&Preferences...</source>
+        <translation>الت&فضيلات...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2867"/>
-        <source>Create Relation %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="822"/>
+        <location filename="../src/MainWindow.ui" line="830"/>
+        <source>&All...</source>
+        <translation>ال&كلّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="183"/>
-        <location filename="../src/MainWindow.cpp" line="187"/>
-        <location filename="../src/MainWindow.cpp" line="2975"/>
-        <source>Supported formats</source>
-        <translation>التنسيقات المتوفّرة</translation>
+        <location filename="../src/MainWindow.ui" line="825"/>
+        <location filename="../src/MainWindow.ui" line="833"/>
+        <source>Export all visible layers to a file</source>
+        <translation>صدّر كلّ الطبقات الظاهرة إلى ملف</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2976"/>
-        <source>Merkaartor map style (*.mas)
-</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="842"/>
+        <source>&Find...</source>
+        <translation>إ&بحث...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2977"/>
-        <source>MapCSS stylesheet (*.css)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="845"/>
+        <source>Find</source>
+        <translation>ابحث</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3209"/>
-        <source>Save Merkaartor template document</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="848"/>
+        <source>Find and select items</source>
+        <translation>إبحث و إختر بنود</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3288"/>
-        <source>Unable to open save template document</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="853"/>
+        <location filename="../src/MainWindow.ui" line="861"/>
+        <source>&Viewport...</source>
+        <translation>&نافذة الرؤية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3901"/>
-        <source>Add Bookmark</source>
-        <translation>أضف إشارة مرجعية</translation>
+        <location filename="../src/MainWindow.ui" line="856"/>
+        <location filename="../src/MainWindow.ui" line="864"/>
+        <source>Export the features in the viewport to a file</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3902"/>
-        <source>Specify the name of the bookmark.</source>
-        <translation>حدد إسم الإشارة المرجعية</translation>
+        <location filename="../src/MainWindow.ui" line="869"/>
+        <source>&Add...</source>
+        <translation>أ&ضف...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3910"/>
-        <source>Warning: Bookmark name already exists</source>
-        <translation>تحذير: إسم الإشارة المرجعية موجود مسبقاً</translation>
+        <location filename="../src/MainWindow.ui" line="874"/>
+        <source>&Remove...</source>
+        <translation>أ&حذف...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3911"/>
-        <source>Enter a new one, keep the same to overwrite or cancel.</source>
-        <translation>أدخل واحداً جديداً، حافظ على الحالي للكتابة عليه أو ألغي.</translation>
+        <location filename="../src/MainWindow.ui" line="879"/>
+        <source>&Merge</source>
+        <translation>إ&دمج</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3949"/>
-        <source>Remove Bookmark</source>
-        <translation>إزالة الإشارة المرجعية</translation>
+        <location filename="../src/MainWindow.ui" line="882"/>
+        <source>Node Merge</source>
+        <translation>دمج العقد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3950"/>
-        <source>Select the bookmark to remove.</source>
-        <translation>إختر الإشارة المرجعية لحذفها.</translation>
+        <location filename="../src/MainWindow.ui" line="885"/>
+        <source>Merge the selected nodes (first selected will remain)</source>
+        <translation>أدمج العقد المختارة (ستبقى العقد المحددة أولاً)</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4384"/>
-        <source>Warning! Could not load the Merkaartor translations for the "%1" language. Switching to default English.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="888"/>
+        <source>Alt+M</source>
+        <translation>Alt+M</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="14"/>
-        <source>Merkaartor</source>
-        <translation>Merkaartor</translation>
+        <location filename="../src/MainWindow.ui" line="902"/>
+        <location filename="../src/MainWindow.ui" line="1834"/>
+        <source>&Save</source>
+        <translation>إحف&ظ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="32"/>
-        <source>&Help</source>
-        <translation>&مساعدة</translation>
+        <location filename="../src/MainWindow.ui" line="905"/>
+        <source>Save to file</source>
+        <translation>إحفظ في ملف</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="38"/>
-        <source>&Create</source>
-        <translation>أن&شئ</translation>
+        <location filename="../src/MainWindow.ui" line="908"/>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="51"/>
-        <location filename="../src/MainWindow.ui" line="630"/>
-        <source>&Road</source>
-        <translation>&طريق</translation>
+        <location filename="../src/MainWindow.ui" line="917"/>
+        <source>Download more</source>
+        <translation>نزّل المزيد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="70"/>
-        <source>&Edit</source>
-        <translation>&حرر</translation>
+        <location filename="../src/MainWindow.ui" line="920"/>
+        <source>Download more map data for the current area</source>
+        <translation>نزّل المزيد من المعطيات للمنطقة الحالية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="92"/>
-        <source>&View</source>
-        <translation>ا&عرض</translation>
+        <location filename="../src/MainWindow.ui" line="923"/>
+        <location filename="../src/MainWindow.ui" line="926"/>
+        <source>Download the current view to the previous download layer</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="96"/>
-        <source>&Bookmarks</source>
-        <translation>إ&شارات مرجعية</translation>
+        <location filename="../src/MainWindow.ui" line="929"/>
+        <source>Ctrl+Shift+D</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="104"/>
-        <source>Set &projection</source>
-        <translation>عيّن الإ&سقاة</translation>
+        <location filename="../src/MainWindow.ui" line="942"/>
+        <source>&Properties</source>
+        <translation>&خصائص</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="302"/>
-        <source>Show directional &Arrows</source>
-        <translation>أعرض &أسهم الإتجاه</translation>
+        <location filename="../src/MainWindow.ui" line="945"/>
+        <location filename="../src/MainWindow.ui" line="948"/>
+        <source>Hide/Show the Properties dock</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="109"/>
-        <source>Set Areas &opacity</source>
-        <translation>عيّن غموض ال&مساحة</translation>
+        <location filename="../src/MainWindow.ui" line="951"/>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="127"/>
-        <source>&File</source>
-        <translation>&ملف</translation>
+        <location filename="../src/MainWindow.ui" line="962"/>
+        <location filename="../src/MainWindow.ui" line="965"/>
+        <source>Hide/Show the Layers dock</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="131"/>
-        <source>&Export</source>
-        <translation>&صدّر</translation>
+        <location filename="../src/MainWindow.ui" line="968"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="141"/>
-        <source>Re&cent open</source>
-        <translation>الم&فتوحة حديثاً</translation>
+        <location filename="../src/MainWindow.ui" line="976"/>
+        <source>&Info</source>
+        <translation>ال&معلومات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="146"/>
-        <source>Recen&t import</source>
-        <translation>الم&صدّر حديثاً</translation>
+        <location filename="../src/MainWindow.ui" line="979"/>
+        <location filename="../src/MainWindow.ui" line="982"/>
+        <source>Hide/Show the Info dock</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="174"/>
-        <source>T&ools</source>
-        <translation>ال&عدة</translation>
+        <location filename="../src/MainWindow.ui" line="985"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="178"/>
-        <source>&Style</source>
-        <translation>ال&زيّ</translation>
+        <location filename="../src/MainWindow.ui" line="994"/>
+        <source>&Align</source>
+        <translation>إ&صطف</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="214"/>
-        <location filename="../src/MainWindow.ui" line="648"/>
-        <source>&Node</source>
-        <translation>&العقدة</translation>
+        <location filename="../src/MainWindow.ui" line="997"/>
+        <source>Align nodes</source>
+        <translation>إصطف العقد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="223"/>
-        <source>&Window</source>
-        <translation>&النافذة</translation>
+        <location filename="../src/MainWindow.ui" line="1000"/>
+        <source>Align selected nodes. First two selected give the line.</source>
+        <translation>صفّ العقد المحددة في خط جالس. الأثنتين المختارة أولاً تعطيك الخط.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="227"/>
-        <location filename="../src/MainWindow.ui" line="932"/>
-        <source>&Docks</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1003"/>
+        <source>Alt+A</source>
+        <translation>Alt+A</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="246"/>
-        <source>Fea&ture</source>
-        <translation>ال&خصوصية</translation>
+        <location filename="../src/MainWindow.ui" line="1012"/>
+        <source>&Spread</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="250"/>
-        <location filename="../src/MainWindow.cpp" line="1120"/>
-        <source>OpenStreetBugs</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1015"/>
+        <source>Spread nodes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="266"/>
-        <location filename="../src/MainWindow.ui" line="957"/>
-        <source>&Layers</source>
-        <translation>ال&طبقات</translation>
+        <location filename="../src/MainWindow.ui" line="1018"/>
+        <source>Align and spread selected nodes equally.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="277"/>
-        <source>&Gps</source>
-        <translation>&نطام العالمي لتحديد الموقع</translation>
+        <location filename="../src/MainWindow.ui" line="1029"/>
+        <location filename="../src/MainWindow.ui" line="1032"/>
+        <source>Hide/Show the Undo dock</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="290"/>
-        <source>Rel&ation</source>
-        <translation>ال&علاقة</translation>
+        <location filename="../src/MainWindow.ui" line="1035"/>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="298"/>
-        <source>S&how</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1043"/>
+        <source>Show &downloaded areas</source>
+        <translation>أعرض المساحات ال&منزلة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="394"/>
-        <source>&Quit</source>
-        <translation>إ&نهاء</translation>
+        <location filename="../src/MainWindow.ui" line="1046"/>
+        <source>Ctrl+Alt+A</source>
+        <translation>Ctrl+Alt+A</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="402"/>
-        <source>&About</source>
-        <translation>&حول</translation>
+        <location filename="../src/MainWindow.ui" line="1055"/>
+        <source>&Copy</source>
+        <translation>إ&نسخ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="414"/>
-        <source>&Open</source>
-        <translation>إ&فتح</translation>
+        <location filename="../src/MainWindow.ui" line="1058"/>
+        <source>Copy selected features and tags to the clipboard</source>
+        <translation>أنسخ الخصائص و الأوسمة المختارة إلى الحافظة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="417"/>
-        <source>Create a new document and import a file</source>
-        <translation>أنشئ مستند جديد و إستورد ملفاً</translation>
+        <location filename="../src/MainWindow.ui" line="1061"/>
+        <source>Copy the selected feature's tags to the clipboard; if the feature is a trackpoint, copy the coordinates, too.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="420"/>
-        <source>Ctrl+O</source>
-        <translation>Ctrl+O</translation>
+        <location filename="../src/MainWindow.ui" line="1064"/>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="429"/>
-        <source>Zoom &all</source>
-        <translation>كبّر/صغّر ال&كلّ</translation>
+        <location filename="../src/MainWindow.ui" line="1069"/>
+        <source>Paste Tags (&Overwrite)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="432"/>
-        <source>F2</source>
-        <translation>F2</translation>
+        <location filename="../src/MainWindow.ui" line="1072"/>
+        <source>Paste (and overwrite) the tags in the clipboard to the selected feature.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="437"/>
-        <source>Zoom &window</source>
-        <translation>كبّر ال&نافذة</translation>
+        <location filename="../src/MainWindow.ui" line="1075"/>
+        <source>Ctrl+V, O</source>
+        <translation>Ctrl+V, O</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="440"/>
-        <location filename="../src/MainWindow.ui" line="443"/>
-        <source>Zoom window</source>
-        <translation>كبّر النافذة</translation>
+        <location filename="../src/MainWindow.ui" line="1084"/>
+        <source>Paste Tags (&Merge)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="446"/>
-        <source>F3</source>
-        <translation>F3</translation>
+        <location filename="../src/MainWindow.ui" line="1087"/>
+        <source>Paste tags</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="455"/>
-        <source>Zoom &out</source>
-        <translation>&صغّر الرؤية</translation>
+        <location filename="../src/MainWindow.ui" line="1090"/>
+        <source>Paste tags from the clipboard (Merge with existing tags)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="458"/>
-        <source>-</source>
-        <translation>-</translation>
+        <location filename="../src/MainWindow.ui" line="1093"/>
+        <source>Merge the tags in the clipboard with the ones of the selected feature.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="467"/>
-        <source>Zoom &in</source>
-        <translation>&كبّر الرؤية</translation>
+        <location filename="../src/MainWindow.ui" line="1096"/>
+        <source>Ctrl+V, M</source>
+        <translation>Ctrl+V, M</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="470"/>
-        <location filename="../src/MainWindow.ui" line="473"/>
-        <source>Zoom in</source>
-        <translation>كبّر الرؤية</translation>
+        <location filename="../src/MainWindow.ui" line="1101"/>
+        <location filename="../src/MainWindow.ui" line="1106"/>
+        <source>Selected...</source>
+        <translation>المختارة...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="476"/>
-        <source>+</source>
-        <translation>+</translation>
+        <location filename="../src/MainWindow.ui" line="1115"/>
+        <source>Paste Feature(s)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="481"/>
-        <location filename="../src/MainWindow.ui" line="484"/>
-        <location filename="../src/MainWindow.ui" line="487"/>
-        <source>Curved link</source>
-        <translation>صلة منحنية</translation>
+        <location filename="../src/MainWindow.ui" line="1118"/>
+        <source>Paste</source>
+        <translation>ألصق</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="499"/>
-        <location filename="../src/MainWindow.ui" line="1024"/>
-        <source>&Undo</source>
-        <translation>ت&راجع</translation>
+        <location filename="../src/MainWindow.ui" line="1121"/>
+        <source>Paste features from the clipboard</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="502"/>
-        <source>Ctrl+Z</source>
-        <translation>Ctrl+Z</translation>
+        <location filename="../src/MainWindow.ui" line="1124"/>
+        <source>Paste the features in the clipboard; If the features'id are already in the document, overwrite them.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="511"/>
-        <source>&Redo</source>
-        <translation>&كرّر</translation>
+        <location filename="../src/MainWindow.ui" line="1127"/>
+        <source>Ctrl+V, F</source>
+        <translation>Ctrl+V, F</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="514"/>
-        <source>Ctrl+Y</source>
-        <translation>Ctrl+Y</translation>
+        <location filename="../src/MainWindow.ui" line="1132"/>
+        <source>OSM (XML)</source>
+        <translation>OSM (XML)</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="526"/>
-        <source>&Move</source>
-        <translation>ح&رّك</translation>
+        <location filename="../src/MainWindow.ui" line="1137"/>
+        <source>OSM (Binary)</source>
+        <translation>OSM (ثناءي)</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="529"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
+        <location filename="../src/MainWindow.ui" line="1142"/>
+        <source>&Force Upload</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="538"/>
-        <source>&Import</source>
-        <translation>إ&ستيراد</translation>
+        <location filename="../src/MainWindow.ui" line="1145"/>
+        <source>Commit feature to the dirty layer</source>
+        <translation>أودع الخاصية في طبقة العمل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="541"/>
-        <source>Import a file into the current document</source>
-        <translation>إستورد ملفاً إلى داخل المستند الحالي</translation>
+        <location filename="../src/MainWindow.ui" line="1148"/>
+        <location filename="../src/MainWindow.ui" line="1151"/>
+        <source>Commit the selected feature from a non-uploadable layer (e.g.Track or Extract) to the dirty layer, ready for upload</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="550"/>
-        <source>&Download</source>
-        <translation>&نزّل</translation>
+        <location filename="../src/MainWindow.ui" line="1156"/>
+        <source>GPX</source>
+        <translation>GPX</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="553"/>
-        <source>Download map data for a new area</source>
-        <translation>نزّل معطيات الخريطة لمنطقة أخرى</translation>
+        <location filename="../src/MainWindow.ui" line="1161"/>
+        <source>KML</source>
+        <translation>KML</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="556"/>
-        <source>Ctrl+D</source>
-        <translation>Ctrl+D</translation>
+        <location filename="../src/MainWindow.ui" line="1166"/>
+        <source>Toggle Toolbar</source>
+        <translation>أقلب شريط الأدوات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="561"/>
-        <source>Link</source>
-        <translation>وصلة</translation>
+        <location filename="../src/MainWindow.ui" line="1169"/>
+        <location filename="../src/MainWindow.ui" line="1172"/>
+        <source>Hide/Show the Toolbar</source>
+        <translation>إطهار/إخفاء شريط الأدوات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="564"/>
-        <location filename="../src/MainWindow.ui" line="567"/>
-        <source>Create link</source>
-        <translation>أنتج وصلة</translation>
+        <location filename="../src/MainWindow.ui" line="1177"/>
+        <source>Hide All</source>
+        <translation>إخفاء الكلّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="570"/>
-        <source>L</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1180"/>
+        <location filename="../src/MainWindow.ui" line="1188"/>
+        <source>Ctrl+F</source>
+        <translation>Ctrl+F</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="582"/>
-        <source>&Select</source>
-        <translation>إ&نتقي</translation>
+        <location filename="../src/MainWindow.ui" line="1185"/>
+        <source>Show All</source>
+        <translation>أعرض الكلّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="585"/>
-        <source>Esc</source>
-        <translation>Esc</translation>
+        <location filename="../src/MainWindow.ui" line="1196"/>
+        <source>&Image layer</source>
+        <translation>&طبقة الصورة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="594"/>
-        <source>&Upload</source>
-        <translation>&حمّل</translation>
+        <location filename="../src/MainWindow.ui" line="1201"/>
+        <source>&Raster/SVG</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="597"/>
-        <source>Upload changes to the server</source>
-        <translation>حمّل التغييرات إلى المخدم</translation>
+        <location filename="../src/MainWindow.ui" line="1209"/>
+        <source>Show &nodes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="600"/>
-        <source>Ctrl+U</source>
-        <translation>Ctrl+U</translation>
+        <location filename="../src/MainWindow.ui" line="1212"/>
+        <source>Ctrl+Alt+P</source>
+        <translation>Ctrl+Alt+P</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="612"/>
-        <source>R&emove</source>
-        <translation>إ&زالة</translation>
+        <location filename="../src/MainWindow.ui" line="1220"/>
+        <source>Show na&mes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="615"/>
-        <source>Remove selected features</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1223"/>
+        <source>Ctrl+Alt+N</source>
+        <translation>Ctrl+Alt+N</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="618"/>
-        <source>Del</source>
-        <translation>Del</translation>
+        <location filename="../src/MainWindow.ui" line="1228"/>
+        <source>&Start</source>
+        <translation>&إبدأ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="633"/>
-        <source>Create new road</source>
-        <translation>أنشئ طريق جديدة</translation>
+        <location filename="../src/MainWindow.ui" line="1231"/>
+        <source>Start GPS</source>
+        <translation>إبدء تشغيل جهاز الــGPS</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="636"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
+        <location filename="../src/MainWindow.ui" line="1236"/>
+        <source>&Replay...</source>
+        <translation>&كرّر التشغيل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="651"/>
-        <source>Create new node</source>
-        <translation>أنشئ عقدة جديدة</translation>
+        <location filename="../src/MainWindow.ui" line="1239"/>
+        <source>Replay GPS</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="654"/>
-        <source>Ctrl+N</source>
-        <translation>Ctrl+N</translation>
+        <location filename="../src/MainWindow.ui" line="1247"/>
+        <source>&GPS</source>
+        <translation>&نطام العالمي لتحديد الموقع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="666"/>
-        <source>&Reverse</source>
-        <translation>أ&عكس</translation>
+        <location filename="../src/MainWindow.ui" line="1250"/>
+        <location filename="../src/MainWindow.ui" line="1253"/>
+        <source>Hide/Show the GPS dock</source>
+        <translation>إخفاء/عرض حاضن جهاز تحديد المواقع العالمي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="669"/>
-        <source>Reverse road direction</source>
-        <translation>أعكس إتجاه الطريق</translation>
+        <location filename="../src/MainWindow.ui" line="1256"/>
+        <source>Ctrl+W</source>
+        <translation>Ctrl+W</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="678"/>
-        <source>&Go To...</source>
-        <translation>&إذهب إلى...</translation>
+        <location filename="../src/MainWindow.ui" line="1264"/>
+        <source>S&top</source>
+        <translation>&قفّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="681"/>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
+        <location filename="../src/MainWindow.ui" line="1267"/>
+        <source>Stop GPS</source>
+        <translation>قِفّ  تشغيل جهاز الــGPS</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="686"/>
-        <source>&Double carriage way</source>
-        <translation>&طريق ذو إتجاهين</translation>
+        <location filename="../src/MainWindow.ui" line="1275"/>
+        <source>&Center on GPS</source>
+        <translation>&حدّد المركز على جهاز النظام العالمي لتحديد الموقع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="689"/>
-        <source>Create Double carriage way</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1283"/>
+        <source>Show track &segments</source>
+        <translation>أعرض &قطع الأثر</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="697"/>
-        <source>Create Roundabout</source>
-        <translation>أنشئ مسديرة سير</translation>
+        <location filename="../src/MainWindow.ui" line="1286"/>
+        <source>Ctrl+Alt+T</source>
+        <translation>Ctrl+Alt+T</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="709"/>
-        <source>&New</source>
-        <translation>&جديد</translation>
+        <location filename="../src/MainWindow.ui" line="1294"/>
+        <source>Show &scale</source>
+        <translation>أعرض ال&مقياس</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="712"/>
-        <source>Create a new document</source>
-        <translation>انشيء مستند جديد</translation>
+        <location filename="../src/MainWindow.ui" line="1297"/>
+        <source>Ctrl+Alt+S</source>
+        <translation>Ctrl+Alt+S</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="721"/>
-        <source>&Split</source>
-        <translation>إ&قطع</translation>
+        <location filename="../src/MainWindow.ui" line="1305"/>
+        <source>Show &relations</source>
+        <translation>أعر&ض العلاقات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="724"/>
-        <source>Split road into separate (connected) roads</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1308"/>
+        <source>Ctrl+Alt+R</source>
+        <translation>Ctrl+Alt+R</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="727"/>
-        <source>Alt+S</source>
-        <translation>Alt+S</translation>
+        <location filename="../src/MainWindow.ui" line="1316"/>
+        <source>Show roads background</source>
+        <translation>أعرض خلفية الطرقات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="736"/>
-        <source>&Join</source>
-        <translation>إ&جمع</translation>
+        <location filename="../src/MainWindow.ui" line="1324"/>
+        <source>Show roads boundary</source>
+        <translation>أعرض حدود الطرقات</translation>
     </message>
-    <message>
-        <location filename="../src/MainWindow.ui" line="739"/>
-        <source>Join connected roads to a single road</source>
-        <translation>أدمج الطرقات الموصولة في طريق واحدة</translation>
+    <message>
+        <location filename="../src/MainWindow.ui" line="1332"/>
+        <source>Show touchup</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="742"/>
-        <source>Alt+J</source>
-        <translation>Alt+J</translation>
+        <location filename="../src/MainWindow.ui" line="1343"/>
+        <location filename="../src/MainWindow.ui" line="1346"/>
+        <source>Record</source>
+        <translation>سجِّل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="751"/>
-        <source>&Break apart</source>
-        <translation>&أفصلها عن بعض البعض</translation>
+        <location filename="../src/MainWindow.ui" line="1349"/>
+        <source>Record GPS</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="754"/>
-        <source>Break</source>
-        <translation>أفصل</translation>
+        <location filename="../src/MainWindow.ui" line="1360"/>
+        <source>Pause</source>
+        <translation>توقف</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="757"/>
-        <source>Break apart connected roads</source>
-        <translation>أفصل الطرقات الموصولة عن بعضها البعض</translation>
+        <location filename="../src/MainWindow.ui" line="1363"/>
+        <source>Pause GPS</source>
+        <translation>أوقف جهاز تحديد المواقع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="760"/>
-        <source>Alt+B</source>
-        <translation>Alt+B</translation>
+        <location filename="../src/MainWindow.ui" line="1371"/>
+        <source>G&eoImage</source>
+        <translation>صورة &جغرافية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="765"/>
-        <source>Re&lation</source>
-        <translation>&علاقة</translation>
+        <location filename="../src/MainWindow.ui" line="1374"/>
+        <location filename="../src/MainWindow.ui" line="1377"/>
+        <source>Hide/Show the GeoImage dock</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="768"/>
-        <source>Create Relation</source>
-        <translation>أنشئ العلاقة</translation>
+        <location filename="../src/MainWindow.ui" line="1380"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="780"/>
-        <source>&Area</source>
-        <translation>&المساحة</translation>
+        <location filename="../src/MainWindow.ui" line="1385"/>
+        <source>World OSB manager...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="783"/>
-        <source>Create new area</source>
-        <translation>إنشئ مساحة جديدة</translation>
+        <location filename="../src/MainWindow.ui" line="1393"/>
+        <source>&Shortcut Editor...</source>
+        <translation>&محرر مختصر المفاتيح...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="788"/>
-        <source>&Edit...</source>
-        <translation>&حرّر...</translation>
+        <location filename="../src/MainWindow.ui" line="1403"/>
+        <source>&Merge...</source>
+        <translation>إ&دمج...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1406"/>
+        <location filename="../src/MainWindow.ui" line="1408"/>
         <source>&Save...</source>
         <translation>&إحفظ...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="798"/>
-        <location filename="../src/MainWindow.ui" line="1396"/>
-        <source>&Load...</source>
-        <translation>&حمّل...</translation>
+        <location filename="../src/MainWindow.ui" line="1413"/>
+        <source>&Add member</source>
+        <translation>&أضف عضواً</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="694"/>
-        <source>R&oundabout</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1418"/>
+        <source>&Remove member</source>
+        <translation>&أحذف العضو</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="803"/>
-        <source>&Curved road</source>
-        <translation>&طريق منحنية</translation>
+        <location filename="../src/MainWindow.ui" line="1426"/>
+        <source>&Never</source>
+        <translation>قطّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="812"/>
-        <source>&Preferences...</source>
-        <translation>الت&فضيلات...</translation>
+        <location filename="../src/MainWindow.ui" line="1434"/>
+        <source>for &Oneway roads</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="820"/>
-        <location filename="../src/MainWindow.ui" line="828"/>
-        <source>&All...</source>
-        <translation>ال&كلّ</translation>
+        <location filename="../src/MainWindow.ui" line="1442"/>
+        <source>&Always</source>
+        <translation>&دائماً</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="823"/>
-        <location filename="../src/MainWindow.ui" line="831"/>
-        <source>Export all visible layers to a file</source>
-        <translation>صدّر كلّ الطبقات الظاهرة إلى ملف</translation>
+        <location filename="../src/MainWindow.ui" line="1451"/>
+        <source>&Detach</source>
+        <translation>&فكّ</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="840"/>
-        <source>&Find...</source>
-        <translation>إ&بحث...</translation>
+        <location filename="../src/MainWindow.ui" line="1454"/>
+        <source>Detach node from a road</source>
+        <translation>أفصل العقدة من الطريق</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="843"/>
-        <source>Find</source>
-        <translation>ابحث</translation>
+        <location filename="../src/MainWindow.ui" line="1457"/>
+        <source>Detach a node from a Road</source>
+        <translation>أفصل عقدة من الطريق</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="846"/>
-        <source>Find and select items</source>
-        <translation>إبحث و إختر بنود</translation>
+        <location filename="../src/MainWindow.ui" line="1469"/>
+        <source>&Work Offline</source>
+        <translation>&عمل بدون إتصال</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="851"/>
-        <location filename="../src/MainWindow.ui" line="859"/>
-        <source>&Viewport...</source>
-        <translation>&نافذة الرؤية</translation>
+        <location filename="../src/MainWindow.ui" line="1474"/>
+        <source>SVG</source>
+        <translation>رسم</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="854"/>
-        <location filename="../src/MainWindow.ui" line="862"/>
-        <source>Export the features in the viewport to a file</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1482"/>
+        <source>&Styles</source>
+        <translation>أ&زياء</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="867"/>
-        <source>&Add...</source>
-        <translation>أ&ضف...</translation>
+        <location filename="../src/MainWindow.ui" line="1485"/>
+        <location filename="../src/MainWindow.ui" line="1488"/>
+        <source>Hide/Show the Styles dock</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="872"/>
-        <source>&Remove...</source>
-        <translation>أ&حذف...</translation>
+        <location filename="../src/MainWindow.ui" line="1491"/>
+        <location filename="../src/MainWindow.ui" line="1893"/>
+        <source>Ctrl+B</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="877"/>
-        <source>&Merge</source>
-        <translation>إ&دمج</translation>
+        <location filename="../src/MainWindow.ui" line="1496"/>
+        <source>&WMS Servers Editor...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="880"/>
-        <source>Node Merge</source>
-        <translation>دمج العقد</translation>
+        <location filename="../src/MainWindow.ui" line="1501"/>
+        <source>&TMS Servers Editor...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="883"/>
-        <source>Merge the selected nodes (first selected will remain)</source>
-        <translation>أدمج العقد المختارة (ستبقى العقد المحددة أولاً)</translation>
+        <location filename="../src/MainWindow.ui" line="1506"/>
+        <source>&Reset Discardable dialogs status</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="886"/>
-        <source>Alt+M</source>
-        <translation>Alt+M</translation>
+        <location filename="../src/MainWindow.ui" line="1515"/>
+        <source>GPS Menu</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="793"/>
-        <location filename="../src/MainWindow.ui" line="891"/>
-        <source>Save &As...</source>
-        <translation>إحفظ &كــ ...</translation>
+        <location filename="../src/MainWindow.ui" line="1524"/>
+        <source>Camera</source>
+        <translation>آلة التصوير</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="900"/>
-        <location filename="../src/MainWindow.ui" line="1832"/>
-        <source>&Save</source>
-        <translation>إحف&ظ</translation>
+        <location filename="../src/MainWindow.ui" line="1529"/>
+        <source>Create &Junction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="903"/>
-        <source>Save to file</source>
-        <translation>إحفظ في ملف</translation>
+        <location filename="../src/MainWindow.ui" line="1541"/>
+        <source>Rotate</source>
+        <translation>إستدارة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="906"/>
-        <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
+        <location filename="../src/MainWindow.ui" line="1544"/>
+        <source>Ctrl+A</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="915"/>
-        <source>Download more</source>
-        <translation>نزّل المزيد</translation>
+        <location filename="../src/MainWindow.ui" line="1549"/>
+        <source>&Polygon</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="918"/>
-        <source>Download more map data for the current area</source>
-        <translation>نزّل المزيد من المعطيات للمنطقة الحالية</translation>
+        <location filename="../src/MainWindow.ui" line="1554"/>
+        <source>Rectangular &building</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="921"/>
-        <location filename="../src/MainWindow.ui" line="924"/>
-        <source>Download the current view to the previous download layer</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1559"/>
+        <source>Add new &Image layer</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="927"/>
-        <source>Ctrl+Shift+D</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1567"/>
+        <source>Features</source>
+        <translation>الميزات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="940"/>
-        <source>&Properties</source>
-        <translation>&خصائص</translation>
+        <location filename="../src/MainWindow.ui" line="1572"/>
+        <source>Add street &numbers (Karlsruhe scheme)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="943"/>
-        <location filename="../src/MainWindow.ui" line="946"/>
-        <source>Hide/Show the Properties dock</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1581"/>
+        <source>&Subdivide</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="949"/>
-        <source>Ctrl+P</source>
-        <translation>Ctrl+P</translation>
+        <location filename="../src/MainWindow.ui" line="1584"/>
+        <source>Subdivide segment equally</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="960"/>
-        <location filename="../src/MainWindow.ui" line="963"/>
-        <source>Hide/Show the Layers dock</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1587"/>
+        <source>Subdivide a selected way segment (the way and two adjacent nodes) into segments of equal length.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="966"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
+        <location filename="../src/MainWindow.ui" line="1595"/>
+        <source>Show &virtual nodes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="974"/>
-        <source>&Info</source>
-        <translation>ال&معلومات</translation>
+        <location filename="../src/MainWindow.ui" line="1603"/>
+        <source>Show lat/lon &grid</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="977"/>
-        <location filename="../src/MainWindow.ui" line="980"/>
-        <source>Hide/Show the Info dock</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1611"/>
+        <source>&Lock zoom to tiled background</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="983"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
+        <location filename="../src/MainWindow.ui" line="1616"/>
+        <source>&Projections Editor...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="992"/>
-        <source>&Align</source>
-        <translation>إ&صطف</translation>
+        <location filename="../src/MainWindow.ui" line="1624"/>
+        <source>Show &Photos on map</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="995"/>
-        <source>Align nodes</source>
-        <translation>إصطف العقد</translation>
+        <location filename="../src/MainWindow.ui" line="1629"/>
+        <source>OsmChange (OSC)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="998"/>
-        <source>Align selected nodes. First two selected give the line.</source>
-        <translation>صفّ العقد المحددة في خط جالس. الأثنتين المختارة أولاً تعطيك الخط.</translation>
+        <location filename="../src/MainWindow.ui" line="1634"/>
+        <source>Force Delete</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1001"/>
-        <source>Alt+A</source>
-        <translation>Alt+A</translation>
+        <location filename="../src/MainWindow.ui" line="1639"/>
+        <source>Add OpenStreet&Bugs layer</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1010"/>
-        <source>&Spread</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1644"/>
+        <source>Close</source>
+        <translation>أغلِق</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1013"/>
-        <source>Spread nodes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1649"/>
+        <source>S&implify</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1016"/>
-        <source>Align and spread selected nodes equally.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1652"/>
+        <source>Simplify road(s)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1027"/>
-        <location filename="../src/MainWindow.ui" line="1030"/>
-        <source>Hide/Show the Undo dock</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1655"/>
+        <source>Simplify way by removing unnecessary child nodes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1033"/>
-        <source>Ctrl+T</source>
-        <translation>Ctrl+T</translation>
+        <location filename="../src/MainWindow.ui" line="1660"/>
+        <source>&Filters Editor...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1041"/>
-        <source>Show &downloaded areas</source>
-        <translation>أعرض المساحات ال&منزلة</translation>
+        <location filename="../src/MainWindow.ui" line="1668"/>
+        <source>&None</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1044"/>
-        <source>Ctrl+Alt+A</source>
-        <translation>Ctrl+Alt+A</translation>
+        <location filename="../src/MainWindow.ui" line="1677"/>
+        <source>&Join Areas</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1053"/>
-        <source>&Copy</source>
-        <translation>إ&نسخ</translation>
+        <location filename="../src/MainWindow.ui" line="1680"/>
+        <source>Join touching areas</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1056"/>
-        <source>Copy selected features and tags to the clipboard</source>
-        <translation>أنسخ الخصائص و الأوسمة المختارة إلى الحافظة</translation>
+        <location filename="../src/MainWindow.ui" line="1683"/>
+        <source>Join areas which are touching.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1059"/>
-        <source>Copy the selected feature's tags to the clipboard; if the feature is a trackpoint, copy the coordinates, too.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1692"/>
+        <source>&Split Area</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1062"/>
-        <source>Ctrl+C</source>
-        <translation>Ctrl+C</translation>
+        <location filename="../src/MainWindow.ui" line="1695"/>
+        <source>Split area between two nodes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1067"/>
-        <source>Paste Tags (&Overwrite)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1698"/>
+        <source>Split a selected area between two selected nodes into two separate areas.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1070"/>
-        <source>Paste (and overwrite) the tags in the clipboard to the selected feature.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1707"/>
+        <source>&Terrace</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1073"/>
-        <source>Ctrl+V, O</source>
-        <translation>Ctrl+V, O</translation>
+        <location filename="../src/MainWindow.ui" line="1710"/>
+        <source>Terrace area into residences</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1082"/>
-        <source>Paste Tags (&Merge)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1713"/>
+        <source>Split a selected area into terraced residences.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1085"/>
-        <source>Paste tags</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1718"/>
+        <source>Toolbar Editor...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1088"/>
-        <source>Paste tags from the clipboard (Merge with existing tags)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1727"/>
+        <source>A&xis Align</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1091"/>
-        <source>Merge the tags in the clipboard with the ones of the selected feature.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1730"/>
+        <source>Align edges to regular axes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1094"/>
-        <source>Ctrl+V, M</source>
-        <translation>Ctrl+V, M</translation>
+        <location filename="../src/MainWindow.ui" line="1733"/>
+        <source>Align edges to a certain number of regularly spaced axes.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1099"/>
-        <location filename="../src/MainWindow.ui" line="1104"/>
-        <source>Selected...</source>
-        <translation>المختارة...</translation>
+        <location filename="../src/MainWindow.ui" line="1738"/>
+        <source>&Print...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1547"/>
-        <source>&Polygon</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1743"/>
+        <source>Print preview...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1552"/>
-        <source>Rectangular &building</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1748"/>
+        <location filename="../src/MainWindow.cpp" line="400"/>
+        <source>Properties...</source>
+        <translation>الخصائص...</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1557"/>
-        <source>Add new &Image layer</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1756"/>
+        <source>Highlight dirt&y features</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1637"/>
-        <source>Add OpenStreet&Bugs layer</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1761"/>
+        <source>Add new &Drawing layer</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1696"/>
-        <source>Split a selected area between two selected nodes into two separate areas.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1770"/>
+        <source>Cu&t</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1725"/>
-        <source>A&xis Align</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1773"/>
+        <source>Ctrl+X</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1728"/>
-        <source>Align edges to regular axes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1778"/>
+        <source>Add new &Filter layer</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1731"/>
-        <source>Align edges to a certain number of regularly spaced axes.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1786"/>
+        <source>E&xtrude</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1736"/>
-        <source>&Print...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1789"/>
+        <source>Extrude interaction for ways (JOSM style)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1741"/>
-        <source>Print preview...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1792"/>
+        <source>Alt+X</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1754"/>
-        <source>Highlight dirt&y features</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1797"/>
+        <source>Select toggle</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1759"/>
-        <source>Add new &Drawing layer</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1802"/>
+        <source>Include children in selection</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1776"/>
-        <source>Add new &Filter layer</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1814"/>
+        <source>Scale</source>
+        <translation>المقياس</translation>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.ui" line="1819"/>
+        <source>Save as Template Document...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1822"/>
+        <location filename="../src/MainWindow.ui" line="1824"/>
         <source>Create Multipolygon</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1827"/>
+        <location filename="../src/MainWindow.ui" line="1829"/>
         <source>Add to Multi&polygon</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1837"/>
-        <source>GDAL</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1839"/>
+        <source>GDAL SQLite/SpatiLite</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1842"/>
+        <location filename="../src/MainWindow.ui" line="1844"/>
         <source>Bing Road Detector</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1847"/>
+        <location filename="../src/MainWindow.ui" line="1849"/>
         <source>Rebuild &History</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1852"/>
+        <location filename="../src/MainWindow.ui" line="1854"/>
         <source>Add Map&Dust layer</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1860"/>
+        <location filename="../src/MainWindow.ui" line="1862"/>
         <source>Wireframe</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1863"/>
+        <location filename="../src/MainWindow.ui" line="1865"/>
         <source>Ctrl+Alt+W</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1868"/>
+        <location filename="../src/MainWindow.ui" line="1870"/>
         <source>Select parent(s)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1873"/>
+        <location filename="../src/MainWindow.ui" line="1875"/>
         <source>Download missing children</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1768"/>
-        <source>Cu&t</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1887"/>
+        <source>&Bridge</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1771"/>
-        <source>Ctrl+X</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.ui" line="1890"/>
+        <source><html><head/><body><p>Transform way to a bridge</p></body></html></source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1784"/>
-        <source>E&xtrude</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="712"/>
+        <source>Clear Tag '%1' on %2</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1787"/>
-        <source>Extrude interaction for ways (JOSM style)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="720"/>
+        <source>Clear %1 tags on %2</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1790"/>
-        <source>Alt+X</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="753"/>
+        <source>Set "source" tag on %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1795"/>
-        <source>Select toggle</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="776"/>
+        <source>Remove member '%1' on %2</source>
+        <translation>أحذف العضو '%1' على %2</translation>
+    </message>
+    <message>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="853"/>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="898"/>
+        <source>Reorder members in relation %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1800"/>
-        <source>Include children in selection</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Features/Relation.cpp" line="795"/>
+        <source>Relation Modified %1</source>
+        <translation>العلاقة المغييرة %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1812"/>
-        <source>Scale</source>
-        <translation>المقياس</translation>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="36"/>
+        <location filename="../src/Interactions/CreateNodeInteraction.cpp" line="33"/>
+        <source>Create node Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1817"/>
-        <source>Save as Template Document...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/BuildBridgeInteraction.cpp" line="158"/>
+        <location filename="../src/Interactions/CreateNodeInteraction.cpp" line="112"/>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="260"/>
+        <source>Create node in Road: %1</source>
+        <translation>أنشئ عقدة في الطريق: %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1116"/>
-        <source>Paste</source>
-        <translation>ألصق</translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="37"/>
+        <source>Create Area Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1119"/>
-        <source>Paste features from the clipboard</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="105"/>
+        <source>Create Area %1</source>
+        <translation>أنشئ المنطقة %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1122"/>
-        <source>Paste the features in the clipboard; If the features'id are already in the document, overwrite them.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="140"/>
+        <source>Area: Create Road %1</source>
+        <translation>المنطقة: أنشئ الطريق %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1125"/>
-        <source>Ctrl+V, F</source>
-        <translation>Ctrl+V, F</translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="168"/>
+        <source>Add a hole.</source>
+        <translation>أضف ثغرة.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1130"/>
-        <source>OSM (XML)</source>
-        <translation>OSM (XML)</translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="169"/>
+        <source>Do you want to add a(nother) hole to this area?</source>
+        <translation>هل تريد إضافة فجوة (جديدة) إلى هذه المساحة ؟</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1135"/>
-        <source>OSM (Binary)</source>
-        <translation>OSM (ثناءي)</translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="173"/>
+        <source>Area: Finish Road %1</source>
+        <translation>المنطقة: أنهي الطريق %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1143"/>
-        <source>Commit feature to the dirty layer</source>
-        <translation>أودع الخاصية في طبقة العمل</translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="188"/>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="199"/>
+        <source>Area: Add node %1 to Road %2</source>
+        <translation>المنطقة: أضف العقدة %1 إلى الطريق %2</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1146"/>
-        <location filename="../src/MainWindow.ui" line="1149"/>
-        <source>Commit the selected feature from a non-uploadable layer (e.g.Track or Extract) to the dirty layer, ready for upload</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="269"/>
+        <source>Close Area %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1154"/>
-        <source>GPX</source>
-        <translation>GPX</translation>
+        <location filename="../src/Interactions/CreateDoubleWayInteraction.cpp" line="49"/>
+        <source>Create double way Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1159"/>
-        <source>KML</source>
-        <translation>KML</translation>
+        <location filename="../src/Interactions/CreateDoubleWayInteraction.cpp" line="173"/>
+        <source>Add nodes to double-way Road %1</source>
+        <translation>أضف العقدة إلى الطريق %1 المزدوجة الممرات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1164"/>
-        <source>Toggle Toolbar</source>
-        <translation>أقلب شريط الأدوات</translation>
+        <location filename="../src/Interactions/CreateDoubleWayInteraction.cpp" line="224"/>
+        <source>Create double-way Road %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1167"/>
-        <location filename="../src/MainWindow.ui" line="1170"/>
-        <source>Hide/Show the Toolbar</source>
-        <translation>إطهار/إخفاء شريط الأدوات</translation>
+        <location filename="../src/Interactions/CreateNodeInteraction.cpp" line="121"/>
+        <source>Create POI %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1175"/>
-        <source>Hide All</source>
-        <translation>إخفاء الكلّ</translation>
+        <location filename="../src/Interactions/CreatePolygonInteraction.cpp" line="36"/>
+        <source>LEFT-CLICK to start;DRAG to scale;SHIFT-DRAG to rotate;LEFT-CLICK to end</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1178"/>
-        <location filename="../src/MainWindow.ui" line="1186"/>
-        <source>Ctrl+F</source>
-        <translation>Ctrl+F</translation>
+        <location filename="../src/Interactions/CreatePolygonInteraction.cpp" line="41"/>
+        <source>Create Polygon Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1183"/>
-        <source>Show All</source>
-        <translation>أعرض الكلّ</translation>
+        <location filename="../src/Interactions/CreatePolygonInteraction.cpp" line="90"/>
+        <source>Create Polygon %1</source>
+        <translation>أنشء متعدد الأضلاع %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1194"/>
-        <source>&Image layer</source>
-        <translation>&طبقة الصورة</translation>
+        <location filename="../src/Interactions/CreateRoundaboutInteraction.cpp" line="50"/>
+        <source>Create roundabout Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1494"/>
-        <source>&WMS Servers Editor...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateRoundaboutInteraction.cpp" line="89"/>
+        <source>Create Roundabout %1</source>
+        <translation>إنشاء مستديرة %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1499"/>
-        <source>&TMS Servers Editor...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="59"/>
+        <location filename="../src/Interactions/ExtrudeInteraction.cpp" line="43"/>
+        <source>Create way Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1579"/>
-        <source>&Subdivide</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="238"/>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="298"/>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="309"/>
+        <source>Create Node %1 in Road %2</source>
+        <translation>أنشئ العقدة %1 في الطريق %2</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1582"/>
-        <source>Subdivide segment equally</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="282"/>
+        <source>Create Road: %1</source>
+        <translation>%1إنشاء الطريق :</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1585"/>
-        <source>Subdivide a selected way segment (the way and two adjacent nodes) into segments of equal length.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="290"/>
+        <source>Create Node: %1</source>
+        <translation>أنشئ العقدة : %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1647"/>
-        <source>S&implify</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="312"/>
+        <source>Add Node %1 to Road %2</source>
+        <translation>أضف العقدة %1 إلى الطريق %2</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1650"/>
-        <source>Simplify road(s)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="351"/>
+        <source>Close Road %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1653"/>
-        <source>Simplify way by removing unnecessary child nodes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="52"/>
+        <source>LEFT-CLICK to select;RIGHT-CLICK to pan;CTRL-LEFT-CLICK to toggle selection;SHIFT-LEFT-CLICK to add to selection;LEFT-DRAG for area selection;CTRL-RIGHT-DRAG for zoom;DOUBLE-CLICK to create a node;DOUBLE-CLICK on a node to start a way;</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1658"/>
-        <source>&Filters Editor...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="54"/>
+        <source>CLICK to select/move;CTRL-CLICK to toggle selection;SHIFT-CLICK to add to selection;SHIFT-DRAG for area selection;CTRL-DRAG for zoom;DOUBLE-CLICK to create a node;DOUBLE-CLICK on a node to start a way;</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1666"/>
-        <source>&None</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="59"/>
+        <source>Edit Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1675"/>
-        <source>&Join Areas</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="291"/>
+        <source>Remove feature %1</source>
+        <translation>أحذف الميزة %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1678"/>
-        <source>Join touching areas</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="293"/>
+        <source>Remove features</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1681"/>
-        <source>Join areas which are touching.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="303"/>
+        <source>Delete Children.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1690"/>
-        <source>&Split Area</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="304"/>
+        <source>Do you want to delete the children nodes also?
+Note that OSM nodes outside the downloaded area will be kept.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1693"/>
-        <source>Split area between two nodes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/EditInteraction.cpp" line="329"/>
+        <source>Reverse %1 ways</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1705"/>
-        <source>&Terrace</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/ExtrudeInteraction.cpp" line="133"/>
+        <source>Extrude Road %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1708"/>
-        <source>Terrace area into residences</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="42"/>
+        <source>LEFT-CLICK to select;LEFT-DRAG to move</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1711"/>
-        <source>Split a selected area into terraced residences.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="47"/>
+        <source>Move node Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1716"/>
-        <source>Toolbar Editor...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="154"/>
+        <source>Move Nodes</source>
+        <translation>أنقل العقد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1199"/>
-        <source>&Raster/SVG</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="158"/>
+        <source>Move Node %1</source>
+        <translation>أقل اعقدة %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="189"/>
-        <source>Ta&g templates</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="211"/>
+        <source>Nodes at the same position found.</source>
+        <translation>وجدتُ عقد على نفس الموقع.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="347"/>
-        <source>Main toolbar</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="212"/>
+        <source>Do you want to merge all nodes at the drop position?</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1210"/>
-        <source>Ctrl+Alt+P</source>
-        <translation>Ctrl+Alt+P</translation>
+        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="221"/>
+        <location filename="../src/MainWindow.cpp" line="2808"/>
+        <source>Merge Nodes into %1</source>
+        <translation>أدمج العقد إلى %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1221"/>
-        <source>Ctrl+Alt+N</source>
-        <translation>Ctrl+Alt+N</translation>
+        <location filename="../src/Interactions/RotateInteraction.cpp" line="39"/>
+        <source>HOVER to select;LEFT-DRAG to rotate</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1226"/>
-        <source>&Start</source>
-        <translation>&إبدأ</translation>
+        <location filename="../src/Interactions/RotateInteraction.cpp" line="44"/>
+        <source>Rotate Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1229"/>
-        <source>Start GPS</source>
-        <translation>إبدء تشغيل جهاز الــGPS</translation>
+        <location filename="../src/Interactions/RotateInteraction.cpp" line="139"/>
+        <source>Rotate Feature</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1234"/>
-        <source>&Replay...</source>
-        <translation>&كرّر التشغيل</translation>
+        <location filename="../src/Interactions/ScaleInteraction.cpp" line="39"/>
+        <source>HOVER to select;LEFT-DRAG to scale</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1237"/>
-        <source>Replay GPS</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Interactions/ScaleInteraction.cpp" line="44"/>
+        <source>Scale Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1245"/>
-        <source>&GPS</source>
-        <translation>&نطام العالمي لتحديد الموقع</translation>
+        <location filename="../src/Interactions/ScaleInteraction.cpp" line="139"/>
+        <source>Scale Feature</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1248"/>
-        <location filename="../src/MainWindow.ui" line="1251"/>
-        <source>Hide/Show the GPS dock</source>
-        <translation>إخفاء/عرض حاضن جهاز تحديد المواقع العالمي</translation>
+        <location filename="../src/Interactions/ZoomInteraction.cpp" line="27"/>
+        <source>LEFT-CLICK to first corner -> LEFT-DRAG to specify area -> LEFT-CLICK to zoom</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1254"/>
-        <source>Ctrl+W</source>
-        <translation>Ctrl+W</translation>
+        <location filename="../src/Interactions/ZoomInteraction.cpp" line="30"/>
+        <source>Zoom Interaction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1262"/>
-        <source>S&top</source>
-        <translation>&قفّ</translation>
+        <location filename="../src/MainWindow.cpp" line="191"/>
+        <source>GPS Exchange format (*.gpx)
+</source>
+        <translation>تصميم تبادل الملفات (*.gpx) لجهاز تحديد المواقع العالمي
+</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1265"/>
-        <source>Stop GPS</source>
-        <translation>قِفّ  تشغيل جهاز الــGPS</translation>
+        <location filename="../src/MainWindow.cpp" line="192"/>
+        <source>OpenStreetMap format (*.osm)
+</source>
+        <translation>تصميم المفات OpenStreetMap (*.osm)
+</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1273"/>
-        <source>&Center on GPS</source>
-        <translation>&حدّد المركز على جهاز النظام العالمي لتحديد الموقع</translation>
+        <location filename="../src/MainWindow.cpp" line="193"/>
+        <source>OpenStreetMap change format (*.osc)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1281"/>
-        <source>Show track &segments</source>
-        <translation>أعرض &قطع الأثر</translation>
+        <location filename="../src/MainWindow.cpp" line="194"/>
+        <source>Noni GPSPlot format (*.ngt)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1284"/>
-        <source>Ctrl+Alt+T</source>
-        <translation>Ctrl+Alt+T</translation>
+        <location filename="../src/MainWindow.cpp" line="195"/>
+        <source>NMEA GPS log format (*.nmea *.nma)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1292"/>
-        <source>Show &scale</source>
-        <translation>أعرض ال&مقياس</translation>
+        <location filename="../src/MainWindow.cpp" line="196"/>
+        <source>KML file (*.kml)
+</source>
+        <translation>مستند KML (*.kml)
+</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1295"/>
-        <source>Ctrl+Alt+S</source>
-        <translation>Ctrl+Alt+S</translation>
+        <location filename="../src/MainWindow.cpp" line="197"/>
+        <source>Comma delimited format (*.csv)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1303"/>
-        <source>Show &relations</source>
-        <translation>أعر&ض العلاقات</translation>
+        <location filename="../src/MainWindow.cpp" line="200"/>
+        <source>Geotagged images (*.jpg)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1306"/>
-        <source>Ctrl+Alt+R</source>
-        <translation>Ctrl+Alt+R</translation>
+        <location filename="../src/MainWindow.cpp" line="202"/>
+        <source>ESRI Shapefile (*.shp)
+</source>
+        <translation>ملف شكل ESRI  (*.shp)
+</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1314"/>
-        <source>Show roads background</source>
-        <translation>أعرض خلفية الطرقات</translation>
+        <location filename="../src/MainWindow.cpp" line="202"/>
+        <source>Geography Markup Language (*.gml)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1322"/>
-        <source>Show roads boundary</source>
-        <translation>أعرض حدود الطرقات</translation>
+        <location filename="../src/MainWindow.cpp" line="204"/>
+        <source>Protobuf Binary Format (*.pbf)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1330"/>
-        <source>Show touchup</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="207"/>
+        <location filename="../src/MainWindow.cpp" line="211"/>
+        <location filename="../src/MainWindow.cpp" line="3024"/>
+        <source>Supported formats</source>
+        <translation>التنسيقات المتوفّرة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1341"/>
-        <location filename="../src/MainWindow.ui" line="1344"/>
-        <source>Record</source>
-        <translation>سجِّل</translation>
+        <location filename="../src/MainWindow.cpp" line="208"/>
+        <source>Merkaartor document (*.mdc)
+</source>
+        <translation>مستند Merkaartor (*.mdc)
+</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1347"/>
-        <source>Record GPS</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="209"/>
+        <location filename="../src/MainWindow.cpp" line="213"/>
+        <location filename="../src/MainWindow.cpp" line="3206"/>
+        <location filename="../src/MainWindow.cpp" line="3216"/>
+        <location filename="../src/MainWindow.cpp" line="3398"/>
+        <location filename="../src/MainWindow.cpp" line="3413"/>
+        <location filename="../src/MainWindow.cpp" line="3434"/>
+        <location filename="../src/MainWindow.cpp" line="3469"/>
+        <location filename="../src/MainWindow.cpp" line="4193"/>
+        <source>All Files (*)</source>
+        <translation>كلّ الملفات (*)</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1358"/>
-        <source>Pause</source>
-        <translation>توقف</translation>
+        <location filename="../src/MainWindow.cpp" line="246"/>
+        <source>tile %v / %m</source>
+        <translation>البلاطة %v / %m</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1361"/>
-        <source>Pause GPS</source>
-        <translation>أوقف جهاز تحديد المواقع</translation>
+        <location filename="../src/MainWindow.cpp" line="423"/>
+        <source>Cannot load Projections file</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1369"/>
-        <source>G&eoImage</source>
-        <translation>صورة &جغرافية</translation>
+        <location filename="../src/MainWindow.cpp" line="423"/>
+        <source>"Projections.xml" could not be opened anywhere. Aborting.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1372"/>
-        <location filename="../src/MainWindow.ui" line="1375"/>
-        <source>Hide/Show the GeoImage dock</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="430"/>
+        <source>Low</source>
+        <translation>منحفض</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1378"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
+        <location filename="../src/MainWindow.cpp" line="430"/>
+        <source>High</source>
+        <translation>عالي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1383"/>
-        <source>World OSB manager...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="430"/>
+        <source>Opaque</source>
+        <translation>غير شفاف</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1391"/>
-        <source>&Shortcut Editor...</source>
-        <translation>&محرر مختصر المفاتيح...</translation>
+        <location filename="../src/MainWindow.cpp" line="597"/>
+        <location filename="../src/MainWindow.cpp" line="1117"/>
+        <source>Feature</source>
+        <translation>الخصوصية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1401"/>
-        <source>&Merge...</source>
-        <translation>إ&دمج...</translation>
+        <location filename="../src/MainWindow.cpp" line="606"/>
+        <location filename="../src/MainWindow.cpp" line="1119"/>
+        <source>Node</source>
+        <translation>العقدة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1411"/>
-        <source>&Add member</source>
-        <translation>&أضف عضواً</translation>
+        <location filename="../src/MainWindow.cpp" line="614"/>
+        <source>Road</source>
+        <translation>الطريق</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1416"/>
-        <source>&Remove member</source>
-        <translation>&أحذف العضو</translation>
+        <location filename="../src/MainWindow.cpp" line="622"/>
+        <location filename="../src/MainWindow.cpp" line="1121"/>
+        <source>Relation</source>
+        <translation>العلاقة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1424"/>
-        <source>&Never</source>
-        <translation>قطّ</translation>
+        <location filename="../src/MainWindow.cpp" line="738"/>
+        <source>Load image</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1432"/>
-        <source>for &Oneway roads</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="740"/>
+        <source>Add node position to image</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1440"/>
-        <source>&Always</source>
-        <translation>&دائماً</translation>
+        <location filename="../src/MainWindow.cpp" line="742"/>
+        <source>Geotag image with this position</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1449"/>
-        <source>&Detach</source>
-        <translation>&فكّ</translation>
+        <location filename="../src/MainWindow.cpp" line="744"/>
+        <source>Cancel</source>
+        <translation>ألغي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1452"/>
-        <source>Detach node from a road</source>
-        <translation>أفصل العقدة من الطريق</translation>
+        <location filename="../src/MainWindow.cpp" line="1109"/>
+        <source>File</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1455"/>
-        <source>Detach a node from a Road</source>
-        <translation>أفصل عقدة من الطريق</translation>
+        <location filename="../src/MainWindow.cpp" line="1110"/>
+        <source>Edit</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1467"/>
-        <source>&Work Offline</source>
-        <translation>&عمل بدون إتصال</translation>
+        <location filename="../src/MainWindow.cpp" line="1111"/>
+        <source>View</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1472"/>
-        <source>SVG</source>
-        <translation>رسم</translation>
+        <location filename="../src/MainWindow.cpp" line="1112"/>
+        <source>Show</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1480"/>
-        <source>&Styles</source>
-        <translation>أ&زياء</translation>
+        <location filename="../src/MainWindow.cpp" line="1113"/>
+        <source>Directional Arrows</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1483"/>
-        <location filename="../src/MainWindow.ui" line="1486"/>
-        <source>Hide/Show the Styles dock</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1114"/>
+        <source>GPS</source>
+        <translation>GPSجهاز تحديد المواقع العالمي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1570"/>
-        <source>Add street &numbers (Karlsruhe scheme)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1115"/>
+        <source>Layers</source>
+        <translation>الطبقات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1601"/>
-        <source>Show lat/lon &grid</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1116"/>
+        <source>Create</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1609"/>
-        <source>&Lock zoom to tiled background</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1120"/>
+        <source>Way</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1614"/>
-        <source>&Projections Editor...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1122"/>
+        <source>Tools</source>
+        <translation>الأدوات/العدة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1622"/>
-        <source>Show &Photos on map</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1123"/>
+        <source>Windows</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1627"/>
-        <source>OsmChange (OSC)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1124"/>
+        <source>Help</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1632"/>
-        <source>Force Delete</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1280"/>
+        <source>Cut Features</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1642"/>
-        <source>Close</source>
-        <translation>أغلِق</translation>
+        <location filename="../src/MainWindow.cpp" line="1412"/>
+        <source>Clipboard invalid</source>
+        <translation>الحافظة غير صالحة</translation>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="794"/>
-        <source>Relation Modified %1</source>
-        <translation>العلاقة المغييرة %1</translation>
+        <location filename="../src/MainWindow.cpp" line="1412"/>
+        <source>Clipboard do not contain valid data.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="776"/>
-        <source>Remove member '%1' on %2</source>
-        <translation>أحذف العضو '%1' على %2</translation>
+        <location filename="../src/MainWindow.cpp" line="1580"/>
+        <source>Import file</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4443"/>
-        <source>Unresolved conflicts</source>
-        <translation>تناقضات غير محلولة</translation>
+        <location filename="../src/MainWindow.cpp" line="1606"/>
+        <location filename="../src/MainWindow.cpp" line="4381"/>
+        <source>Unsaved changes</source>
+        <translation>تغييرات غير محفوطة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4443"/>
-        <source>Please resolve existing conflicts first</source>
-        <translation>الرجاء حلّ التناقضات الموجودة أولاً</translation>
+        <location filename="../src/MainWindow.cpp" line="1607"/>
+        <source>The current map contains unsaved changes that will be lost when starting a new one.
+Do you want to cancel starting a new map or continue and discard the old changes?</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4467"/>
-        <source>It is strongly recommended to save the changes to your document after an upload.
-Do you want to do this now?</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1614"/>
+        <source>Unsaved Style changes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/TagModel.cpp" line="133"/>
-        <location filename="../src/common/TagModel.cpp" line="164"/>
-        <source>Set Tags on %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="1615"/>
+        <source>You have modified the current style.
+Do you want to save your changes?</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1663"/>
+        <location filename="../src/MainWindow.cpp" line="1636"/>
         <source>Waypoints</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1679"/>
+        <location filename="../src/MainWindow.cpp" line="1652"/>
         <source>Track %1</source>
         <translation>الأثر %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1785"/>
+        <location filename="../src/MainWindow.cpp" line="1697"/>
+        <source>Big Fat Copyright Warning</source>
+        <translation>تحذيرمشدد عن حقوق المؤلف</translation>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1698"/>
+        <source>You are trying to import a KML file. Please be aware that:
+
+ - You cannot import to OSM a KML file created from Google Earth. While you might
+   think that nodes you created from GE are yours, they are not!
+   They are still a derivative work from GE, and, as such, cannot be used in OSM.
+
+ - If you downloaded it from the Internet, chances are that there is a copyright on it.
+   Please be absolutely sure that using those data in OSM is permitted by the author, or
+   that the data is public domain.
+
+If unsure, please seek advice on the "legal" or "talk" openstreetmap mailing lists.
+
+Are you absolutely sure this KML can legally be imported in OSM?</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1781"/>
         <source>No valid file</source>
         <translation>ملف غير صالح</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1785"/>
-        <location filename="../src/MainWindow.cpp" line="3349"/>
+        <location filename="../src/MainWindow.cpp" line="1781"/>
+        <location filename="../src/MainWindow.cpp" line="3339"/>
         <source>%1 could not be opened.</source>
         <translation>لم أستطع فتح %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1958"/>
+        <location filename="../src/MainWindow.cpp" line="1915"/>
+        <source>Incoming Remote Control Request</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1916"/>
+        <source>Wanted to load object '%1', but don't know how to do that. Sorry.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1973"/>
+        <source>Incoming Remote control request</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1973"/>
+        <source>Unknown action url: %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1985"/>
+        <source>Open files</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/MainWindow.cpp" line="1997"/>
         <source>Old Qt version detected</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1959"/>
+        <location filename="../src/MainWindow.cpp" line="1998"/>
         <source>Your setup uses Qt %1, which contains various known errors in uploading data to OpenStreetMap leading to 401 server response codes. Are you sure you want to continue (which is not recommended).
 For more information see http://wiki.openstreetmap.org/index.php/Problem_uploading_with_Merkaartor</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1967"/>
+        <location filename="../src/MainWindow.cpp" line="2006"/>
         <source>Upload OSM</source>
         <translation>حمّل OSM</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1967"/>
-        <source>You don't seem to have specified your
+        <location filename="../src/MainWindow.cpp" line="2006"/>
+        <source>You don't seem to have specified your
 OpenStreetMap username and password.
 Do you want to do this now?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1989"/>
-        <location filename="../src/MainWindow.cpp" line="2003"/>
-        <location filename="../src/MainWindow.cpp" line="2060"/>
+        <location filename="../src/MainWindow.cpp" line="2022"/>
+        <location filename="../src/MainWindow.cpp" line="2103"/>
         <source>Error downloading</source>
         <translation>خطأ عند التنزيل</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="1989"/>
-        <location filename="../src/MainWindow.cpp" line="2003"/>
-        <location filename="../src/MainWindow.cpp" line="2060"/>
+        <location filename="../src/MainWindow.cpp" line="2022"/>
+        <location filename="../src/MainWindow.cpp" line="2103"/>
         <source>The map could not be downloaded</source>
         <translation>لم أتمكن من تنزيل الخريطة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2027"/>
+        <location filename="../src/MainWindow.cpp" line="2070"/>
         <source>Error downloading OpenStreetBugs</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2027"/>
+        <location filename="../src/MainWindow.cpp" line="2070"/>
         <source>The OpenStreetBugs could not be downloaded</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2472"/>
-        <source>Simplify Roads</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/MainWindow.cpp" line="2570"/>
-        <source>Network timeout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/MainWindow.cpp" line="2570"/>
-        <source>Cannot contact OpenStreetBugs.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2092"/>
+        <source>Error downloading MapDust</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2580"/>
-        <source>Error closing bug</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2092"/>
+        <source>The MapDust bugs could not be downloaded</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2580"/>
-        <source>Cannot delete bug. Server message is:
-%1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2431"/>
+        <source>Create Polygon</source>
+        <translation>أنشء متعدد الأضلاع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2609"/>
-        <source>Add Street Numbers</source>
-        <translation>أضف أرقام شارع</translation>
+        <location filename="../src/MainWindow.cpp" line="2431"/>
+        <source>Specify the number of sides</source>
+        <translation>حدد عدد الجوانب</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2626"/>
-        <location filename="../src/MainWindow.cpp" line="2631"/>
-        <source>Number of segments to divide into</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2485"/>
+        <source>Join Roads</source>
+        <translation>ألصق الطرقات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2626"/>
-        <source>Specify the number of segments</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2499"/>
+        <source>Split Roads</source>
+        <translation>إفسخ الطرقات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2635"/>
-        <source>Subdivide road into %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2513"/>
+        <source>Break Roads</source>
+        <translation>أفصل الطرقات</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2733"/>
-        <source>Spread Nodes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2527"/>
+        <source>Simplify Roads</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2824"/>
-        <source>Split area</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2600"/>
+        <source>Force Feature upload</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2839"/>
-        <source>Terrace area into %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2631"/>
+        <source>Network timeout</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2952"/>
-        <source>Save map style</source>
-        <translation>إحفظ زيّ الخريطة</translation>
+        <location filename="../src/MainWindow.cpp" line="2631"/>
+        <source>Cannot contact OpenStreetBugs.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2952"/>
-        <source>Merkaartor map style (*.mas)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2641"/>
+        <source>Error closing bug</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2974"/>
-        <source>Load map style</source>
-        <translation>حمّل زيّ الخريطة</translation>
+        <location filename="../src/MainWindow.cpp" line="2641"/>
+        <source>Cannot delete bug. Server message is:
+%1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3038"/>
-        <source>Rebuild History</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2648"/>
+        <source>Create Junction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3185"/>
-        <source>Save Merkaartor document</source>
-        <translation>إحفظ المستند Merkaartor</translation>
+        <location filename="../src/MainWindow.cpp" line="2652"/>
+        <source>Multiple intersection.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3185"/>
-        <location filename="../src/MainWindow.cpp" line="3209"/>
-        <location filename="../src/MainWindow.cpp" line="3395"/>
-        <location filename="../src/MainWindow.cpp" line="3408"/>
-        <location filename="../src/MainWindow.cpp" line="3437"/>
-        <location filename="../src/MainWindow.cpp" line="3476"/>
-        <location filename="../src/MainWindow.cpp" line="3535"/>
-        <location filename="../src/MainWindow.cpp" line="4277"/>
-        <source>untitled</source>
-        <translation>غير معنون</translation>
+        <location filename="../src/MainWindow.cpp" line="2653"/>
+        <source>Those roads have multiple intersections.
+Do you still want to create a junction for each one (Unwanted junctions can still be deleted afterhand)?</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3185"/>
-        <location filename="../src/MainWindow.cpp" line="3209"/>
-        <source>Merkaartor documents Files (*.mdc)</source>
-        <translation>ملفات مستند  (*.mdc) Merkaartor</translation>
+        <location filename="../src/MainWindow.cpp" line="2670"/>
+        <source>Add Street Numbers</source>
+        <translation>أضف أرقام شارع</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="185"/>
-        <location filename="../src/MainWindow.cpp" line="189"/>
-        <location filename="../src/MainWindow.cpp" line="3185"/>
-        <location filename="../src/MainWindow.cpp" line="3209"/>
-        <location filename="../src/MainWindow.cpp" line="3408"/>
-        <location filename="../src/MainWindow.cpp" line="3437"/>
-        <location filename="../src/MainWindow.cpp" line="3476"/>
-        <location filename="../src/MainWindow.cpp" line="3535"/>
-        <location filename="../src/MainWindow.cpp" line="4277"/>
-        <source>All Files (*)</source>
-        <translation>كلّ الملفات (*)</translation>
+        <location filename="../src/MainWindow.cpp" line="2687"/>
+        <location filename="../src/MainWindow.cpp" line="2692"/>
+        <source>Number of segments to divide into</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3038"/>
-        <source>An attempt will be made to rebuild the history.
-No guarantee, though, and no Undo.
-Are you sure you want to try this? </source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2687"/>
+        <source>Specify the number of segments</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3273"/>
-        <source>Unable to open save file</source>
-        <translation>غير قادر على فتح ملف الحفظ</translation>
+        <location filename="../src/MainWindow.cpp" line="2696"/>
+        <source>Subdivide road into %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3273"/>
-        <location filename="../src/MainWindow.cpp" line="3288"/>
-        <source>%1 could not be opened for writing.</source>
-        <translation>إستحالة فتح %1 للكتابة.</translation>
+        <location filename="../src/MainWindow.cpp" line="2719"/>
+        <source>Axis Align</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3304"/>
-        <location filename="../src/MainWindow.cpp" line="3349"/>
-        <source>Invalid file</source>
-        <translation>الملف غير صحيح</translation>
+        <location filename="../src/MainWindow.cpp" line="2720"/>
+        <source>Specify the number of regular axes to align edges on (e.g. 4 for rectangular)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3304"/>
-        <source>%1 is not a valid Merkaartor document.</source>
-        <translation>ليس %1 مستند صالح من النوع Merkaartor</translation>
+        <location filename="../src/MainWindow.cpp" line="2727"/>
+        <source>triangular</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3408"/>
-        <source>Export OSM</source>
-        <translation>صدّر OSM</translation>
+        <location filename="../src/MainWindow.cpp" line="2728"/>
+        <source>rectangular</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3408"/>
-        <source>OSM Files (*.osm)</source>
-        <translation>ملفات  (*.osm)OSM</translation>
+        <location filename="../src/MainWindow.cpp" line="2729"/>
+        <source>pentagonal</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3437"/>
-        <source>Export osmChange</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2730"/>
+        <source>hexagonal</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3437"/>
-        <source>osmChange Files (*.osc)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2731"/>
+        <source>heptagonal</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3476"/>
-        <source>Export GPX</source>
-        <translation>صدّر  GPX</translation>
+        <location filename="../src/MainWindow.cpp" line="2732"/>
+        <source>octagonal</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3476"/>
-        <source>GPX Files (*.gpx)</source>
-        <translation>GPX ملفات الــ (*.gpx)</translation>
+        <location filename="../src/MainWindow.cpp" line="2736"/>
+        <source>Align onto %1 axes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3535"/>
-        <source>Export KML</source>
-        <translation>صدّر KML</translation>
+        <location filename="../src/MainWindow.cpp" line="2738"/>
+        <source>Align onto %1 regular axes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3535"/>
-        <source>KML Files (*.kml)</source>
-        <translation>KML الملفات (*.kml)</translation>
+        <location filename="../src/MainWindow.cpp" line="2745"/>
+        <location filename="../src/MainWindow.cpp" line="2748"/>
+        <source>Unable to align to axes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3645"/>
-        <source>Feature extraction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2746"/>
+        <source>Align to axes operation failed. Please adjust any sharp corners and try again.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3655"/>
-        <source>Extracting features...</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2749"/>
+        <source>Align to axes operation failed and did not converge on a solution.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3738"/>
-        <source>Hide tool buttons labels</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2765"/>
+        <source>Bing Extract</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3905"/>
-        <source>Invalid bookmark name</source>
-        <translation>إسم الإشارة المرجعية غير صالح</translation>
+        <location filename="../src/MainWindow.cpp" line="2780"/>
+        <source>Align Nodes</source>
+        <translation>إصطف العقد</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3906"/>
-        <source>Bookmark cannot be blank.</source>
-        <translation>لا تستطيع الإشارة المرجعية أن تكون خالية من التعبير.</translation>
+        <location filename="../src/MainWindow.cpp" line="2794"/>
+        <source>Spread Nodes</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4151"/>
-        <source>GPS error</source>
-        <translation>خطء جهاز تحديد المواقع العالمي</translation>
+        <location filename="../src/MainWindow.cpp" line="2823"/>
+        <source>Detach Node %1</source>
+        <translation>أفصل العقدة %1</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4152"/>
-        <source>Unable to open GPS port.</source>
-        <translation>غير قادر على فتح منفذ جهاز تحديد المواقع العالمي.</translation>
+        <location filename="../src/MainWindow.cpp" line="2837"/>
+        <source>Add member to relation</source>
+        <translation>أضف العضو إلى العلاقة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4161"/>
-        <source>Open NMEA log file</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2849"/>
+        <source>Remove member from relation</source>
+        <translation>أحذف العضو من العلاقة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4277"/>
-        <source>Save Tag Templates</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2861"/>
+        <source>Add to Multipolygon</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4277"/>
-        <source>Merkaartor tag templates (*.mat)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2873"/>
+        <source>Join areas</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4296"/>
-        <location filename="../src/MainWindow.cpp" line="4310"/>
-        <source>Open Tag Templates</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="2885"/>
+        <source>Split area</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="3849"/>
-        <source>%1 (int)</source>
-        <translation>%1 (int)</translation>
+        <location filename="../src/MainWindow.cpp" line="2900"/>
+        <source>Terrace area into %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="168"/>
-        <source>Add a hole.</source>
-        <translation>أضف ثغرة.</translation>
+        <location filename="../src/MainWindow.cpp" line="2928"/>
+        <source>Create Relation %1</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="169"/>
-        <source>Do you want to add a(nother) hole to this area?</source>
-        <translation>هل تريد إضافة فجوة (جديدة) إلى هذه المساحة ؟</translation>
+        <location filename="../src/MainWindow.cpp" line="3002"/>
+        <source>Save map style</source>
+        <translation>إحفظ زيّ الخريطة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="399"/>
-        <source>Cannot load Projections file</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3002"/>
+        <source>Merkaartor map style (*.mas)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="399"/>
-        <source>"Projections.xml" could not be opened anywhere. Aborting.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3023"/>
+        <source>Load map style</source>
+        <translation>حمّل زيّ الخريطة</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2587"/>
-        <source>Create Junction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3025"/>
+        <source>Merkaartor map style (*.mas)
+</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4010"/>
-        <location filename="../src/MainWindow.cpp" line="4019"/>
-        <source>Invalid projection</source>
-        <translation>إسقاط غير صالح</translation>
+        <location filename="../src/MainWindow.cpp" line="3026"/>
+        <source>MapCSS stylesheet (*.css)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="4010"/>
-        <location filename="../src/MainWindow.cpp" line="4019"/>
-        <source>Unable to set projection "%1".</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3085"/>
+        <source>Rebuild History</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1489"/>
-        <source>Ctrl+B</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3085"/>
+        <source>An attempt will be made to rebuild the history.
+No guarantee, though, and no Undo.
+Are you sure you want to try this? </source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1504"/>
-        <source>&Reset Discardable dialogs status</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3190"/>
+        <location filename="../src/MainWindow.cpp" line="3385"/>
+        <source>untitled</source>
+        <translation>غير معنون</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1513"/>
-        <source>GPS Menu</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3206"/>
+        <source>Save Merkaartor document</source>
+        <translation>إحفظ المستند Merkaartor</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1522"/>
-        <source>Camera</source>
-        <translation>آلة التصوير</translation>
+        <location filename="../src/MainWindow.cpp" line="3206"/>
+        <location filename="../src/MainWindow.cpp" line="3216"/>
+        <source>Merkaartor documents Files (*.mdc)</source>
+        <translation>ملفات مستند  (*.mdc) Merkaartor</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1527"/>
-        <source>Create &Junction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3216"/>
+        <source>Save Merkaartor template document</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="301"/>
-        <source>Delete Children.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3261"/>
+        <source>Unable to open save file</source>
+        <translation>غير قادر على فتح ملف الحفظ</translation>
     </message>
     <message>
-        <location filename="../src/common/TagModel.cpp" line="131"/>
-        <location filename="../src/common/TagModel.cpp" line="162"/>
-        <source>Set Tags on multiple features</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3261"/>
+        <location filename="../src/MainWindow.cpp" line="3277"/>
+        <source>%1 could not be opened for writing.</source>
+        <translation>إستحالة فتح %1 للكتابة.</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateAreaInteraction.cpp" line="37"/>
-        <source>Create Area Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3277"/>
+        <source>Unable to open save template document</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateNodeInteraction.cpp" line="33"/>
-        <source>Create node Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3294"/>
+        <location filename="../src/MainWindow.cpp" line="3339"/>
+        <source>Invalid file</source>
+        <translation>الملف غير صحيح</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreatePolygonInteraction.cpp" line="36"/>
-        <source>LEFT-CLICK to start;DRAG to scale;SHIFT-DRAG to rotate;LEFT-CLICK to end</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3294"/>
+        <source>%1 is not a valid Merkaartor document.</source>
+        <translation>ليس %1 مستند صالح من النوع Merkaartor</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreatePolygonInteraction.cpp" line="41"/>
-        <source>Create Polygon Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3398"/>
+        <source>Export OSM</source>
+        <translation>صدّر OSM</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreatePolygonInteraction.cpp" line="90"/>
-        <source>Create Polygon %1</source>
-        <translation>أنشء متعدد الأضلاع %1</translation>
+        <location filename="../src/MainWindow.cpp" line="3398"/>
+        <source>OSM Files (*.osm)</source>
+        <translation>ملفات  (*.osm)OSM</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateRoundaboutInteraction.cpp" line="50"/>
-        <source>Create roundabout Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3413"/>
+        <source>Export osmChange</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/CreateSingleWayInteraction.cpp" line="59"/>
-        <location filename="../src/Interactions/ExtrudeInteraction.cpp" line="43"/>
-        <source>Create way Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3413"/>
+        <source>osmChange Files (*.osc)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/EditInteraction.cpp" line="59"/>
-        <source>Edit Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3434"/>
+        <source>Export GPX</source>
+        <translation>صدّر  GPX</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="153"/>
-        <source>Move Nodes</source>
-        <translation>أنقل العقد</translation>
+        <location filename="../src/MainWindow.cpp" line="3434"/>
+        <source>GPX Files (*.gpx)</source>
+        <translation>GPX ملفات الــ (*.gpx)</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="157"/>
-        <source>Move Node %1</source>
-        <translation>أقل اعقدة %1</translation>
+        <location filename="../src/MainWindow.cpp" line="3469"/>
+        <source>Export KML</source>
+        <translation>صدّر KML</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="41"/>
-        <source>LEFT-CLICK to select;LEFT-DRAG to move</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3469"/>
+        <source>KML Files (*.kml)</source>
+        <translation>KML الملفات (*.kml)</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/MoveNodeInteraction.cpp" line="46"/>
-        <source>Move node Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3561"/>
+        <source>Feature extraction</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/RotateInteraction.cpp" line="39"/>
-        <source>HOVER to select;LEFT-DRAG to rotate</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3571"/>
+        <source>Extracting features...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/RotateInteraction.cpp" line="44"/>
-        <source>Rotate Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3654"/>
+        <source>Hide tool buttons labels</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/RotateInteraction.cpp" line="139"/>
-        <source>Rotate Feature</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3765"/>
+        <source>%1 (int)</source>
+        <translation>%1 (int)</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/ZoomInteraction.cpp" line="27"/>
-        <source>LEFT-CLICK to first corner -> LEFT-DRAG to specify area -> LEFT-CLICK to zoom</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3817"/>
+        <source>Add Bookmark</source>
+        <translation>أضف إشارة مرجعية</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/ZoomInteraction.cpp" line="30"/>
-        <source>Zoom Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3818"/>
+        <source>Specify the name of the bookmark.</source>
+        <translation>حدد إسم الإشارة المرجعية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2382"/>
-        <source>Create Polygon</source>
-        <translation>أنشء متعدد الأضلاع</translation>
+        <location filename="../src/MainWindow.cpp" line="3821"/>
+        <source>Invalid bookmark name</source>
+        <translation>إسم الإشارة المرجعية غير صالح</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2382"/>
-        <source>Specify the number of sides</source>
-        <translation>حدد عدد الجوانب</translation>
+        <location filename="../src/MainWindow.cpp" line="3822"/>
+        <source>Bookmark cannot be blank.</source>
+        <translation>لا تستطيع الإشارة المرجعية أن تكون خالية من التعبير.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2545"/>
-        <source>Force Feature upload</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3826"/>
+        <source>Warning: Bookmark name already exists</source>
+        <translation>تحذير: إسم الإشارة المرجعية موجود مسبقاً</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1140"/>
-        <source>&Force Upload</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3827"/>
+        <source>Enter a new one, keep the same to overwrite or cancel.</source>
+        <translation>أدخل واحداً جديداً، حافظ على الحالي للكتابة عليه أو ألغي.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1207"/>
-        <source>Show &nodes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3865"/>
+        <source>Remove Bookmark</source>
+        <translation>إزالة الإشارة المرجعية</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1218"/>
-        <source>Show na&mes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3866"/>
+        <source>Select the bookmark to remove.</source>
+        <translation>إختر الإشارة المرجعية لحذفها.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1539"/>
-        <source>Rotate</source>
-        <translation>إستدارة</translation>
+        <location filename="../src/MainWindow.cpp" line="3926"/>
+        <location filename="../src/MainWindow.cpp" line="3935"/>
+        <source>Invalid projection</source>
+        <translation>إسقاط غير صالح</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1542"/>
-        <source>Ctrl+A</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="3926"/>
+        <location filename="../src/MainWindow.cpp" line="3935"/>
+        <source>Unable to set projection "%1".</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2591"/>
-        <source>Multiple intersection.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4067"/>
+        <source>GPS error</source>
+        <translation>خطء جهاز تحديد المواقع العالمي</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.cpp" line="2592"/>
-        <source>Those roads have multiple intersections.
-Do you still want to create a junction for each one (Unwanted junctions can still be deleted afterhand)?</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4068"/>
+        <source>Unable to open GPS port.</source>
+        <translation>غير قادر على فتح منفذ جهاز تحديد المواقع العالمي.</translation>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1113"/>
-        <source>Paste Feature(s)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4077"/>
+        <source>Open NMEA log file</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1565"/>
-        <source>Features</source>
-        <translation>الميزات</translation>
+        <location filename="../src/MainWindow.cpp" line="4193"/>
+        <source>Save Tag Templates</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/MainWindow.ui" line="1593"/>
-        <source>Show &virtual nodes</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4193"/>
+        <source>Merkaartor tag templates (*.mat)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="720"/>
-        <source>Clear %1 tags on %2</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4202"/>
+        <location filename="../src/MainWindow.cpp" line="4216"/>
+        <source>Open Tag Templates</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="853"/>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="898"/>
-        <source>Reorder members in relation %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4303"/>
+        <source>Warning! Could not load the Merkaartor translations for the "%1" language. Switching to default English.</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/ExtrudeInteraction.cpp" line="124"/>
-        <source>Extrude Road %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4361"/>
+        <source>Unresolved conflicts</source>
+        <translation>تناقضات غير محلولة</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/ScaleInteraction.cpp" line="39"/>
-        <source>HOVER to select;LEFT-DRAG to scale</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4361"/>
+        <source>Please resolve existing conflicts first</source>
+        <translation>الرجاء حلّ التناقضات الموجودة أولاً</translation>
     </message>
     <message>
-        <location filename="../src/Interactions/ScaleInteraction.cpp" line="44"/>
-        <source>Scale Interaction</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/MainWindow.cpp" line="4382"/>
+        <source>It is strongly recommended to save the changes to your document after an upload.
+Do you want to do this now?</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Interactions/ScaleInteraction.cpp" line="139"/>
-        <source>Scale Feature</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/common/TagModel.cpp" line="131"/>
+        <location filename="../src/common/TagModel.cpp" line="162"/>
+        <source>Set Tags on multiple features</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="753"/>
-        <source>Set "source" tag on %1</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/common/TagModel.cpp" line="133"/>
+        <location filename="../src/common/TagModel.cpp" line="164"/>
+        <source>Set Tags on %1</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>MapFeature</name>
     <message>
-        <location filename="../src/Features/Feature.cpp" line="1072"/>
+        <location filename="../src/Features/Feature.cpp" line="1057"/>
         <source><i>V: </i><b>%1</b> </source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Features/Feature.cpp" line="1074"/>
+        <location filename="../src/Features/Feature.cpp" line="1059"/>
         <source><i>last: </i><b>%1</b> by <b>%2</b></source>
         <translation><i>الأخيرt: </i><b>%1</b> by <b>%2</b></translation>
     </message>
     <message>
-        <location filename="../src/Features/Feature.cpp" line="1076"/>
+        <location filename="../src/Features/Feature.cpp" line="1061"/>
         <source><i>last: </i><b>%1</b></source>
         <translation><i>الأخير: </i><b>%1</b></translation>
     </message>
     <message>
-        <location filename="../src/Features/Feature.cpp" line="1079"/>
+        <location filename="../src/Features/Feature.cpp" line="1064"/>
         <source><br/><i>layer: </i><b>%1</b> </source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Features/Feature.cpp" line="1103"/>
+        <location filename="../src/Features/Feature.cpp" line="1088"/>
         <source>Browse</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="704"/>
-        <source>size</source>
-        <translation>القياس</translation>
+        <location filename="../src/Features/Node.cpp" line="375"/>
+        <location filename="../src/Features/Node.cpp" line="638"/>
+        <source>Waypoint</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="704"/>
-        <source>members</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Features/Node.cpp" line="376"/>
+        <location filename="../src/Features/Node.cpp" line="639"/>
+        <source>coord</source>
+        <translation>الإحداثيات</translation>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="707"/>
-        <location filename="../src/Features/Way.cpp" line="916"/>
-        <source>Topleft</source>
-        <translation>أعلى اليسار</translation>
+        <location filename="../src/Features/Node.cpp" line="379"/>
+        <location filename="../src/Features/Node.cpp" line="646"/>
+        <source>description</source>
+        <translation>الوصف</translation>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="709"/>
-        <location filename="../src/Features/Way.cpp" line="918"/>
-        <source>Botright</source>
-        <translation>أسفل اليمين</translation>
+        <location filename="../src/Features/Node.cpp" line="381"/>
+        <location filename="../src/Features/Node.cpp" line="648"/>
+        <source>comment</source>
+        <translation>التعليق</translation>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="711"/>
-        <source>Relation</source>
-        <translation>العلاقة</translation>
+        <location filename="../src/Features/Node.cpp" line="383"/>
+        <location filename="../src/Features/Node.cpp" line="650"/>
+        <source>Node</source>
+        <translation>العقدة</translation>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="773"/>
-        <source>Role</source>
-        <translation>الدور</translation>
+        <location filename="../src/Features/Node.cpp" line="642"/>
+        <source>elevation</source>
+        <translation>الإرتفاع</translation>
     </message>
     <message>
-        <location filename="../src/Features/Relation.cpp" line="775"/>
-        <source>Member</source>
-        <translation>العضو</translation>
+        <location filename="../src/Features/Node.cpp" line="644"/>
+        <source>speed</source>
+        <translation>السرعة</translation>
     </message>
     <message>
-        <location filename="../src/Features/Way.cpp" line="908"/>
-        <source>Closed way</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Features/Relation.cpp" line="705"/>
+        <source>size</source>
+        <translation>القياس</translation>
     </message>
     <message>
-        <location filename="../src/Features/Way.cpp" line="911"/>
-        <source>Length</source>
-        <translation>الطول</translation>
+        <location filename="../src/Features/Relation.cpp" line="705"/>
+        <source>members</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Features/Way.cpp" line="913"/>
-        <source>Size</source>
-        <translation>القياس</translation>
+        <location filename="../src/Features/Relation.cpp" line="708"/>
+        <location filename="../src/Features/Way.cpp" line="911"/>
+        <source>Topleft</source>
+        <translation>أعلى اليسار</translation>
     </message>
     <message>
+        <location filename="../src/Features/Relation.cpp" line="710"/>
         <location filename="../src/Features/Way.cpp" line="913"/>
-        <source>%1 nodes</source>
-        <translation>%1 عقد</translation>
+        <source>Botright</source>
+        <translation>أسفل اليمين</translation>
     </message>
     <message>
-        <location filename="../src/Features/Way.cpp" line="920"/>
-        <source>Way</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Features/Relation.cpp" line="712"/>
+        <source>Relation</source>
+        <translation>العلاقة</translation>
     </message>
     <message>
-        <location filename="../src/Features/Way.cpp" line="920"/>
-        <source>Area</source>
-        <translation>المساحة</translation>
+        <location filename="../src/Features/Relation.cpp" line="774"/>
+        <source>Role</source>
+        <translation>الدور</translation>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="372"/>
-        <location filename="../src/Features/Node.cpp" line="635"/>
-        <source>coord</source>
-        <translation>الإحداثيات</translation>
+        <location filename="../src/Features/Relation.cpp" line="776"/>
+        <source>Member</source>
+        <translation>العضو</translation>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="638"/>
-        <source>elevation</source>
-        <translation>الإرتفاع</translation>
+        <location filename="../src/Features/Way.cpp" line="903"/>
+        <source>Closed way</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="640"/>
-        <source>speed</source>
-        <translation>السرعة</translation>
+        <location filename="../src/Features/Way.cpp" line="906"/>
+        <source>Length</source>
+        <translation>الطول</translation>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="371"/>
-        <location filename="../src/Features/Node.cpp" line="634"/>
-        <source>Waypoint</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Features/Way.cpp" line="908"/>
+        <source>Size</source>
+        <translation>القياس</translation>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="375"/>
-        <location filename="../src/Features/Node.cpp" line="642"/>
-        <source>description</source>
-        <translation>الوصف</translation>
+        <location filename="../src/Features/Way.cpp" line="908"/>
+        <source>%1 nodes</source>
+        <translation>%1 عقد</translation>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="377"/>
-        <location filename="../src/Features/Node.cpp" line="644"/>
-        <source>comment</source>
-        <translation>التعليق</translation>
+        <location filename="../src/Features/Way.cpp" line="915"/>
+        <source>Area</source>
+        <translation>المساحة</translation>
     </message>
     <message>
-        <location filename="../src/Features/Node.cpp" line="379"/>
-        <location filename="../src/Features/Node.cpp" line="646"/>
-        <source>Node</source>
-        <translation>العقدة</translation>
+        <location filename="../src/Features/Way.cpp" line="915"/>
+        <source>Way</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>MapView</name>
     <message>
-        <location filename="../src/common/MapView.cpp" line="384"/>
-        <source>%1 m</source>
-        <translation>%1 م.</translation>
-    </message>
-    <message>
-        <location filename="../src/common/MapView.cpp" line="386"/>
-        <source>%1 km</source>
-        <translation>%1 كلم</translation>
-    </message>
-    <message>
         <location filename="../src/common/MapView.cpp" line="339"/>
         <source>%1 m/pixel</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/MapView.cpp" line="345"/>
         <source>Align: %1m @ %2</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/common/MapView.cpp" line="351"/>
         <source>%1ms</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/MapView.cpp" line="1147"/>
+        <location filename="../src/common/MapView.cpp" line="384"/>
+        <source>%1 m</source>
+        <translation>%1 م.</translation>
+    </message>
+    <message>
+        <location filename="../src/common/MapView.cpp" line="386"/>
+        <source>%1 km</source>
+        <translation>%1 كلم</translation>
+    </message>
+    <message>
+        <location filename="../src/common/MapView.cpp" line="1146"/>
         <source>View</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/MapView.cpp" line="1148"/>
+        <location filename="../src/common/MapView.cpp" line="1147"/>
         <source>Bounding Box</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/MapView.cpp" line="1160"/>
+        <location filename="../src/common/MapView.cpp" line="1159"/>
         <source>Projection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>MerkaartorPreferences</name>
     <message>
-        <location filename="../src/Preferences/TmsServersList.cpp" line="20"/>
-        <location filename="../src/Preferences/TmsServersList.cpp" line="38"/>
-        <location filename="../src/Preferences/WmsServersList.cpp" line="20"/>
-        <location filename="../src/Preferences/WmsServersList.cpp" line="40"/>
-        <source>New Server</source>
-        <translation>الخادم الجديد</translation>
+        <location filename="../src/Preferences/BookmarksList.cpp" line="20"/>
+        <location filename="../src/Preferences/BookmarksList.cpp" line="27"/>
+        <source>New Bookmark</source>
+        <translation>مرجعية جديدة</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="515"/>
-        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="518"/>
+        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="404"/>
+        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="407"/>
         <source>Preferences upload failed</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="515"/>
+        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="404"/>
         <source>Duplicate key</source>
         <translation>أنسخ مفتاح مقابل</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="518"/>
+        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="407"/>
         <source>More than 150 preferences</source>
         <translation>أكثر من 150 تفضيلات</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/BookmarksList.cpp" line="20"/>
-        <location filename="../src/Preferences/BookmarksList.cpp" line="27"/>
-        <source>New Bookmark</source>
-        <translation>مرجعية جديدة</translation>
+        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="410"/>
+        <source>Preferences communication failed</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/MerkaartorPreferences.cpp" line="410"/>
+        <source>Communication error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/TmsServersList.cpp" line="20"/>
+        <location filename="../src/Preferences/TmsServersList.cpp" line="38"/>
+        <location filename="../src/Preferences/WmsServersList.cpp" line="20"/>
+        <location filename="../src/Preferences/WmsServersList.cpp" line="40"/>
+        <source>New Server</source>
+        <translation>الخادم الجديد</translation>
     </message>
 </context>
 <context>
@@ -4790,17 +4806,17 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
 <context>
     <name>NameFinder::NameFinderTableModel</name>
     <message>
-        <location filename="../src/NameFinder/namefindertablemodel.cpp" line="68"/>
+        <location filename="../src/NameFinder/namefindertablemodel.cpp" line="69"/>
         <source>Class</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/NameFinder/namefindertablemodel.cpp" line="71"/>
+        <location filename="../src/NameFinder/namefindertablemodel.cpp" line="72"/>
         <source>Name</source>
         <translation>الإسم</translation>
     </message>
     <message>
-        <location filename="../src/NameFinder/namefindertablemodel.cpp" line="74"/>
+        <location filename="../src/NameFinder/namefindertablemodel.cpp" line="75"/>
         <source>Unknown field</source>
         <translation>حقل غير معروف</translation>
     </message>
@@ -4813,24 +4829,9 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
         <translation>خطأ!</translation>
     </message>
     <message>
-        <location filename="../src/NameFinder/namefinderwidget.cpp" line="95"/>
-        <source>Name finder service host not found.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/NameFinder/namefinderwidget.cpp" line="98"/>
-        <source>Name finder service host refused connection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/NameFinder/namefinderwidget.cpp" line="101"/>
+        <location filename="../src/NameFinder/namefinderwidget.cpp" line="93"/>
         <source>Name finder service requires authentication.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/NameFinder/namefinderwidget.cpp" line="103"/>
-        <source>Unknown error.</source>
-        <translation>خطأ غير معروف.</translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -4852,11 +4853,6 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.cpp" line="161"/>
-        <source>PDF files (*.pdf)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Render/NativeRenderDialog.cpp" line="161"/>
         <location filename="../src/Render/NativeRenderDialog.cpp" line="194"/>
         <location filename="../src/Render/NativeRenderDialog.cpp" line="231"/>
         <source>untitled</source>
@@ -4864,6 +4860,11 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.cpp" line="161"/>
+        <source>PDF files (*.pdf)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Render/NativeRenderDialog.cpp" line="161"/>
         <location filename="../src/Render/NativeRenderDialog.cpp" line="194"/>
         <location filename="../src/Render/NativeRenderDialog.cpp" line="231"/>
         <source>All Files (*)</source>
@@ -4885,12 +4886,12 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="14"/>
         <source>Raster/SVG export</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="26"/>
         <source>Options</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="49"/>
@@ -4905,12 +4906,12 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="174"/>
         <source>Show Nodes</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="181"/>
         <source>Show Relations</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="191"/>
@@ -4920,27 +4921,27 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="204"/>
         <source>Show Lat/Lon Grid</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="214"/>
         <source>Show unstyled features</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="232"/>
         <source>Export to PDF...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="239"/>
         <source>Export to SVG...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Render/NativeRenderDialog.ui" line="246"/>
         <source>Export to Raster...</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -4953,7 +4954,7 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/Preferences/OsmServerWidget.ui" line="25"/>
         <source>URL:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/OsmServerWidget.ui" line="35"/>
@@ -4969,31 +4970,12 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/Preferences/OsmServerWidget.ui" line="84"/>
         <source>Pwd:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>PaintStyleEditor</name>
     <message>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="50"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="51"/>
-        <source>Always</source>
-        <translation>دائماً</translation>
-    </message>
-    <message>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="313"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="331"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="372"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="455"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="543"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="574"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="650"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="756"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="803"/>
-        <source>Select Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="14"/>
         <source>Map style editor</source>
         <translation>محرّر أزياء الخريطة</translation>
@@ -5026,9 +5008,34 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
         <translation>...</translation>
     </message>
     <message>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="80"/>
+        <source>Nodes</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="142"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="532"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="837"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1043"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1216"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1457"/>
+        <source>Proportional thickness</source>
+        <translation>ثخانة نسبية</translation>
+    </message>
+    <message>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="162"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="552"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="857"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1063"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1236"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1477"/>
+        <source>Fixed thickness</source>
+        <translation>سماكة مثبتة</translation>
+    </message>
+    <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="206"/>
         <source>Filter</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="230"/>
@@ -5059,12 +5066,12 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="383"/>
         <source>Visible up to</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="390"/>
         <source>Visible from scale</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="470"/>
@@ -5074,31 +5081,6 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
         <translation>لوّن بللون</translation>
     </message>
     <message>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="142"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="532"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="837"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1043"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1216"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1457"/>
-        <source>Proportional thickness</source>
-        <translation>ثخانة نسبية</translation>
-    </message>
-    <message>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="80"/>
-        <source>Nodes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="162"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="552"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="857"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1063"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1236"/>
-        <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1477"/>
-        <source>Fixed thickness</source>
-        <translation>سماكة مثبتة</translation>
-    </message>
-    <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="614"/>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1125"/>
         <source>Dashed</source>
@@ -5118,7 +5100,7 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="730"/>
         <source>Fill with Touchup icon</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="761"/>
@@ -5128,17 +5110,17 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="913"/>
         <source>Interior</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="923"/>
         <source>Exteriror</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="967"/>
         <source>Touchup</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="981"/>
@@ -5153,7 +5135,7 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1273"/>
         <source>Draw Traffic Direction Marks</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1333"/>
@@ -5188,7 +5170,26 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/PaintStyle/PaintStyleEditor.ui" line="1648"/>
         <source>Label with background tag</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="50"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="51"/>
+        <source>Always</source>
+        <translation>دائماً</translation>
+    </message>
+    <message>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="313"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="331"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="372"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="455"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="543"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="574"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="650"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="756"/>
+        <location filename="../src/PaintStyle/PaintStyleEditor.cpp" line="803"/>
+        <source>Select Color</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -5196,48 +5197,53 @@ Do you still want to create a junction for each one (Unwanted junctions can stil
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="14"/>
         <source>No Valid geotag</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="20"/>
         <source>TextLabel</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="27"/>
         <source>This photo does not contain geo-tagging EXIF data.
 What do you want to do next?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="44"/>
         <source>Try to match with a track node</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="63"/>
         <source>Load without associated node</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="73"/>
         <source>Extract info from barcode (Walking Papers)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="89"/>
         <source>Ignore it</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PhotoLoadErrorDialog.ui" line="99"/>
         <source>Do this for all current photos.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>PictureViewerDialog</name>
     <message>
+        <location filename="../src/Utils/PictureViewerDialog.ui" line="13"/>
+        <source>Dialog</source>
+        <translation>مربع الحوار</translation>
+    </message>
+    <message>
         <location filename="../src/Utils/PictureViewerDialog.cpp" line="40"/>
         <location filename="../src/Utils/PictureViewerDialog.cpp" line="56"/>
         <source>Output filename</source>
@@ -5245,140 +5251,35 @@ What do you want to do next?</source>
     </message>
     <message>
         <location filename="../src/Utils/PictureViewerDialog.cpp" line="40"/>
-        <source>SVG files (*.svg)</source>
-        <translation>SVG ملفات (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="../src/Utils/PictureViewerDialog.cpp" line="40"/>
         <location filename="../src/Utils/PictureViewerDialog.cpp" line="56"/>
         <source>untitled</source>
         <translation>غير معنون</translation>
     </message>
     <message>
         <location filename="../src/Utils/PictureViewerDialog.cpp" line="40"/>
-        <location filename="../src/Utils/PictureViewerDialog.cpp" line="56"/>
-        <source>All Files (*)</source>
-        <translation>كلّ الملفات (*)</translation>
-    </message>
-    <message>
-        <location filename="../src/Utils/PictureViewerDialog.cpp" line="56"/>
-        <source>Image files (*.png *.jpg)</source>
-        <translation>ملفات الصور (*.png *.jpg)</translation>
-    </message>
-    <message>
-        <location filename="../src/Utils/PictureViewerDialog.ui" line="13"/>
-        <source>Dialog</source>
-        <translation>مربع الحوار</translation>
-    </message>
-</context>
-<context>
-    <name>PreferencesDialog</name>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="723"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="503"/>
-        <source>Custom styles directory</source>
-        <translation>دليل الأزياء المعتادة</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="809"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="512"/>
-        <source>Tag Template</source>
-        <translation>قالب تسمية</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="512"/>
-        <source>Merkaartor tag template (*.mat)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="521"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="534"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="547"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="560"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="573"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="586"/>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="598"/>
-        <source>Select Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="613"/>
-        <source>Tool already exists</source>
-        <translation>الأدات موجودة مسبقاً</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="614"/>
-        <source>A tool of this name already exists.
-Please select another name or click the <Apply> button if you want to modify the existing one</source>
-        <translation>يوجد أداة بهذا الإسم مسبقاً.
-الرجاء إختيار إسم آخر أو الضغط على الزرّ <طبّق> إذا كنت تريد تغيير الموجود حالياً</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="633"/>
-        <source>Cannot delete preset tool</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="634"/>
-        <source>Cannot delete preset tool "%1"</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="652"/>
-        <source>Cannot modify preset tool name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="653"/>
-        <source>Cannot modify preset tool "%1"'s name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="678"/>
-        <source>Select tool executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="686"/>
-        <source>Select template document</source>
-        <translation type="unfinished"></translation>
+        <source>SVG files (*.svg)</source>
+        <translation>SVG ملفات (*.svg)</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="686"/>
-        <source>Merkaartor document (*.mdc)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Utils/PictureViewerDialog.cpp" line="40"/>
+        <location filename="../src/Utils/PictureViewerDialog.cpp" line="56"/>
+        <source>All Files (*)</source>
+        <translation>كلّ الملفات (*)</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="694"/>
-        <source>Select Log directory</source>
-        <translation>إختر مجلد السجلّ</translation>
+        <location filename="../src/Utils/PictureViewerDialog.cpp" line="56"/>
+        <source>Image files (*.png *.jpg)</source>
+        <translation>ملفات الصور (*.png *.jpg)</translation>
     </message>
+</context>
+<context>
+    <name>PreferencesDialog</name>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="15"/>
         <source>Preferences</source>
         <translation>التفضيلات</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="575"/>
-        <source>Locale</source>
-        <translation>الإعداد المحلي</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="581"/>
-        <source>You may need to restart the program for these changes to take effect</source>
-        <translation>قد تكون بحاجة إلى إعادة تشغيل البرنامج كي تحصل على التغييرات</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="590"/>
-        <source>Use language</source>
-        <translation>إستعمل اللغة</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="625"/>
-        <source>Translate standard tags</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="28"/>
         <source>Visual</source>
         <translation>مرئي</translation>
@@ -5399,11 +5300,6 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>غير شفافية منخفضة/عالية</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="118"/>
-        <source>Separate Move mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="97"/>
         <source>Single mouse button interaction</source>
         <translation>تفاعل فردي زرّ الفأرة</translation>
@@ -5411,7 +5307,27 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="104"/>
         <source>Use custom Qt style</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="111"/>
+        <source>Allow node/way creation in select mode</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="118"/>
+        <source>Separate Move mode</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="125"/>
+        <source>Use Virtual nodes (new session required)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="132"/>
+        <source>Relations selectable while hidden</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="165"/>
@@ -5442,12 +5358,12 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="199"/>
         <source>Overwrite style</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="431"/>
-        <source>Hover</source>
-        <translation>حوم</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="221"/>
+        <source>GPX track</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="252"/>
@@ -5460,140 +5376,187 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>بكسلات</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="491"/>
-        <source>Focus</source>
-        <translation>تبئير/تركيز</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="484"/>
-        <source>Relations</source>
-        <translation>العلاقات</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="715"/>
-        <source>Map style</source>
-        <translation>زيّ الخريطة</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="259"/>
+        <source>Use simple GPX track appearance</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="757"/>
-        <source>Current style</source>
-        <translation>الزيّ الحالي</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="287"/>
+        <source>Interface</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="779"/>
-        <source>Disable styles for track layers</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="431"/>
+        <source>Hover</source>
+        <translation>حوم</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="803"/>
-        <source>Template</source>
-        <translation>القالب</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="484"/>
+        <source>Relations</source>
+        <translation>العلاقات</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="817"/>
-        <source>Built-in</source>
-        <translation>المدمج</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="491"/>
+        <source>Focus</source>
+        <translation>تبئير/تركيز</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="841"/>
-        <source>Custom</source>
-        <translation>المعتاد</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="498"/>
+        <source>Highlight</source>
+        <translation>تسليط الضوء</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="890"/>
-        <source>Data</source>
-        <translation>المعطيات</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="551"/>
+        <source>Dirty</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1277"/>
-        <source>Password:</source>
-        <translation>كلمة المرور:</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="575"/>
+        <source>Locale</source>
+        <translation>الإعداد المحلي</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="968"/>
-        <source>Documents</source>
-        <translation>المستندات</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="581"/>
+        <source>You may need to restart the program for these changes to take effect</source>
+        <translation>قد تكون بحاجة إلى إعادة تشغيل البرنامج كي تحصل على التغييرات</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="111"/>
-        <source>Allow node/way creation in select mode</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="590"/>
+        <source>Use language</source>
+        <translation>إستعمل اللغة</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="551"/>
-        <source>Dirty</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="625"/>
+        <source>Translate standard tags</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="646"/>
         <source>Rendering</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="652"/>
         <source>Options</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="658"/>
         <source>Use Anti-aliasing</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="665"/>
         <source>Disable Anti-alisaing while panning</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="672"/>
         <source><html><head/><body><p>If enabled, wireframe rendering (View-Wireframe) will use the current style for colors and fill. Only the fixed thickness will be used for width. </p></body></html></source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="675"/>
         <source>Use current style for wireframe rendering</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="685"/>
         <source>Editing</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="691"/>
         <source>Quick editing</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="698"/>
         <source>Wireframe editing</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="705"/>
         <source>Full render editing</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="715"/>
+        <source>Map style</source>
+        <translation>زيّ الخريطة</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="723"/>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="503"/>
+        <source>Custom styles directory</source>
+        <translation>دليل الأزياء المعتادة</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="757"/>
+        <source>Current style</source>
+        <translation>الزيّ الحالي</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="779"/>
+        <source>Disable styles for track layers</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="803"/>
+        <source>Template</source>
+        <translation>القالب</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="809"/>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="512"/>
+        <source>Tag Template</source>
+        <translation>قالب تسمية</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="817"/>
+        <source>Built-in</source>
+        <translation>المدمج</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="841"/>
+        <source>Custom</source>
+        <translation>المعتاد</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="890"/>
+        <source>Data</source>
+        <translation>المعطيات</translation>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="902"/>
         <source>OSM API (URL is, e.g., "http://www.openstreetmap.org/api/0.6"</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="916"/>
         <source>XAPI</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="924"/>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="956"/>
         <source>URL:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="945"/>
         <source>Nominatim (Geo Search)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="968"/>
+        <source>Documents</source>
+        <translation>المستندات</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="979"/>
+        <source>Autoload template document</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1004"/>
@@ -5608,27 +5571,27 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1022"/>
         <source>Automatically extract tracks on open</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1029"/>
         <source>Track layers readonly by default</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1040"/>
         <source>Don't connect GPX nodes separated by more than (in km; 0 to disable)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1059"/>
         <source>GDAL</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1065"/>
         <source>Confirm projection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1089"/>
@@ -5636,9 +5599,35 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>GPSجهاز تحديد المواقع العالمي</translation>
     </message>
     <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1095"/>
+        <source>GPS input</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1101"/>
+        <source>gpsd</source>
+        <translation>gpsd</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1108"/>
+        <source>Serial</source>
+        <translation>تسلسلي</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1130"/>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1168"/>
+        <source>Port</source>
+        <translation>المنفذ</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1158"/>
+        <source>Host</source>
+        <translation>المضيف</translation>
+    </message>
+    <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1196"/>
         <source>Save NMEA log</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1237"/>
@@ -5661,9 +5650,14 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>إستعمل الوكيل</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1314"/>
-        <source>Host:</source>
-        <translation>المضيف:</translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1277"/>
+        <source>Password:</source>
+        <translation>كلمة المرور:</translation>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1300"/>
+        <source>User:</source>
+        <translation>المستخدم:</translation>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1307"/>
@@ -5671,19 +5665,19 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>المنفذ:</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="979"/>
-        <source>Autoload template document</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.ui" line="1314"/>
+        <source>Host:</source>
+        <translation>المضيف:</translation>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1365"/>
         <source>Network Timeout (sec)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1403"/>
         <source>Enable JOSM-compatible local server on port 8111</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1424"/>
@@ -5693,7 +5687,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1430"/>
         <source>Tiles Caching (not active for Yahoo! due to legal restrictions)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1436"/>
@@ -5713,7 +5707,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1471"/>
         <source>Automatically add "source" tag when creating features over a background map</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.ui" line="1500"/>
@@ -5758,7 +5752,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="164"/>
         <source>Croatian</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="165"/>
@@ -5766,6 +5760,11 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>التشيكية</translation>
     </message>
     <message>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="166"/>
+        <source>Dutch</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="167"/>
         <source>German</source>
         <translation>الألمانية</translation>
@@ -5778,7 +5777,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="169"/>
         <source>Hungarian</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="170"/>
@@ -5788,17 +5787,22 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="171"/>
         <source>Japanese</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="172"/>
         <source>Polish</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="173"/>
+        <source>Portuguese</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="174"/>
         <source>Brazilian Portuguese</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/PreferencesDialog.cpp" line="175"/>
@@ -5806,95 +5810,86 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>روسي</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1300"/>
-        <source>User:</source>
-        <translation>المستخدم:</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="498"/>
-        <source>Highlight</source>
-        <translation>تسليط الضوء</translation>
-    </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="221"/>
-        <source>GPX track</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="176"/>
+        <source>Slovak</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="259"/>
-        <source>Use simple GPX track appearance</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="177"/>
+        <source>Spanish</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1095"/>
-        <source>GPS input</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="178"/>
+        <source>Swedish</source>
+        <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1101"/>
-        <source>gpsd</source>
-        <translation>gpsd</translation>
+    <message>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="179"/>
+        <source>Ukrainian</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1108"/>
-        <source>Serial</source>
-        <translation>تسلسلي</translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="512"/>
+        <source>Merkaartor tag template (*.mat)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1130"/>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1168"/>
-        <source>Port</source>
-        <translation>المنفذ</translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="520"/>
+        <source>Select Color</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="1158"/>
-        <source>Host</source>
-        <translation>المضيف</translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="593"/>
+        <source>Tool already exists</source>
+        <translation>الأدات موجودة مسبقاً</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="125"/>
-        <source>Use Virtual nodes (new session required)</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="594"/>
+        <source>A tool of this name already exists.
+Please select another name or click the <Apply> button if you want to modify the existing one</source>
+        <translation>يوجد أداة بهذا الإسم مسبقاً.
+الرجاء إختيار إسم آخر أو الضغط على الزرّ <طبّق> إذا كنت تريد تغيير الموجود حالياً</translation>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="166"/>
-        <source>Dutch</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="613"/>
+        <source>Cannot delete preset tool</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="173"/>
-        <source>Portuguese</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="614"/>
+        <source>Cannot delete preset tool "%1"</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="176"/>
-        <source>Slovak</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="632"/>
+        <source>Cannot modify preset tool name</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="177"/>
-        <source>Spanish</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="633"/>
+        <source>Cannot modify preset tool "%1"'s name</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="178"/>
-        <source>Swedish</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="658"/>
+        <source>Select tool executable</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.cpp" line="179"/>
-        <source>Ukrainian</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="666"/>
+        <source>Select template document</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="132"/>
-        <source>Relations selectable while hidden</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="666"/>
+        <source>Merkaartor document (*.mdc)</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Preferences/PreferencesDialog.ui" line="287"/>
-        <source>Interface</source>
-        <translation type="unfinished"></translation>
+        <location filename="../src/Preferences/PreferencesDialog.cpp" line="674"/>
+        <source>Select Log directory</source>
+        <translation>إختر مجلد السجلّ</translation>
     </message>
 </context>
 <context>
@@ -5902,17 +5897,17 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.ui" line="14"/>
         <source>Projections setup</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.ui" line="20"/>
         <source>Projections</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.ui" line="47"/>
         <source>Projection list:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.ui" line="76"/>
@@ -5922,7 +5917,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.ui" line="93"/>
         <source>PROJ4 string</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.ui" line="105"/>
@@ -5947,7 +5942,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Preferences/ProjPreferencesDialog.cpp" line="48"/>
         <source>Please specify projection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -5955,7 +5950,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/common/Projection.cpp" line="331"/>
         <source>Document</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -5968,40 +5963,40 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Utils/ProjectionChooser.ui" line="28"/>
         <source>Predefined</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Utils/ProjectionChooser.ui" line="35"/>
         <source>Standard (EPSG:...)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Utils/ProjectionChooser.ui" line="61"/>
         <source>Custom PROJ4(+proj=...)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Utils/ProjectionChooser.ui" line="71"/>
         <source>WKT</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Utils/ProjectionChooser.cpp" line="81"/>
-        <location filename="../src/Utils/ProjectionChooser.cpp" line="96"/>
-        <location filename="../src/Utils/ProjectionChooser.cpp" line="104"/>
+        <location filename="../src/Utils/ProjectionChooser.cpp" line="82"/>
+        <location filename="../src/Utils/ProjectionChooser.cpp" line="97"/>
+        <location filename="../src/Utils/ProjectionChooser.cpp" line="105"/>
         <source>Error in WKT string</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Utils/ProjectionChooser.cpp" line="81"/>
-        <location filename="../src/Utils/ProjectionChooser.cpp" line="104"/>
+        <location filename="../src/Utils/ProjectionChooser.cpp" line="82"/>
+        <location filename="../src/Utils/ProjectionChooser.cpp" line="105"/>
         <source>Cannot export to PROJ4 format</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/Utils/ProjectionChooser.cpp" line="96"/>
+        <location filename="../src/Utils/ProjectionChooser.cpp" line="97"/>
         <source>Invalid WKT string</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -6035,6 +6030,11 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>الخصائص - عناصر متعددة</translation>
     </message>
     <message>
+        <location filename="../src/Docks/PropertiesDock.cpp" line="451"/>
+        <source>Properties - Node</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <location filename="../src/Docks/PropertiesDock.cpp" line="466"/>
         <source>Properties - Road</source>
         <translation>الخصائص - طريق</translation>
@@ -6053,7 +6053,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/Docks/PropertiesDock.cpp" line="1048"/>
         <source>Error reading template file</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Docks/PropertiesDock.cpp" line="1158"/>
@@ -6070,38 +6070,10 @@ Please select another name or click the <Apply> button if you want to modi
         <source>Select member</source>
         <translation>إختر العضو</translation>
     </message>
-    <message>
-        <location filename="../src/Docks/PropertiesDock.cpp" line="451"/>
-        <source>Properties - Node</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/ImportExport/ExportGPX.cpp" line="45"/>
-        <source>Exporting GPX...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ExportGPX.cpp" line="45"/>
-        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="341"/>
-        <location filename="../src/ImportExport/ImportExportPBF.cpp" line="565"/>
-        <source>Cancel</source>
-        <translation>ألغي</translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="341"/>
-        <location filename="../src/ImportExport/ImportExportPBF.cpp" line="565"/>
-        <source>Importing...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="391"/>
-        <source>Imported: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../src/Commands/DocumentCommands.cpp" line="132"/>
         <source>Cascaded cleanup</source>
         <translation>تنظيف شلالي</translation>
@@ -6111,13 +6083,13 @@ Please select another name or click the <Apply> button if you want to modi
         <location filename="../src/Commands/FeatureCommands.cpp" line="74"/>
         <location filename="../src/Commands/FeatureCommands.cpp" line="188"/>
         <source>Set Tag '%1=%2' on %3</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Commands/FeatureCommands.cpp" line="314"/>
         <location filename="../src/Commands/FeatureCommands.cpp" line="400"/>
         <source>Clear Tag '%1' on %2</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/Commands/NodeCommands.cpp" line="17"/>
@@ -6127,9 +6099,32 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>حرّك العقدة %1</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportExportOSC.cpp" line="59"/>
+        <location filename="../src/ImportExport/ExportGPX.cpp" line="46"/>
+        <source>Exporting GPX...</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ExportGPX.cpp" line="46"/>
+        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="405"/>
+        <location filename="../src/ImportExport/ImportExportPBF.cpp" line="565"/>
+        <source>Cancel</source>
+        <translation>ألغي</translation>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="405"/>
+        <location filename="../src/ImportExport/ImportExportPBF.cpp" line="565"/>
+        <source>Importing...</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportExportGdal.cpp" line="455"/>
+        <source>Imported: %1</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../src/ImportExport/ImportExportOSC.cpp" line="60"/>
         <source>Import osmChange</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/ImportExport/ImportNGT.cpp" line="21"/>
@@ -6137,31 +6132,31 @@ Please select another name or click the <Apply> button if you want to modi
         <translation>إسيراد NGT</translation>
     </message>
     <message>
-        <location filename="../src/ImportExport/ImportNMEA.cpp" line="45"/>
+        <location filename="../src/ImportExport/ImportNMEA.cpp" line="46"/>
         <source>Import NMEA</source>
         <translation>إستورد NMEA</translation>
     </message>
     <message>
-        <location filename="../src/common/FeatureManipulations.cpp" line="767"/>
-        <location filename="../src/common/FeatureManipulations.cpp" line="777"/>
-        <location filename="../src/common/FeatureManipulations.cpp" line="782"/>
+        <location filename="../src/common/FeatureManipulations.cpp" line="794"/>
+        <location filename="../src/common/FeatureManipulations.cpp" line="804"/>
+        <location filename="../src/common/FeatureManipulations.cpp" line="809"/>
         <source>Bing Road Detect</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/FeatureManipulations.cpp" line="767"/>
+        <location filename="../src/common/FeatureManipulations.cpp" line="794"/>
         <source>Cannot get output.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/FeatureManipulations.cpp" line="777"/>
+        <location filename="../src/common/FeatureManipulations.cpp" line="804"/>
         <source>No valid data.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/common/FeatureManipulations.cpp" line="782"/>
+        <location filename="../src/common/FeatureManipulations.cpp" line="809"/>
         <source>Cannot parse output.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -6177,14 +6172,14 @@ Please select another name or click the <Apply> button if you want to modi
         <location filename="../src/GPS/qgps.cpp" line="165"/>
         <location filename="../src/GPS/qgps.cpp" line="222"/>
         <source>No Fix</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/GPS/qgps.cpp" line="94"/>
         <location filename="../src/GPS/qgps.cpp" line="170"/>
         <location filename="../src/GPS/qgps.cpp" line="223"/>
         <source>No Time</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/GPS/qgps.cpp" line="135"/>
@@ -6214,7 +6209,7 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/GPS/qgps.cpp" line="162"/>
         <source>Fix OK</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/GPS/qgps.cpp" line="221"/>
@@ -6225,32 +6220,32 @@ Please select another name or click the <Apply> button if you want to modi
 <context>
     <name>QGPSComDevice</name>
     <message>
-        <location filename="../src/GPS/qgpsdevice.cpp" line="689"/>
+        <location filename="../src/GPS/qgpsdevice.cpp" line="692"/>
         <source>GPS log error</source>
         <translation>خطء في سجل جهاز تحديد المواقع العالمي</translation>
     </message>
     <message>
-        <location filename="../src/GPS/qgpsdevice.cpp" line="690"/>
+        <location filename="../src/GPS/qgpsdevice.cpp" line="693"/>
         <source>Unable to create GPS log file: %1.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>QGPSDDevice</name>
     <message>
-        <location filename="../src/GPS/qgpsdevice.cpp" line="971"/>
+        <location filename="../src/GPS/qgpsdevice.cpp" line="974"/>
         <source>Unable to connect to %1:%2</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../src/GPS/qgpsdevice.cpp" line="1090"/>
+        <location filename="../src/GPS/qgpsdevice.cpp" line="1095"/>
         <source>GPS log error</source>
         <translation>خطء في سجل جهاز تحديد المواقع العالمي</translation>
     </message>
     <message>
-        <location filename="../src/GPS/qgpsdevice.cpp" line="1091"/>
+        <location filename="../src/GPS/qgpsdevice.cpp" line="1096"/>
         <source>Unable to create GPS log file: %1.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -6264,7 +6259,7 @@ Please select another name or click the <Apply> button if you want to modi
         <location filename="../src/GPS/qgpsmainwindowui.ui" line="22"/>
         <location filename="../src/GPS/qgpsmainwindowui.ui" line="29"/>
         <source>TextLabel</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../src/GPS/qgpsmainwindowui.ui" line="63"/>
@@ -6328,98 +6323,142 @@ Please select another name or click the <Apply> button if you want to modi
     <message>
         <location filename="../src/NameFinder/xmlstreamreader.cpp" line="45"/>
         <source>Not a proper results stream!</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>QtToolBarDialog</name>
     <message>
-        <location filename="../3rdparty/qttoolbardialog-2.2_1-opensource/src/qttoolbardialog.cpp" line="1798"/>
-        <source>< S E P A R A T O R ></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../3rdparty/qttoolbardialog-2.2_1-opensource/src/qttoolbardialog.ui" line="16"/>
+        <location filename="../src/QToolBarDialog/qttoolbardialog.ui" line="16"/>
         <source>Customize Toolbars</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../3rdparty/qttoolbardialog-2.2_1-opensource/src/qttoolbardialog.ui" line="31"/>
+        <location filename="../src/QToolBarDialog/qttoolbardialog.ui" line="31"/>
         <source>Actions</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../3rdparty/qttoolbardialog-2.2_1-opensource/src/qttoolbardialog.ui" line="46"/>
+        <location filename="../src/QToolBarDialog/qttoolbardialog.ui" line="46"/>
         <source>Tool