[qmapshack] 01/07: Imported Upstream version 0.9.1

Bas Couwenberg sebastic at xs4all.nl
Fri Jan 2 12:43:32 UTC 2015


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

sebastic-guest pushed a commit to branch master
in repository qmapshack.

commit b27f763456563bc8ce4ace8709c59c2c7c4518cf
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Jan 2 12:48:40 2015 +0100

    Imported Upstream version 0.9.1
---
 CMakeLists.txt                                     |   2 +-
 CMakeLists.txt.user                                |   6 +-
 changelog.txt                                      |   5 +
 nsi/QMapShack_Installer.nsi                        |   7 +-
 nsi/QMapShack_Installer32.nsi                      |   7 +-
 nsi/copyfiles.bat                                  |   9 +-
 nsi/copyfiles32.bat                                |   9 +-
 src/CMakeLists.txt                                 |   5 +
 src/gis/CGisListDB.cpp                             | 132 ++++-
 src/gis/CGisListDB.h                               |  15 +
 src/gis/CGisListWks.cpp                            | 316 +++++-----
 src/gis/CGisListWks.h                              |  13 +
 src/gis/CGisWidget.cpp                             | 102 ++--
 src/gis/CGisWidget.h                               |  23 +-
 src/gis/IGisItem.cpp                               |  15 +-
 src/gis/IGisItem.h                                 |  14 +-
 src/gis/IGisWidget.ui                              |   9 +-
 src/gis/db/CDBFolderDatabase.cpp                   |   7 +-
 src/gis/db/CDBFolderGroup.cpp                      |   4 +-
 src/gis/db/CDBFolderLostFound.cpp                  |  66 ++-
 src/gis/db/CDBFolderLostFound.h                    |   6 +
 src/gis/db/CDBFolderOther.cpp                      |   5 +-
 src/gis/db/CDBFolderProject.cpp                    |   5 +-
 src/gis/db/CDBItem.cpp                             |  31 +-
 src/gis/db/CDBItem.h                               |   4 +-
 src/gis/db/CDBProject.cpp                          |  20 +-
 src/gis/db/CDBProject.h                            |   2 +-
 src/gis/db/CLostFoundProject.cpp                   |  83 +++
 .../{CDBFolderLostFound.h => CLostFoundProject.h}  |  23 +-
 src/gis/db/IDBFolder.cpp                           |  38 +-
 src/gis/db/IDBFolder.h                             |   9 +-
 src/gis/gpx/CGpxProject.cpp                        |   6 +-
 src/gis/ovl/CGisItemOvlArea.cpp                    |  19 +-
 src/gis/ovl/CGisItemOvlArea.h                      |   6 +-
 src/gis/ovl/CScrOptOvlArea.cpp                     |   8 +
 src/gis/ovl/CScrOptOvlArea.h                       |   1 +
 src/gis/ovl/IScrOptOvlArea.ui                      |  14 +
 src/gis/prj/IGisProject.cpp                        | 112 +++-
 src/gis/prj/IGisProject.h                          |  39 +-
 src/gis/qms/CQmsProject.cpp                        |   7 +-
 src/gis/qms/serialization.cpp                      |  17 +-
 src/gis/rte/CGisItemRte.cpp                        |  14 +-
 src/gis/rte/CGisItemRte.h                          |   6 +-
 src/gis/rte/CScrOptRte.cpp                         |   6 +
 src/gis/rte/CScrOptRte.h                           |   1 +
 src/gis/rte/IScrOptRte.ui                          |  14 +
 src/gis/search/CSearchGoogle.cpp                   |  12 +-
 src/gis/trk/CDetailsTrk.cpp                        |   2 +
 src/gis/trk/CGisItemTrk.cpp                        |  18 +-
 src/gis/trk/CGisItemTrk.h                          |  10 +-
 src/gis/trk/CScrOptTrk.cpp                         |   7 +
 src/gis/trk/CScrOptTrk.h                           |   1 +
 src/gis/trk/IScrOptTrk.ui                          |  26 +-
 src/gis/wpt/CGisItemWpt.cpp                        |  14 +-
 src/gis/wpt/CGisItemWpt.h                          |   6 +-
 src/gis/wpt/CScrOptWpt.cpp                         |   7 +
 src/gis/wpt/CScrOptWpt.h                           |   1 +
 src/gis/wpt/IScrOptWpt.ui                          |  14 +
 src/helpers/CHistoryListWidget.cpp                 |   4 +-
 src/helpers/CSelectCopyAction.cpp                  |  68 +++
 .../CSelectCopyAction.h}                           |  40 +-
 src/helpers/CSelectProjectDialog.cpp               |   4 +-
 src/helpers/ISelectCopyAction.ui                   | 140 +++++
 src/icons/32x32/Copy.png                           | Bin 415 -> 511 bytes
 src/icons/32x32/DatabaseConvert.png                | Bin 1905 -> 1554 bytes
 src/icons/32x32/Move.png                           | Bin 0 -> 869 bytes
 src/icons/48x48/Copy.png                           | Bin 517 -> 649 bytes
 src/icons/48x48/DatabaseConvert.png                | Bin 2840 -> 2617 bytes
 src/icons/48x48/Move.png                           | Bin 0 -> 1126 bytes
 src/icons/Copy.svg                                 |  32 +-
 src/icons/DatabaseConvert.svg                      |  53 +-
 src/icons/{Copy.svg => Move.svg}                   |  49 +-
 src/locale/qmapshack_cs.ts                         | 396 ++++++++-----
 src/locale/qmapshack_de.ts                         | 637 +++++++++++++--------
 src/locale/qmapshack_es.ts                         | 398 ++++++++-----
 src/mouse/CMouseNormal.cpp                         |  16 +
 src/mouse/CMouseNormal.h                           |   3 +
 src/mouse/CScrOptUnclutter.cpp                     |   1 +
 src/resources.qrc                                  |   2 +
 79 files changed, 2198 insertions(+), 1025 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f9247d5..df19f90 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,7 +21,7 @@ set(APPLICATION_NAME qmapshack)
 
 set(APPLICATION_VERSION_MAJOR "0")
 set(APPLICATION_VERSION_MINOR "9")
-set(APPLICATION_VERSION_PATCH "0")
+set(APPLICATION_VERSION_PATCH "1")
 
 add_definitions(-DVER_MAJOR=${APPLICATION_VERSION_MAJOR} -DVER_MINOR=${APPLICATION_VERSION_MINOR} -DVER_STEP=${APPLICATION_VERSION_PATCH} -DAPPLICATION_NAME=${PROJECT_NAME})
 
diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user
index cb54a83..7d75880 100644
--- a/CMakeLists.txt.user
+++ b/CMakeLists.txt.user
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 3.3.0, 2014-12-21T17:44:49. -->
+<!-- Written by QtCreator 3.3.0, 2014-12-30T11:15:51. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -208,9 +208,9 @@
      <value type="int">14</value>
     </valuelist>
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmapshack</value>
-    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"></value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"> -d</value>
     <value type="bool" key="CMakeProjectManager.CMakeRunConfiguration.UseTerminal">false</value>
-    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory">/home/oeichler/Code/cpp/build_QMapShack</value>
     <value type="int" key="PE.EnvironmentAspect.Base">2</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmapshack</value>
diff --git a/changelog.txt b/changelog.txt
index cb04987..457cd3c 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,8 @@
+V 0.9.1
+* Complete function of 'Lost & Found' folder
+* Add copy function to all items including dialog to select copy action.
+* Workspace: move status column to column 0
+
 V 0.9.0
 * Fix sign of area calculation
 * Mark item with user focus in item unclutter screen
diff --git a/nsi/QMapShack_Installer.nsi b/nsi/QMapShack_Installer.nsi
index e0ef80d..88f963e 100644
--- a/nsi/QMapShack_Installer.nsi
+++ b/nsi/QMapShack_Installer.nsi
@@ -129,13 +129,14 @@ Section "QMapShack" QMapShack
 	File Files\Qt5Sensors.dll
     File Files\Qt5Sql.dll
     File Files\Qt5Svg.dll
+	File Files\Qt5WebChannel.dll
     File Files\Qt5WebKit.dll
     File Files\Qt5Widgets.dll 
     File Files\Qt5WebKitWidgets.dll	
     File Files\Qt5Xml.dll
-	File Files\icudt52.dll
-	File Files\icuin52.dll
-	File Files\icuuc52.dll
+	File Files\icudt53.dll
+	File Files\icuin53.dll
+	File Files\icuuc53.dll
 	File Files\libEGL.dll
 	File Files\libGLESv2.dll
 
diff --git a/nsi/QMapShack_Installer32.nsi b/nsi/QMapShack_Installer32.nsi
index 76dcaf9..3ef9886 100644
--- a/nsi/QMapShack_Installer32.nsi
+++ b/nsi/QMapShack_Installer32.nsi
@@ -130,13 +130,14 @@ Section "QMapShack" QMapShack
 	File Files32\Qt5Sensors.dll
     File Files32\Qt5Sql.dll
     File Files32\Qt5Svg.dll
+	File Files32\Qt5WebChannel.dll
     File Files32\Qt5WebKit.dll
     File Files32\Qt5Widgets.dll 
     File Files32\Qt5WebKitWidgets.dll	
     File Files32\Qt5Xml.dll
-	File Files32\icudt52.dll
-	File Files32\icuin52.dll
-	File Files32\icuuc52.dll
+	File Files32\icudt53.dll
+	File Files32\icuin53.dll
+	File Files32\icuuc53.dll
 	File Files32\libEGL.dll
 	File Files32\libGLESv2.dll
 
diff --git a/nsi/copyfiles.bat b/nsi/copyfiles.bat
index cbcca43..d79f62f 100644
--- a/nsi/copyfiles.bat
+++ b/nsi/copyfiles.bat
@@ -6,7 +6,7 @@ rem http://technet.microsoft.com/en-us/library/bb491035.aspx
 rem http://vlaurie.com/computers2/Articles/environment.htm
 
 rem Section 1.) Define path to Qt, MSVC, .... installations
-set QMSI_QT_PATH="C:\Qt5\5.3\msvc2013_64"
+set QMSI_QT_PATH="C:\Qt5\5.4\msvc2013_64"
 rem get the VC redistributable installer from http://www.microsoft.com/en-us/download/details.aspx?id=40784
 set QMSI_VCREDIST_PATH="M:\deploy"
 rem set QLGTI_LIBEXIF_PATH="D:\qlgt\tools\libexif"
@@ -33,13 +33,14 @@ copy %QMSI_QT_PATH%\bin\Qt5Script.dll
 copy %QMSI_QT_PATH%\bin\Qt5Sensors.dll
 copy %QMSI_QT_PATH%\bin\Qt5Sql.dll
 copy %QMSI_QT_PATH%\bin\Qt5Svg.dll
+copy %QMSI_QT_PATH%\bin\Qt5WebChannel.dll
 copy %QMSI_QT_PATH%\bin\Qt5WebKit.dll
 copy %QMSI_QT_PATH%\bin\Qt5WebKitWidgets.dll
 copy %QMSI_QT_PATH%\bin\Qt5Widgets.dll
 copy %QMSI_QT_PATH%\bin\Qt5Xml.dll
-copy %QMSI_QT_PATH%\bin\icudt52.dll
-copy %QMSI_QT_PATH%\bin\icuin52.dll
-copy %QMSI_QT_PATH%\bin\icuuc52.dll
+copy %QMSI_QT_PATH%\bin\icudt53.dll
+copy %QMSI_QT_PATH%\bin\icuin53.dll
+copy %QMSI_QT_PATH%\bin\icuuc53.dll
 copy %QMSI_QT_PATH%\bin\libEGL.dll
 copy %QMSI_QT_PATH%\bin\libGLESv2.dll
 mkdir imageformats
diff --git a/nsi/copyfiles32.bat b/nsi/copyfiles32.bat
index aa60e26..2fdd170 100644
--- a/nsi/copyfiles32.bat
+++ b/nsi/copyfiles32.bat
@@ -6,7 +6,7 @@ rem http://technet.microsoft.com/en-us/library/bb491035.aspx
 rem http://vlaurie.com/computers2/Articles/environment.htm
 
 rem Section 1.) Define path to Qt, MSVC, .... installations
-set QMSI_QT_PATH="C:\Qt5\5.3\msvc2013"
+set QMSI_QT_PATH="C:\Qt5\5.4\msvc2013"
 rem get the VC redistributable installer from http://www.microsoft.com/en-us/download/details.aspx?id=40784
 set QMSI_VCREDIST_PATH="M:\deploy"
 rem set QLGTI_LIBEXIF_PATH="D:\qlgt\tools\libexif"
@@ -33,13 +33,14 @@ copy %QMSI_QT_PATH%\bin\Qt5Script.dll
 copy %QMSI_QT_PATH%\bin\Qt5Sensors.dll
 copy %QMSI_QT_PATH%\bin\Qt5Sql.dll
 copy %QMSI_QT_PATH%\bin\Qt5Svg.dll
+copy %QMSI_QT_PATH%\bin\Qt5WebChannel.dll
 copy %QMSI_QT_PATH%\bin\Qt5WebKit.dll
 copy %QMSI_QT_PATH%\bin\Qt5WebKitWidgets.dll
 copy %QMSI_QT_PATH%\bin\Qt5Widgets.dll
 copy %QMSI_QT_PATH%\bin\Qt5Xml.dll
-copy %QMSI_QT_PATH%\bin\icudt52.dll
-copy %QMSI_QT_PATH%\bin\icuin52.dll
-copy %QMSI_QT_PATH%\bin\icuuc52.dll
+copy %QMSI_QT_PATH%\bin\icudt53.dll
+copy %QMSI_QT_PATH%\bin\icuin53.dll
+copy %QMSI_QT_PATH%\bin\icuuc53.dll
 copy %QMSI_QT_PATH%\bin\libEGL.dll
 copy %QMSI_QT_PATH%\bin\libGLESv2.dll
 mkdir imageformats
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index da94615..474a9d4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -26,6 +26,7 @@ set( SRCS
     helpers/CWptIconDialog.cpp
     helpers/CTextEditWidget.cpp
     helpers/CSelectProjectDialog.cpp
+    helpers/CSelectCopyAction.cpp
     helpers/CHistoryListWidget.cpp
     helpers/CElevationDialog.cpp
     helpers/CLinksDialog.cpp
@@ -113,6 +114,7 @@ set( SRCS
     gis/db/CDBFolderProject.cpp
     gis/db/CDBItem.cpp
     gis/db/CDBProject.cpp
+    gis/db/CLostFoundProject.cpp
     gis/search/CSearchGoogle.cpp
     gis/wpt/CGisItemWpt.cpp
     gis/wpt/CScrOptWpt.cpp
@@ -162,6 +164,7 @@ set( HDRS
     helpers/CSettings.h
     helpers/CInputDialog.h
     helpers/CPositionDialog.h
+    helpers/CSelectCopyAction.h
     helpers/CWptIconDialog.h
     helpers/CTextEditWidget.h
     helpers/CSelectProjectDialog.h
@@ -251,6 +254,7 @@ set( HDRS
     gis/db/CDBFolderProject.h
     gis/db/CDBItem.h
     gis/db/CDBProject.h
+    gis/db/CLostFoundProject.h
     gis/wpt/CGisItemWpt.h
     gis/wpt/CScrOptWpt.h
     gis/wpt/CDetailsWpt.h
@@ -296,6 +300,7 @@ set( UIS
     helpers/IWptIconDialog.ui
     helpers/ITextEditWidget.ui
     helpers/ISelectProjectDialog.ui
+    helpers/ISelectCopyAction.ui
     helpers/IElevationDialog.ui
     helpers/ILinksDialog.ui
     canvas/ICanvasSetup.ui
diff --git a/src/gis/CGisListDB.cpp b/src/gis/CGisListDB.cpp
index b28c900..6fb20d2 100644
--- a/src/gis/CGisListDB.cpp
+++ b/src/gis/CGisListDB.cpp
@@ -77,6 +77,9 @@ CGisListDB::CGisListDB(QWidget *parent)
     actionAddFolder     = menuFolder->addAction(QIcon("://icons/32x32/Add.png"), tr("Add Folder"), this, SLOT(slotAddFolder()));
     actionDelFolder     = menuFolder->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Folder"), this, SLOT(slotDelFolder()));
 
+    menuItem            = new QMenu(this);
+    actionDelItem       = menuItem->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Item"), this, SLOT(slotDelItem()));
+
     menuDatabase        = new QMenu(this);
     menuDatabase->addAction(actionAddFolder);
     actionDelDatabase   = menuDatabase->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Remove Database"), this, SLOT(slotDelDatabase()));
@@ -84,6 +87,10 @@ CGisListDB::CGisListDB(QWidget *parent)
     menuLostFound       = new QMenu(this);
     actionDelLostFound  = menuLostFound->addAction(QIcon("://icons/32x32/Empty.png"), tr("Empty"), this, SLOT(slotDelLostFound()));
 
+    menuLostFoundItem       = new QMenu(this);
+    actionDelLostFoundItem  = menuLostFoundItem->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Item"), this, SLOT(slotDelLostFoundItem()));
+
+
     connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint)));
     connect(this, SIGNAL(itemExpanded(QTreeWidgetItem*)), this, SLOT(slotItemExpanded(QTreeWidgetItem*)));
     connect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(slotItemChanged(QTreeWidgetItem*,int)));
@@ -101,7 +108,7 @@ CGisListDB::~CGisListDB()
         CDBFolderDatabase * database = dynamic_cast<CDBFolderDatabase*>(topLevelItem(n));
         if(database)
         {
-            names << database->text(IDBFolder::eColumnName);
+            names << database->text(CGisListDB::eColumnName);
             files << database->getFilename();
         }
     }
@@ -134,7 +141,7 @@ bool CGisListDB::hasDatabase(const QString& name)
     for(int i = 0; i < N; i++)
     {
         CDBFolderDatabase * folder = dynamic_cast<CDBFolderDatabase*>(topLevelItem(i));
-        if(folder && (folder->text(IDBFolder::eColumnName) == name))
+        if(folder && (folder->text(CGisListDB::eColumnName) == name))
         {
             return true;
         }
@@ -151,12 +158,15 @@ bool CGisListDB::event(QEvent * e)
     {
     case eEvtW2DAckInfo:
     {
-        CEvtW2DAckInfo * evt = (CEvtW2DAckInfo*)e;
-        IDBFolder * folder = getDataBase(evt->db);
+        CEvtW2DAckInfo * evt        = (CEvtW2DAckInfo*)e;
+        CDBFolderDatabase * folder  = getDataBase(evt->db);
         if(folder)
         {
             folder->update(evt);
-
+            if(evt->updateLostFound)
+            {
+                folder->updateLostFound();
+            }
         }
         e->accept();
         return true;
@@ -196,6 +206,22 @@ void CGisListDB::slotContextMenu(const QPoint& point)
         menuFolder->exec(p);
         return;
     }
+
+    CDBItem * item = dynamic_cast<CDBItem*>(currentItem());
+    if(item)
+    {
+        CDBFolderLostFound * lostFound = dynamic_cast<CDBFolderLostFound*>(item->parent());
+        if(lostFound)
+        {
+            menuLostFoundItem->exec(p);
+        }
+        else
+        {
+            menuItem->exec(p);
+        }
+
+        return;
+    }
 }
 
 void CGisListDB::slotAddDatabase()
@@ -225,7 +251,7 @@ void CGisListDB::slotDelDatabase()
         return;
     }
 
-    int res = QMessageBox::question(this, tr("Remove database..."), tr("Do you realy want to remove '%1' from the list?").arg(folder->text(IDBFolder::eColumnName)), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+    int res = QMessageBox::question(this, tr("Remove database..."), tr("Do you realy want to remove '%1' from the list?").arg(folder->text(CGisListDB::eColumnName)), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
     if(res != QMessageBox::Ok)
     {
         return;
@@ -298,9 +324,50 @@ void CGisListDB::slotDelLostFound()
         return;
     }
 
+    QApplication::setOverrideCursor(Qt::WaitCursor);
     folder->clear();
+    QApplication::restoreOverrideCursor();
 }
 
+void CGisListDB::slotDelLostFoundItem()
+{
+    CGisListDBEditLock lock(false, this);
+
+    int res = QMessageBox::question(this, tr("Remove items..."), tr("Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently."), QMessageBox::Ok|QMessageBox::No);
+    if(res != QMessageBox::Ok)
+    {
+        return;
+    }
+
+    QApplication::setOverrideCursor(Qt::WaitCursor);
+    QSet<CDBFolderLostFound*> folders;
+    QList<QTreeWidgetItem*> delItems;
+    QList<QTreeWidgetItem*> items = selectedItems();
+    foreach(QTreeWidgetItem * item, items)
+    {
+
+        CDBItem * dbItem            = dynamic_cast<CDBItem*>(item);
+        CDBFolderLostFound * folder = dynamic_cast<CDBFolderLostFound*>(dbItem->parent());
+
+        if(folder && dbItem)
+        {
+            if(folder->delItem(dbItem))
+            {
+                delItems    << dbItem;
+                folders     << folder;
+            }
+        }
+    }
+
+    qDeleteAll(delItems);
+    foreach(CDBFolderLostFound* folder, folders)
+    {
+        folder->update();
+    }
+    QApplication::restoreOverrideCursor();
+}
+
+
 void CGisListDB::slotItemExpanded(QTreeWidgetItem * item)
 {   
     CGisListDBEditLock lock(true, this);
@@ -314,6 +381,57 @@ void CGisListDB::slotItemExpanded(QTreeWidgetItem * item)
     folder->expanding();
 }
 
+void CGisListDB::slotDelItem()
+{
+    CGisListDBEditLock lock(false, this);
+
+    int last = QMessageBox::NoButton;
+
+    QList<QTreeWidgetItem*> dbItems;
+    QSet<CDBFolderDatabase*> dbFolders;
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    foreach(QTreeWidgetItem * item, items)
+    {
+        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
+        if(dbItem == 0)
+        {
+            continue;
+        }
+
+        IDBFolder * folder = dynamic_cast<IDBFolder*>(dbItem->parent());
+        if(folder == 0)
+        {
+            continue;
+        }
+
+        if(last != QMessageBox::YesToAll)
+        {
+            QString msg = QObject::tr("Are you sure you want to delete '%1' from folder '%2'?").arg(dbItem->text(CGisListDB::eColumnName)).arg(folder->text(CGisListDB::eColumnName));
+            last = QMessageBox::question(0, QObject::tr("Delete..."), msg, QMessageBox::YesToAll|QMessageBox::Cancel|QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
+        }
+        if(last == QMessageBox::No)
+        {
+            continue;
+        }
+        if(last == QMessageBox::Cancel)
+        {
+            return;
+        }
+
+        dbItem->remove();
+        dbItems << dbItem;
+        dbFolders << folder->getDBFolder();
+    }
+
+    qDeleteAll(dbItems);
+    foreach(CDBFolderDatabase * dbFolder, dbFolders)
+    {
+        dbFolder->updateLostFound();
+    }
+
+}
+
 void CGisListDB::slotItemChanged(QTreeWidgetItem * item, int column)
 {
     if(isInternalEdit)
@@ -322,7 +440,7 @@ void CGisListDB::slotItemChanged(QTreeWidgetItem * item, int column)
     }
     CGisListDBEditLock lock(true, this);
 
-    if(column == IDBFolder::eColumnCheckbox)
+    if(column == CGisListDB::eColumnCheckbox)
     {
         IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
         if(folder != 0)
diff --git a/src/gis/CGisListDB.h b/src/gis/CGisListDB.h
index de255b4..f6f8227 100644
--- a/src/gis/CGisListDB.h
+++ b/src/gis/CGisListDB.h
@@ -35,6 +35,12 @@ class CGisListDB : public QTreeWidget
         CGisListDB(QWidget * parent);
         virtual ~CGisListDB();
 
+        enum column_e
+        {
+             eColumnCheckbox = 0
+            ,eColumnName = 1
+        };
+
         bool hasDatabase(const QString& name);
         bool event(QEvent * e);
 
@@ -46,10 +52,12 @@ class CGisListDB : public QTreeWidget
         void slotAddFolder();
         void slotDelFolder();
         void slotDelLostFound();
+        void slotDelLostFoundItem();
         void slotItemExpanded(QTreeWidgetItem * item);
         void slotItemChanged(QTreeWidgetItem * item, int column);
         void slotAddDatabase();
         void slotDelDatabase();
+        void slotDelItem();
 
     private:
         friend class CGisListDBEditLock;
@@ -69,9 +77,16 @@ class CGisListDB : public QTreeWidget
         QMenu * menuDatabase;
         QAction * actionDelDatabase;
 
+        QMenu * menuItem;
+        QAction * actionDelItem;
+
         QMenu * menuLostFound;
         QAction * actionDelLostFound;
 
+        QMenu * menuLostFoundItem;
+        QAction * actionDelLostFoundItem;
+
+
 //        CDBFolderDatabase *  folderDatabase;
 };
 
diff --git a/src/gis/CGisListWks.cpp b/src/gis/CGisListWks.cpp
index c0f1137..fb1de05 100644
--- a/src/gis/CGisListWks.cpp
+++ b/src/gis/CGisListWks.cpp
@@ -22,6 +22,7 @@
 #include "gis/CGisWidget.h"
 #include "gis/IGisItem.h"
 #include "gis/db/CDBProject.h"
+#include "gis/db/CLostFoundProject.h"
 #include "gis/db/macros.h"
 #include "gis/gpx/CGpxProject.h"
 #include "gis/ovl/CGisItemOvlArea.h"
@@ -32,6 +33,7 @@
 #include "gis/trk/CGisItemTrk.h"
 #include "gis/wpt/CGisItemWpt.h"
 #include "helpers/CSelectProjectDialog.h"
+#include "helpers/CSelectCopyAction.h"
 #include "helpers/CSettings.h"
 
 #include <QtSql>
@@ -85,20 +87,42 @@ CGisListWks::CGisListWks(QWidget *parent)
     connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint)));
     connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(slotItemDoubleClicked(QTreeWidgetItem*,int)));
 
-    menuItem        = new QMenu(this);
-    actionEditDetails = menuItem->addAction(QIcon("://icons/32x32/EditDetails.png"),tr("Edit..."), this, SLOT(slotEditItem()));
-    actionMoveWpt   = menuItem->addAction(QIcon("://icons/32x32/WptMove.png"),tr("Move Waypoint"), this, SLOT(slotMoveWpt()));
-    actionProjWpt   = menuItem->addAction(QIcon("://icons/32x32/WptProj.png"),tr("Proj. Waypoint..."), this, SLOT(slotProjWpt()));
-    actionFocusTrk  = menuItem->addAction(QIcon("://icons/32x32/TrkProfile.png"),tr("Track Profile"));
-    actionRangeTrk  = menuItem->addAction(QIcon("://icons/32x32/SelectRange.png"),tr("Select Range"), this, SLOT(slotRangeTrk()));
-    actionEditTrk   = menuItem->addAction(QIcon("://icons/32x32/LineMove.png"),tr("Edit Track Points"), this, SLOT(slotEditTrk()));
-    actionReverseTrk = menuItem->addAction(QIcon("://icons/32x32/Reverse.png"),tr("Reverse Track"), this, SLOT(slotReverseTrk()));
-    actionCombineTrk = menuItem->addAction(QIcon("://icons/32x32/Combine.png"),tr("Combine Tracks"), this, SLOT(slotCombineTrk()));
-    actionEditArea   = menuItem->addAction(QIcon("://icons/32x32/AreaMove.png"),tr("Edit Area Points"), this, SLOT(slotEditArea()));
+    menuItemTrk     = new QMenu(this);
+    actionEditDetails = menuItemTrk->addAction(QIcon("://icons/32x32/EditDetails.png"),tr("Edit..."), this, SLOT(slotEditItem()));
+    actionCopyItem  = menuItemTrk->addAction(QIcon("://icons/32x32/Copy.png"),tr("Copy to..."), this, SLOT(slotCopyItem()));
+    actionFocusTrk  = menuItemTrk->addAction(QIcon("://icons/32x32/TrkProfile.png"),tr("Track Profile"));
     actionFocusTrk->setCheckable(true);
-    connect(actionFocusTrk, SIGNAL(triggered(bool)), this, SLOT(slotFocusTrk(bool)));
-    actionDelete    = menuItem->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"), this, SLOT(slotDeleteItem()));
+    actionRangeTrk  = menuItemTrk->addAction(QIcon("://icons/32x32/SelectRange.png"),tr("Select Range"), this, SLOT(slotRangeTrk()));
+    actionEditTrk   = menuItemTrk->addAction(QIcon("://icons/32x32/LineMove.png"),tr("Edit Track Points"), this, SLOT(slotEditTrk()));
+    actionReverseTrk = menuItemTrk->addAction(QIcon("://icons/32x32/Reverse.png"),tr("Reverse Track"), this, SLOT(slotReverseTrk()));
+    actionCombineTrk = menuItemTrk->addAction(QIcon("://icons/32x32/Combine.png"),tr("Combine Tracks"), this, SLOT(slotCombineTrk()));
+    actionDelete    = menuItemTrk->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"), this, SLOT(slotDeleteItem()));
+
+    menuItemWpt     = new QMenu(this);
+    menuItemWpt->addAction(actionEditDetails);
+    menuItemWpt->addAction(actionCopyItem);
+    actionMoveWpt   = menuItemWpt->addAction(QIcon("://icons/32x32/WptMove.png"),tr("Move Waypoint"), this, SLOT(slotMoveWpt()));
+    actionProjWpt   = menuItemWpt->addAction(QIcon("://icons/32x32/WptProj.png"),tr("Proj. Waypoint..."), this, SLOT(slotProjWpt()));
+    menuItemWpt->addAction(actionDelete);
+
+    menuItemRte     = new QMenu(this);
+    menuItemRte->addAction(actionEditDetails);
+    menuItemRte->addAction(actionCopyItem);
+    menuItemRte->addAction(actionDelete);
 
+
+    menuItemOvl     = new QMenu(this);
+    menuItemOvl->addAction(actionEditDetails);
+    menuItemOvl->addAction(actionCopyItem);
+    actionEditArea  = menuItemOvl->addAction(QIcon("://icons/32x32/AreaMove.png"),tr("Edit Area Points"), this, SLOT(slotEditArea()));
+    menuItemOvl->addAction(actionDelete);
+
+
+    menuItem        = new QMenu(this);
+    menuItem->addAction(actionCopyItem);
+    menuItem->addAction(actionDelete);
+
+    connect(actionFocusTrk, SIGNAL(triggered(bool)), this, SLOT(slotFocusTrk(bool)));
     connect(qApp, SIGNAL(aboutToQuit ()), this, SLOT(slotSaveWorkspace()));
 
     SETTINGS;
@@ -315,84 +339,14 @@ void CGisListWks::dragMoveEvent (QDragMoveEvent  * e )
 
 void CGisListWks::dropEvent ( QDropEvent  * e )
 {
-    QList<QTreeWidgetItem*> duplicate;
-    QList<QTreeWidgetItem*> items   = selectedItems();
-    QTreeWidgetItem * item2         = itemAt(e->pos());
-
-    int cnt = 1;
-    int N   = items.size();
-    QProgressDialog progress("Check for duplicat...", "Abort check", 0, 100, this);
-    progress.setWindowModality(Qt::WindowModal);
-
-    // collect duplicat items
-    foreach(QTreeWidgetItem * item1, items)
-    {
-        progress.setValue((100 * cnt++) / N);
-        if (progress.wasCanceled())
-        {
-            return;
-        }
-
-        IGisItem * gisItem1 = dynamic_cast<IGisItem*>(item1);
-        IGisItem * gisItem2 = dynamic_cast<IGisItem*>(item2);
-        if(gisItem1 && gisItem2)
-        {
-            // if it is a drop on an item and the other item is in another project
-            if(gisItem1->parent() != gisItem2->parent())
-            {
-                // iterate over all items of the target project and check keys
-                QTreeWidgetItem * parent = gisItem2->parent();
-                for(int i = 0; i < parent->childCount(); i++)
-                {
-                    IGisItem * gisItem = dynamic_cast<IGisItem*>(parent->child(i));
-                    if(gisItem)
-                    {
-                        if(gisItem->getKey().item == gisItem1->getKey().item)
-                        {
-                            duplicate << gisItem1;
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            // if it is a drop on a project and the project is different from the source item's project
-            IGisProject * parent = dynamic_cast<IGisProject*>(itemAt(e->pos()));
-            if(parent && gisItem1 && gisItem1->parent() != parent)
-            {
-                // iterate over all items of the target project and check keys
-                for(int i = 0; i < parent->childCount(); i++)
-                {
-                    IGisItem * gisItem = dynamic_cast<IGisItem*>(parent->child(i));
-                    if(gisItem)
-                    {
-                        if(gisItem->getKey().item == gisItem1->getKey().item)
-                        {
-                            duplicate << gisItem1;
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    // finally, remove all duplicat items from local list of selected item
-    foreach(QTreeWidgetItem * item, duplicate)
-    {
-        items.removeAll(item);
-    }
-
-    if(items.isEmpty())
-    {
-        return;
-    }
 
+    QList<QTreeWidgetItem*> items   = selectedItems();
     if(items.isEmpty())
     {
         return;
     }
 
+    int lastResult = CSelectCopyAction::eResultNone;
 
     // go on with item insertion
     /*
@@ -410,8 +364,7 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
         5) Test if item under cursor is a project
         6) If project and project is not item's project create a copy
 
-     */
-
+    */
     if(items.size() == 1)
     {
         // calc. index offset (below/above item)
@@ -420,6 +373,17 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
         int y2 = e->pos().y();
         int off = y2 > y1 ? 1 : 0;
 
+        IGisProject * prj1 = dynamic_cast<IGisProject*>(currentItem());
+        IGisProject * prj2 = dynamic_cast<IGisProject*>(itemAt(e->pos()));
+        if(prj1 && prj2)
+        {
+            prj2->setFlags(prj2->flags() & ~Qt::ItemIsDropEnabled);
+            QTreeWidget::dropEvent(e);
+            prj2->setFlags(prj2->flags() |  Qt::ItemIsDropEnabled);
+            emit sigChanged();
+            return;
+        }
+
         CGisItemWpt * wpt1 = dynamic_cast<CGisItemWpt*>(currentItem());
         CGisItemWpt * wpt2 = dynamic_cast<CGisItemWpt*>(itemAt(e->pos()));
 
@@ -434,7 +398,7 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
                 IGisProject * project = dynamic_cast<IGisProject*>(wpt2->parent());
                 if(project)
                 {
-                    new CGisItemWpt(*wpt1,project, project->indexOfChild(wpt2) + off);
+                    project->insertCopyOfItem(wpt1, off, lastResult);
                 }
             }
             emit sigChanged();
@@ -455,7 +419,7 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
                 IGisProject * project = dynamic_cast<IGisProject*>(trk2->parent());
                 if(project)
                 {
-                    new CGisItemTrk(*trk1,project, project->indexOfChild(trk2) + off);
+                    project->insertCopyOfItem(trk1, off, lastResult);
                 }
             }
             emit sigChanged();
@@ -476,7 +440,7 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
                 IGisProject * project = dynamic_cast<IGisProject*>(rte2->parent());
                 if(project)
                 {
-                    new CGisItemRte(*rte1,project, project->indexOfChild(rte2) + off);
+                    project->insertCopyOfItem(rte1, off, lastResult);
                 }
             }
             emit sigChanged();
@@ -497,7 +461,7 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
                 IGisProject * project = dynamic_cast<IGisProject*>(area2->parent());
                 if(project)
                 {
-                    new CGisItemOvlArea(*area1,project, project->indexOfChild(area2) + off);
+                    project->insertCopyOfItem(area1, off, lastResult);
                 }
             }
             emit sigChanged();
@@ -522,28 +486,10 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
                 break;
             }
 
-            if(project != item->parent())
+            IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+            if(gisItem)
             {
-                if(item->type() == IGisItem::eTypeWpt)
-                {
-                    CGisItemWpt * wpt1 = dynamic_cast<CGisItemWpt*>(item);
-                    new CGisItemWpt(*wpt1, project, -1);
-                }
-                if(item->type() == IGisItem::eTypeTrk)
-                {
-                    CGisItemTrk * trk1 = dynamic_cast<CGisItemTrk*>(item);
-                    new CGisItemTrk(*trk1, project, -1);
-                }
-                if(item->type() == IGisItem::eTypeRte)
-                {
-                    CGisItemRte * rte1 = dynamic_cast<CGisItemRte*>(item);
-                    new CGisItemRte(*rte1, project, -1);
-                }
-                if(item->type() == IGisItem::eTypeOvl)
-                {
-                    CGisItemOvlArea * area1 = dynamic_cast<CGisItemOvlArea*>(item);
-                    new CGisItemOvlArea(*area1, project, -1);
-                }
+                project->insertCopyOfItem(gisItem, -1, lastResult);
             }
         }
     }
@@ -716,8 +662,11 @@ void CGisListWks::slotLoadWorkspace()
             continue;
         }
 
-        project->setToolTip(0,project->getInfo());
-        project->setText(1, changed ? "*" : "");
+        project->setToolTip(eColumnName,project->getInfo());
+        if(changed)
+        {
+            project->setText(eColumnDecoration, "*");
+        }
     }
 
     emit sigChanged();
@@ -725,9 +674,9 @@ void CGisListWks::slotLoadWorkspace()
 
 void CGisListWks::slotContextMenu(const QPoint& point)
 {
+    QPoint p = mapToGlobal(point);
     if(selectedItems().isEmpty() && menuNone)
     {
-        QPoint p = mapToGlobal(point);
         menuNone->exec(p);
         return;
     }
@@ -737,9 +686,7 @@ void CGisListWks::slotContextMenu(const QPoint& point)
         IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
         if(project != 0)
         {
-            actionEditPrj->setVisible(false);
-
-            QPoint p = mapToGlobal(point);
+            actionEditPrj->setVisible(false);           
             menuProject->exec(p);
             return;
         }
@@ -747,18 +694,8 @@ void CGisListWks::slotContextMenu(const QPoint& point)
         IGisItem * gisItem = dynamic_cast<IGisItem*>(currentItem());
         if(gisItem != 0)
         {
-            actionEditDetails->setVisible(false);
-            actionProjWpt->setVisible(false);
-            actionMoveWpt->setVisible(false);
-            actionFocusTrk->setVisible(false);
-            actionEditTrk->setVisible(false);
-            actionReverseTrk->setVisible(false);
-            actionCombineTrk->setVisible(false);
-            actionRangeTrk->setVisible(false);
-            actionEditArea->setVisible(false);
-
-            QPoint p = mapToGlobal(point);
             menuItem->exec(p);
+            return;
         }
         return;
     }
@@ -768,67 +705,39 @@ void CGisListWks::slotContextMenu(const QPoint& point)
         IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
         if(project != 0)
         {
-            actionEditPrj->setVisible(true);
-
-            QPoint p = mapToGlobal(point);
-            menuProject->exec(p);
-            return;
-        }
-
-        IGisItem * gisItem = dynamic_cast<IGisItem*>(currentItem());
-        if(gisItem != 0)
-        {
-            actionEditDetails->setVisible(true);
-
-            // try to cast item to waypoint and hide/show actions on result
-            CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(gisItem);
-            if(wpt == 0)
-            {
-                actionProjWpt->setVisible(false);
-                actionMoveWpt->setVisible(false);
-            }
-            else
-            {
-                actionProjWpt->setVisible(true);
-                actionMoveWpt->setVisible(true);
-                actionMoveWpt->setEnabled(!wpt->isReadOnly());
-                actionProjWpt->setEnabled(!wpt->isGeocache());
-            }
-
-            // try to cast item to track and hide/show actions on result
-            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gisItem);
-            if(trk == 0)
+            if(project->getType() == IGisProject::eTypeLostFound)
             {
-                actionFocusTrk->setVisible(false);
-                actionEditTrk->setVisible(false);
-                actionReverseTrk->setVisible(false);
-                actionCombineTrk->setVisible(false);
-                actionRangeTrk->setVisible(false);
+                actionSave->setVisible(false);
+                actionEditPrj->setVisible(false);
             }
             else
             {
-                actionFocusTrk->setVisible(true);
-                actionEditTrk->setVisible(true);
-                actionReverseTrk->setVisible(true);
-                actionCombineTrk->setVisible(true);
-                actionRangeTrk->setVisible(true);
-                actionFocusTrk->setChecked(trk->hasUserFocus());
-                actionEditTrk->setEnabled(!trk->isReadOnly());
+                actionSave->setVisible(true);
+                actionEditPrj->setVisible(true);
             }
+            menuProject->exec(p);
+            return;
+        }
 
-            // try to cast item to track and hide/show actions on result
-            CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(gisItem);
-            if(area == 0)
-            {
-                actionEditArea->setVisible(false);
-            }
-            else
+        IGisItem * gisItem = dynamic_cast<IGisItem*>(currentItem());       
+        if(gisItem != 0)
+        {          
+            switch(gisItem->type())
             {
-                actionEditArea->setVisible(true);
+            case IGisItem::eTypeTrk:
+                actionFocusTrk->setChecked(gisItem->hasUserFocus());
+                menuItemTrk->exec(p);
+                break;
+            case IGisItem::eTypeWpt:
+                menuItemWpt->exec(p);
+                break;
+            case IGisItem::eTypeRte:
+                menuItemRte->exec(p);
+                break;
+            case IGisItem::eTypeOvl:
+                menuItemOvl->exec(p);
+                break;
             }
-            // display menu
-            QPoint p = mapToGlobal(point);
-            menuItem->exec(p);
             return;
         }
     }
@@ -958,7 +867,31 @@ void CGisListWks::slotDeleteItem()
             project->postStatus();
         }
     }
+}
+
+void CGisListWks::slotCopyItem()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    IGisProject * project = CGisWidget::self().selectProject();
+    if(project == 0)
+    {
+        return;
+    }
+
+    int lastResult = CSelectCopyAction::eResultNone;
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    foreach(QTreeWidgetItem * item, items)
+    {
+        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+        if(gisItem == 0)
+        {
+            continue;
+        }
 
+        project->insertCopyOfItem(gisItem, -1, lastResult);
+    }
 }
 
 void CGisListWks::slotProjWpt()
@@ -1122,7 +1055,14 @@ bool CGisListWks::event(QEvent * e)
         CDBProject * project =  getProjectById(evt->id, evt->db);
         if(project == 0)
         {
-            project = new CDBProject(evt->db, evt->id, this);
+            if(evt->id == 0)
+            {
+                project = new CLostFoundProject(evt->db, this);
+            }
+            else
+            {
+                project = new CDBProject(evt->db, evt->id, this);
+            }
             if(!project->isValid())
             {
                 delete project;
@@ -1166,6 +1106,18 @@ bool CGisListWks::event(QEvent * e)
         emit sigChanged();
         return true;
     }
+    case eEvtD2WUpdateLnF:
+    {
+        CEvtD2WUpdateLnF * evt = (CEvtD2WUpdateLnF*)e;
+        CLostFoundProject * project = dynamic_cast<CLostFoundProject*>(getProjectById(evt->id, evt->db));
+        if(project)
+        {
+            project->updateFromDb();
+        }
+        e->accept();
+        emit sigChanged();
+        return true;
+    }
     }
 
     return QTreeWidget::event(e);
diff --git a/src/gis/CGisListWks.h b/src/gis/CGisListWks.h
index 46851c0..d595a74 100644
--- a/src/gis/CGisListWks.h
+++ b/src/gis/CGisListWks.h
@@ -36,6 +36,13 @@ class CGisListWks : public QTreeWidget
         CGisListWks(QWidget * parent);
         virtual ~CGisListWks();
 
+        enum column_e
+        {
+             eColumnDecoration = 0
+            ,eColumnName = 1
+        };
+
+
         void setExternalMenu(QMenu * project);
         bool hasProject(IGisProject *project);
 
@@ -73,6 +80,7 @@ class CGisListWks : public QTreeWidget
         void slotAddEmptyProject();
         void slotCloseAllProjects();
         void slotSearchGoogle(bool on);
+        void slotCopyItem();
 
 
     private:
@@ -89,7 +97,12 @@ class CGisListWks : public QTreeWidget
         QAction  * actionClose;
 
         QMenu * menuItem;
+        QMenu * menuItemTrk;
+        QMenu * menuItemWpt;
+        QMenu * menuItemRte;
+        QMenu * menuItemOvl;
         QAction * actionEditDetails;
+        QAction * actionCopyItem;
         QAction * actionDelete;
         QAction * actionProjWpt;
         QAction * actionMoveWpt;
diff --git a/src/gis/CGisWidget.cpp b/src/gis/CGisWidget.cpp
index b98ee3e..1e20d52 100644
--- a/src/gis/CGisWidget.cpp
+++ b/src/gis/CGisWidget.cpp
@@ -29,6 +29,7 @@
 #include "gis/wpt/CProjWpt.h"
 #include "gis/db/CDBProject.h"
 #include "helpers/CSelectProjectDialog.h"
+#include "helpers/CSelectCopyAction.h"
 #include "helpers/CSettings.h"
 
 #include <QtWidgets>
@@ -76,7 +77,7 @@ void CGisWidget::loadGisProject(const QString& filename)
 {
     // add project to workspace
     QApplication::setOverrideCursor(Qt::WaitCursor);
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     IGisProject * item = 0;
     QString suffix = QFileInfo(filename).suffix().toLower();
     if(suffix == "gpx")
@@ -101,7 +102,7 @@ void CGisWidget::loadGisProject(const QString& filename)
         item = 0;
     }
 
-    IGisItem::mutexItems.unlock();
+
     QApplication::restoreOverrideCursor();
 
     emit sigChanged();
@@ -122,7 +123,7 @@ void CGisWidget::slotHelpText()
 void CGisWidget::slotSaveAll()
 {
     QApplication::setOverrideCursor(Qt::WaitCursor);
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
         IGisProject * item = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
@@ -132,7 +133,7 @@ void CGisWidget::slotSaveAll()
         }
         item->save();
     }
-    IGisItem::mutexItems.unlock();
+
     QApplication::restoreOverrideCursor();
 }
 
@@ -147,7 +148,7 @@ IGisProject * CGisWidget::selectProject()
     IGisProject * project = 0;
     if(!key.isEmpty())
     {
-        IGisItem::mutexItems.lock();
+        QMutexLocker lock(&IGisItem::mutexItems);
         for(int i = 0; i < treeWks->topLevelItemCount(); i++)
         {
             project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
@@ -160,11 +161,11 @@ IGisProject * CGisWidget::selectProject()
                 break;
             }
         }
-        IGisItem::mutexItems.unlock();
+
     }
     else if(!name.isEmpty())
     {
-        IGisItem::mutexItems.lock();
+        QMutexLocker lock(&IGisItem::mutexItems);
         if(type == CSelectProjectDialog::eTypeGpx)
         {
             project = new CGpxProject(name, treeWks);
@@ -173,8 +174,6 @@ IGisProject * CGisWidget::selectProject()
         {
             project = new CQmsProject(name, treeWks);
         }
-
-        IGisItem::mutexItems.unlock();
     }
 
     return(project);
@@ -182,7 +181,7 @@ IGisProject * CGisWidget::selectProject()
 
 void CGisWidget::getItemsByPos(const QPointF& pos, QList<IGisItem*>& items)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
         IGisProject * project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
@@ -192,13 +191,13 @@ void CGisWidget::getItemsByPos(const QPointF& pos, QList<IGisItem*>& items)
         }
         project->getItemByPos(pos, items);
     }
-    IGisItem::mutexItems.unlock();
+
 }
 
 IGisItem * CGisWidget::getItemByKey(const IGisItem::key_t& key)
 {
     IGisItem * item = 0;
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
         IGisProject * project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
@@ -218,13 +217,13 @@ IGisItem * CGisWidget::getItemByKey(const IGisItem::key_t& key)
             break;
         }
     }
-    IGisItem::mutexItems.unlock();
+
     return(item);
 }
 
 void CGisWidget::delItemByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     QMessageBox::StandardButtons last = QMessageBox::NoButton;
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
@@ -250,13 +249,13 @@ void CGisWidget::delItemByKey(const IGisItem::key_t& key)
         }
     }
 
-    IGisItem::mutexItems.unlock();
+
     emit sigChanged();
 }
 
 void CGisWidget::editItemByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
         IGisProject * project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
@@ -267,13 +266,38 @@ void CGisWidget::editItemByKey(const IGisItem::key_t& key)
         project->editItemByKey(key);
     }
 
-    IGisItem::mutexItems.unlock();
+
+    emit sigChanged();
+}
+
+void CGisWidget::copyItemByKey(const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    IGisItem * item = getItemByKey(key);
+    if(item == 0)
+    {
+
+        return;
+    }
+
+    IGisProject * project = selectProject();
+    if(project == 0)
+    {
+
+        return;
+    }
+
+    int lastResult = CSelectCopyAction::eResultNone;
+    project->insertCopyOfItem(item, -1, lastResult);
+
+
     emit sigChanged();
 }
 
 void CGisWidget::projWptByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
     if(wpt != 0)
@@ -282,13 +306,13 @@ void CGisWidget::projWptByKey(const IGisItem::key_t& key)
         dlg.exec();
     }
 
-    IGisItem::mutexItems.unlock();
+
     emit sigChanged();
 }
 
 void CGisWidget::moveWptByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
     if(wpt != 0)
     {
@@ -298,12 +322,12 @@ void CGisWidget::moveWptByKey(const IGisItem::key_t& key)
             canvas->setMouseMoveWpt(*wpt);
         }
     }
-    IGisItem::mutexItems.unlock();
+
 }
 
 void CGisWidget::focusTrkByKey(bool yes, const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
     if(trk != 0)
@@ -311,52 +335,52 @@ void CGisWidget::focusTrkByKey(bool yes, const IGisItem::key_t& key)
         trk->gainUserFocus(yes);
     }
 
-    IGisItem::mutexItems.unlock();
+
     emit sigChanged();
 }
 
 void CGisWidget::cutTrkByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
     if(trk != 0 && trk->cut())
     {
         delete trk;
     }
-    IGisItem::mutexItems.unlock();
+
     emit sigChanged();
 }
 
 void CGisWidget::reverseTrkByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
     if(trk)
     {
         trk->reverse();
     }
-    IGisItem::mutexItems.unlock();
+
     emit sigChanged();
 }
 
 void CGisWidget::combineTrkByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
     if(trk)
     {
         trk->combine();
     }
-    IGisItem::mutexItems.unlock();
+
     emit sigChanged();
 }
 
 void CGisWidget::editTrkByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
     if(trk != 0)
@@ -368,12 +392,12 @@ void CGisWidget::editTrkByKey(const IGisItem::key_t& key)
         }
     }
 
-    IGisItem::mutexItems.unlock();
+
 }
 
 void CGisWidget::rangeTrkByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
     if(trk != 0)
@@ -385,12 +409,12 @@ void CGisWidget::rangeTrkByKey(const IGisItem::key_t& key)
         }
     }
 
-    IGisItem::mutexItems.unlock();
+
 }
 
 void CGisWidget::editAreaByKey(const IGisItem::key_t& key)
 {
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
 
     CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(getItemByKey(key));
     if(area != 0)
@@ -402,7 +426,7 @@ void CGisWidget::editAreaByKey(const IGisItem::key_t& key)
         }
     }
 
-    IGisItem::mutexItems.unlock();
+
 }
 
 void CGisWidget::draw(QPainter& p, const QRectF& viewport, CGisDraw * gis)
@@ -411,7 +435,7 @@ void CGisWidget::draw(QPainter& p, const QRectF& viewport, CGisDraw * gis)
     QList<QRectF> blockedAreas;
     QSet<QString> seenKeys;
 
-    IGisItem::mutexItems.lock();
+    QMutexLocker lock(&IGisItem::mutexItems);
     // draw mandatory stuff first
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
@@ -446,7 +470,7 @@ void CGisWidget::draw(QPainter& p, const QRectF& viewport, CGisDraw * gis)
         }
         project->drawLabel(p, viewport, blockedAreas, seenKeys, fm, gis);
     }
-    IGisItem::mutexItems.unlock();
+
 }
 
 void CGisWidget::fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis)
@@ -455,7 +479,7 @@ void CGisWidget::fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis)
         Mutex locking will make map moving very slow if there are many GIS items
         visible. Remove it for now. But I am not sure if that is a good idea.
      */
-    //IGisItem::mutexItems.lock();
+    //QMutexLocker lock(&IGisItem::mutexItems);
     for(int i = 0; i < treeWks->topLevelItemCount(); i++)
     {
         IGisProject * project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
@@ -466,5 +490,5 @@ void CGisWidget::fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis)
 
         project->drawItem(p, viewport, gis);
     }
-    //IGisItem::mutexItems.unlock();
+    //
 }
diff --git a/src/gis/CGisWidget.h b/src/gis/CGisWidget.h
index b1360d4..663333a 100644
--- a/src/gis/CGisWidget.h
+++ b/src/gis/CGisWidget.h
@@ -36,6 +36,7 @@ enum event_types_e
     ,eEvtD2WHideFolder  = QEvent::User + 3
     ,eEvtD2WShowItems   = QEvent::User + 4
     ,eEvtD2WHideItems   = QEvent::User + 5
+    ,eEvtD2WUpdateLnF   = QEvent::User + 6
 
     ,eEvtW2DAckInfo     = QEvent::User + 100
 };
@@ -97,15 +98,26 @@ class CEvtD2WHideItems : public QEvent
 class CEvtW2DAckInfo : public QEvent
 {
     public:
-        CEvtW2DAckInfo(bool loaded, quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtW2DAckInfo)), isLoaded(loaded), id(id), db(db){}
+        CEvtW2DAckInfo(bool loaded, quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtW2DAckInfo)), isLoaded(loaded), updateLostFound(false), id(id), db(db){}
 
         bool isLoaded;
+        bool updateLostFound;
         quint64 id;
         QString db;
         QSet<QString> keysChildren;
 
 };
 
+class CEvtD2WUpdateLnF : public QEvent
+{
+    public:
+        CEvtD2WUpdateLnF(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WUpdateLnF)), id(id), db(db){}
+
+        quint64 id;
+        QString db;
+};
+
+
 
 class CGisWidget : public QWidget, private Ui::IGisWidget
 {
@@ -160,9 +172,6 @@ class CGisWidget : public QWidget, private Ui::IGisWidget
         /**
            @brief Delete all items with matching key from workspace
 
-           As an item can be attached to several projects each one of these items is deleted.
-           The method will prompt the user with a message box for each item deleted
-
            @param key       the item's key as it is returned from IGisItem::getKey()
          */
         void delItemByKey(const IGisItem::key_t &key);
@@ -174,6 +183,12 @@ class CGisWidget : public QWidget, private Ui::IGisWidget
         void editItemByKey(const IGisItem::key_t &key);
 
         /**
+           @brief Select a project and add a copy of the item to the project
+           @param key       the item's key as it is returned from IGisItem::getKey()
+        */
+        void copyItemByKey(const IGisItem::key_t &key);
+
+        /**
            @brief Clone waypoint and move clone
            @param key       the item's key as it is returned from IGisItem::getKey()
          */
diff --git a/src/gis/IGisItem.cpp b/src/gis/IGisItem.cpp
index e747143..743cc15 100644
--- a/src/gis/IGisItem.cpp
+++ b/src/gis/IGisItem.cpp
@@ -17,6 +17,7 @@
 **********************************************************************************************/
 
 #include "gis/IGisItem.h"
+#include "gis/CGisListWks.h"
 #include "gis/prj/IGisProject.h"
 #include "gis/trk/CGisItemTrk.h"
 #include "gis/wpt/CGisItemWpt.h"
@@ -189,7 +190,7 @@ void IGisItem::loadFromDb(quint64 id, QSqlDatabase& db)
     }
 }
 
-QString IGisItem::getNameEx()
+QString IGisItem::getNameEx() const
 {
     QString str = getName();
     IGisProject * project = dynamic_cast<IGisProject*>(parent());
@@ -204,15 +205,15 @@ QString IGisItem::getNameEx()
 void IGisItem::updateDecoration(mark_e enable, mark_e disable)
 {
     // update text and icon
-    setToolTip(0,getInfo());
-    setText(0, getName());
+    setToolTip(CGisListWks::eColumnName,getInfo());
+    setText(CGisListWks::eColumnName, getName());
     setSymbol();
 
     // update project if necessary
     IGisProject * project = dynamic_cast<IGisProject*>(parent());
     if(project && (enable & eMarkChanged))
     {
-        project->setText(1,"*");
+        project->setText(CGisListWks::eColumnDecoration,"*");
     }
 
     // set marks in column 1
@@ -226,7 +227,7 @@ void IGisItem::updateDecoration(mark_e enable, mark_e disable)
     {
         str += "*";
     }
-    setText(1, str);
+    setText(CGisListWks::eColumnDecoration, str);
 }
 
 
@@ -349,12 +350,12 @@ void IGisItem::cutHistory()
     }
 }
 
-bool IGisItem::isReadOnly()
+bool IGisItem::isReadOnly() const
 {
     return !(flags & eFlagWriteAllowed);
 }
 
-bool IGisItem::isTainted()
+bool IGisItem::isTainted() const
 {
     return (flags & eFlagTainted);
 }
diff --git a/src/gis/IGisItem.h b/src/gis/IGisItem.h
index 549ca50..ff21eb0 100644
--- a/src/gis/IGisItem.h
+++ b/src/gis/IGisItem.h
@@ -168,19 +168,19 @@ class IGisItem : public QTreeWidgetItem
            @brief Get name of this item.
            @return A reference to the internal string object
          */
-        virtual const QString& getName() = 0;
+        virtual const QString& getName() const = 0;
 
         /**
            @brief Get name of this item extended by the project name
            @return A string object.
         */
-        virtual QString getNameEx();
+        virtual QString getNameEx() const;
 
         /**
            @brief Get a short string with the items properties to be displayed in tool tips or similar
            @return A string object.
         */
-        virtual QString getInfo() = 0;
+        virtual QString getInfo() const = 0;
 
         /**
             @brief Edit content of item.
@@ -198,7 +198,7 @@ class IGisItem : public QTreeWidgetItem
 
            @return
          */
-        virtual const QRectF& getBoundingRect(){return boundingRect;}
+        virtual const QRectF& getBoundingRect() const {return boundingRect;}
 
         /**
            @brief Get screen option object to display and handle actions for this item.
@@ -226,13 +226,13 @@ class IGisItem : public QTreeWidgetItem
            @brief Query if this item is read only
            @return True if it is read only.
          */
-        bool isReadOnly();
+        bool isReadOnly() const;
 
         /**
            @brief Query if the item is imported and was changed
            @return True if content was changed.
          */
-        bool isTainted();
+        bool isTainted() const;
         /**
            @brief Set the read only mode.
 
@@ -255,7 +255,7 @@ class IGisItem : public QTreeWidgetItem
 
            @return True if the item has user focus. The default implementation is always false.
          */
-        virtual bool hasUserFocus(){return false;}
+        virtual bool hasUserFocus() const {return false;}
 
 
         /**
diff --git a/src/gis/IGisWidget.ui b/src/gis/IGisWidget.ui
index 3caa9e8..926ff44 100644
--- a/src/gis/IGisWidget.ui
+++ b/src/gis/IGisWidget.ui
@@ -52,14 +52,17 @@
      <property name="indentation">
       <number>14</number>
      </property>
+     <attribute name="headerDefaultSectionSize">
+      <number>40</number>
+     </attribute>
      <column>
       <property name="text">
-       <string notr="true">Name</string>
+       <string notr="true"/>
       </property>
      </column>
      <column>
       <property name="text">
-       <string>State</string>
+       <string>Name</string>
       </property>
      </column>
     </widget>
@@ -82,7 +85,7 @@
       </size>
      </property>
      <property name="indentation">
-      <number>14</number>
+      <number>10</number>
      </property>
      <column>
       <property name="text">
diff --git a/src/gis/db/CDBFolderDatabase.cpp b/src/gis/db/CDBFolderDatabase.cpp
index 23b9939..7f155fa 100644
--- a/src/gis/db/CDBFolderDatabase.cpp
+++ b/src/gis/db/CDBFolderDatabase.cpp
@@ -18,14 +18,15 @@
 
 #include "gis/db/CDBFolderDatabase.h"
 #include "gis/db/CDBFolderLostFound.h"
+#include "gis/CGisListDB.h"
 
 CDBFolderDatabase::CDBFolderDatabase(const QString& filename, const QString& name, QTreeWidget *parent)
     : IDBFolder(false, IDB::db, eTypeDatabase, 1, parent)
     , filename(filename)
 {
-    setToolTip(eColumnName, QObject::tr("All your data grouped by folders."));
-    setIcon(eColumnCheckbox, QIcon("://icons/32x32/Database.png"));
-    setText(eColumnName, name);
+    setToolTip(CGisListDB::eColumnName, QObject::tr("All your data grouped by folders."));
+    setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/Database.png"));
+    setText(CGisListDB::eColumnName, name);
 
     setupDB(filename, name);
 
diff --git a/src/gis/db/CDBFolderGroup.cpp b/src/gis/db/CDBFolderGroup.cpp
index de3e099..bffbbb6 100644
--- a/src/gis/db/CDBFolderGroup.cpp
+++ b/src/gis/db/CDBFolderGroup.cpp
@@ -17,12 +17,12 @@
 **********************************************************************************************/
 
 #include "gis/db/CDBFolderGroup.h"
+#include "gis/CGisListDB.h"
 
 CDBFolderGroup::CDBFolderGroup(QSqlDatabase& db, quint64 key, QTreeWidgetItem * parent)
     : IDBFolder(false, db, eTypeGroup, key, parent)
 {
-    setIcon(eColumnCheckbox,QIcon("://icons/32x32/PathBlue.png"));
-
+    setIcon(CGisListDB::eColumnCheckbox,QIcon("://icons/32x32/PathBlue.png"));
     setupFromDB();
 }
 
diff --git a/src/gis/db/CDBFolderLostFound.cpp b/src/gis/db/CDBFolderLostFound.cpp
index f167b01..a0950dc 100644
--- a/src/gis/db/CDBFolderLostFound.cpp
+++ b/src/gis/db/CDBFolderLostFound.cpp
@@ -19,16 +19,20 @@
 #include "gis/db/CDBFolderLostFound.h"
 #include "gis/db/CDBItem.h"
 #include "gis/db/macros.h"
+#include "gis/CGisListDB.h"
+#include "gis/CGisWidget.h"
 
 #include <QtSql>
 
 CDBFolderLostFound::CDBFolderLostFound(QSqlDatabase& db, QTreeWidgetItem *parent)
-    : IDBFolder(false, db, eTypeLostFound, 0, parent)
+    : IDBFolder(true, db, eTypeLostFound, 0, parent)
 {
-    setToolTip(eColumnName, QObject::tr("All your data grouped by folders."));    
-    setText(eColumnName, QObject::tr("Lost & Found"));
+    setToolTip(CGisListDB::eColumnName, QObject::tr("All your data grouped by folders."));
+    setupFromDB();
 
-    update();
+    setCheckState(CGisListDB::eColumnCheckbox, Qt::Unchecked);
+    CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
+    CGisWidget::self().postEventForWks(evt);
 }
 
 CDBFolderLostFound::~CDBFolderLostFound()
@@ -36,33 +40,51 @@ CDBFolderLostFound::~CDBFolderLostFound()
 
 }
 
-void CDBFolderLostFound::update()
+void CDBFolderLostFound::setupFromDB()
 {
     int cnt = 0;
     QSqlQuery query(db);
 
     qDeleteAll(takeChildren());
 
-    query.prepare("SELECT id FROM items AS t1 WHERE NOT EXISTS(SELECT * FROM folder2item WHERE child=t1.id) ORDER BY t1.type, t1.name");
-    QUERY_EXEC(return);
 
+    query.prepare("SELECT id FROM items AS t1 WHERE NOT EXISTS(SELECT * FROM folder2item WHERE child=t1.id) ORDER BY t1.type, t1.name");
+    QUERY_EXEC(return);    
     while(query.next())
     {
-        quint64 id = query.value(0).toULongLong();
+        quint64 id      = query.value(0).toULongLong();
         new CDBItem(db, id, this);
         cnt++;
     }
 
     if(cnt)
     {
-        setText(eColumnName, QObject::tr("Lost & Found (%1)").arg(cnt));
-        setIcon(eColumnCheckbox, QIcon("://icons/32x32/DeleteMultiple.png"));
+        setText(CGisListDB::eColumnName, QObject::tr("Lost & Found (%1)").arg(cnt));
+        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/DeleteMultiple.png"));
     }
     else
     {
-        setText(eColumnName, QObject::tr("Lost & Found"));
-        setIcon(eColumnCheckbox, QIcon("://icons/32x32/Empty.png"));
+        setText(CGisListDB::eColumnName, QObject::tr("Lost & Found"));
+        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/Empty.png"));
+    }
+
+    CEvtD2WUpdateLnF * evt = new CEvtD2WUpdateLnF(getId(), getDBName());
+    CGisWidget::self().postEventForWks(evt);
+
+}
+
+void CDBFolderLostFound::update(CEvtW2DAckInfo * info)
+{
+    if(info->id != 0)
+    {
+        return;
     }
+    setCheckState(CGisListDB::eColumnCheckbox, info->isLoaded ? Qt::Checked : Qt::Unchecked);
+}
+
+void CDBFolderLostFound::update()
+{
+    setupFromDB();
 }
 
 void CDBFolderLostFound::clear()
@@ -72,5 +94,23 @@ void CDBFolderLostFound::clear()
     query.prepare("DELETE FROM items WHERE id NOT IN (SELECT child from folder2item)");
     QUERY_EXEC(return);
 
-    update();
+    setupFromDB();
+}
+
+bool CDBFolderLostFound::delItem(CDBItem * item)
+{
+    QSqlQuery query(db);
+
+    if(checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
+    {
+        CEvtD2WHideItems * evt = new CEvtD2WHideItems(getId(), getDBName());
+        evt->keys << item->getKey();
+        CGisWidget::self().postEventForWks(evt);
+    }
+
+    query.prepare("DELETE FROM items WHERE id=:id AND id NOT IN (SELECT child from folder2item)");
+    query.bindValue(":id", item->getId());
+    QUERY_EXEC(return false);
+
+    return true;
 }
diff --git a/src/gis/db/CDBFolderLostFound.h b/src/gis/db/CDBFolderLostFound.h
index c97d02d..a620d04 100644
--- a/src/gis/db/CDBFolderLostFound.h
+++ b/src/gis/db/CDBFolderLostFound.h
@@ -27,9 +27,15 @@ class CDBFolderLostFound : public IDBFolder
         CDBFolderLostFound(QSqlDatabase &db, QTreeWidgetItem *parent);
         virtual ~CDBFolderLostFound();
 
+        void update(CEvtW2DAckInfo * info);
         void update();
         void expanding(){}
         void clear();
+        bool delItem(CDBItem * item);
+
+
+    protected:
+        void setupFromDB();
 };
 
 #endif //CDBFOLDERLOSTFOUND_H
diff --git a/src/gis/db/CDBFolderOther.cpp b/src/gis/db/CDBFolderOther.cpp
index 9f13fc8..ec28e91 100644
--- a/src/gis/db/CDBFolderOther.cpp
+++ b/src/gis/db/CDBFolderOther.cpp
@@ -17,13 +17,12 @@
 **********************************************************************************************/
 
 #include "gis/db/CDBFolderOther.h"
+#include "gis/CGisListDB.h"
 
 CDBFolderOther::CDBFolderOther(QSqlDatabase& db, quint64 key, QTreeWidgetItem * parent)
     : IDBFolder(true, db, eTypeOther, key, parent)
 {
-    setIcon(eColumnCheckbox,QIcon("://icons/32x32/PathOrange.png"));
-    setCheckState(0, Qt::Unchecked);
-
+    setIcon(CGisListDB::eColumnCheckbox,QIcon("://icons/32x32/PathOrange.png"));
     setupFromDB();
 }
 
diff --git a/src/gis/db/CDBFolderProject.cpp b/src/gis/db/CDBFolderProject.cpp
index e574c1f..c1c575a 100644
--- a/src/gis/db/CDBFolderProject.cpp
+++ b/src/gis/db/CDBFolderProject.cpp
@@ -17,13 +17,12 @@
 **********************************************************************************************/
 
 #include "gis/db/CDBFolderProject.h"
+#include "gis/CGisListDB.h"
 
 CDBFolderProject::CDBFolderProject(QSqlDatabase& db, quint64 key, QTreeWidgetItem * parent)
     : IDBFolder(true, db, eTypeProject, key, parent)
 {
-    setIcon(eColumnCheckbox,QIcon("://icons/32x32/PathGreen.png"));
-    isLoadable = true;
-
+    setIcon(CGisListDB::eColumnCheckbox,QIcon("://icons/32x32/PathGreen.png"));
     setupFromDB();
 }
 
diff --git a/src/gis/db/CDBItem.cpp b/src/gis/db/CDBItem.cpp
index 9852c3b..ed86a48 100644
--- a/src/gis/db/CDBItem.cpp
+++ b/src/gis/db/CDBItem.cpp
@@ -20,6 +20,7 @@
 #include "gis/db/IDBFolder.h"
 #include "gis/db/macros.h"
 #include "gis/CGisWidget.h"
+#include "gis/CGisListDB.h"
 
 #include <QtSql>
 
@@ -39,9 +40,9 @@ CDBItem::CDBItem(QSqlDatabase &db, quint64 id, IDBFolder *parent)
         type = query.value(0).toInt();
         key = query.value(1).toString();
         pixmap.loadFromData(query.value(2).toByteArray(), "PNG");
-        setIcon(0, pixmap);
-        setText(1, query.value(3).toString());
-        setToolTip(1, query.value(4).toString());
+        setIcon(CGisListDB::eColumnCheckbox, pixmap);
+        setText(CGisListDB::eColumnName, query.value(3).toString());
+        setToolTip(CGisListDB::eColumnName, query.value(4).toString());
 
     }
 }
@@ -59,7 +60,7 @@ void CDBItem::toggle()
         return;
     }
 
-    if(checkState(IDBFolder::eColumnCheckbox) == Qt::Checked)
+    if(checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
     {
         CEvtD2WShowFolder * evt1 = new CEvtD2WShowFolder(folder->getId(), folder->getDBName());
         CGisWidget::self().postEventForWks(evt1);
@@ -75,3 +76,25 @@ void CDBItem::toggle()
         CGisWidget::self().postEventForWks(evt2);
     }
 }
+
+void CDBItem::remove()
+{
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(parent());
+    if(folder == 0)
+    {
+        return;
+    }
+
+    if(checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
+    {
+        CEvtD2WHideItems * evt = new CEvtD2WHideItems(folder->getId(), folder->getDBName());
+        evt->keys << key;
+        CGisWidget::self().postEventForWks(evt);
+    }
+
+    QSqlQuery query(db);
+    query.prepare("DELETE FROM folder2item WHERE parent=:parent AND child=:child");
+    query.bindValue(":parent", folder->getId());
+    query.bindValue(":child", id);
+    QUERY_EXEC();
+}
diff --git a/src/gis/db/CDBItem.h b/src/gis/db/CDBItem.h
index 81151f0..8048941 100644
--- a/src/gis/db/CDBItem.h
+++ b/src/gis/db/CDBItem.h
@@ -30,10 +30,12 @@ class CDBItem : public QTreeWidgetItem
         CDBItem(QSqlDatabase& db, quint64 id, IDBFolder * parent);
         virtual ~CDBItem();
 
+        quint64 getId(){return id;}
         const QString& getKey(){return key;}
         void toggle();
+        void remove();
 
-    private:
+    private:        
         QSqlDatabase& db;
         quint64 id;
 
diff --git a/src/gis/db/CDBProject.cpp b/src/gis/db/CDBProject.cpp
index 05a5103..c1aae27 100644
--- a/src/gis/db/CDBProject.cpp
+++ b/src/gis/db/CDBProject.cpp
@@ -31,15 +31,16 @@
 #include <QtWidgets>
 CDBProject::CDBProject(CGisListWks * parent)
     : IGisProject(eTypeDb, "", parent)
+    , id(0)
 {
-    setIcon(0,QIcon("://icons/32x32/DBProject.png"));
+    setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/DBProject.png"));
 }
 
 CDBProject::CDBProject(const QString& dbName, quint64 id, CGisListWks *parent)
     : IGisProject(eTypeDb, dbName, parent)
     , id(id)    
 {
-    setIcon(0,QIcon("://icons/32x32/DBProject.png"));
+    setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/DBProject.png"));
     db = QSqlDatabase::database(dbName);
 
     QSqlQuery query(db);
@@ -71,8 +72,8 @@ CDBProject::CDBProject(const QString& dbName, quint64 id, CGisListWks *parent)
         filename = dbName;
     }
 
-    setText(0, name);
-    setToolTip(0, getInfo());
+    setText(CGisListWks::eColumnName, name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
     valid = true;
 }
 
@@ -264,8 +265,9 @@ void CDBProject::save()
         query.bindValue(":id", getId());
         QUERY_EXEC(throw -1);
 
+        info->updateLostFound = true;
         CGisWidget::self().postEventForDb(info);
-        setText(1,"");
+        setText(CGisListWks::eColumnDecoration,"");
     }
     catch(int n)
     {
@@ -275,14 +277,14 @@ void CDBProject::save()
         }
         else
         {
+            info->updateLostFound = true;
             CGisWidget::self().postEventForDb(info);
         }
     }
 }
 
 void CDBProject::showItems(CEvtD2WShowItems * evt)
-{
-
+{    
     foreach(const evt_item_t& item, evt->items)
     {
         switch(item.type)
@@ -303,7 +305,7 @@ void CDBProject::showItems(CEvtD2WShowItems * evt)
         }
     }
 
-    setToolTip(0, getInfo());
+    setToolTip(CGisListWks::eColumnName, getInfo());
     postStatus();
 }
 
@@ -319,7 +321,7 @@ void CDBProject::hideItems(CEvtD2WHideItems * evt)
         key.item = k;
         delItemByKey(key, last);
     }
-    setToolTip(0, getInfo());
+    setToolTip(CGisListWks::eColumnName, getInfo());
     postStatus();
 }
 
diff --git a/src/gis/db/CDBProject.h b/src/gis/db/CDBProject.h
index 70eda75..79aa1c7 100644
--- a/src/gis/db/CDBProject.h
+++ b/src/gis/db/CDBProject.h
@@ -74,7 +74,7 @@ class CDBProject : public IGisProject
         void showItems(CEvtD2WShowItems * evt);
         void hideItems(CEvtD2WHideItems * evt);
 
-    private:
+    protected:
         QSqlDatabase db;
         quint64 id;
 };
diff --git a/src/gis/db/CLostFoundProject.cpp b/src/gis/db/CLostFoundProject.cpp
new file mode 100644
index 0000000..3f4860b
--- /dev/null
+++ b/src/gis/db/CLostFoundProject.cpp
@@ -0,0 +1,83 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+**********************************************************************************************/
+
+#include "gis/db/CLostFoundProject.h"
+#include "gis/CGisListWks.h"
+#include "gis/db/macros.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+
+#include <QtWidgets>
+#include <QtSql>
+
+
+CLostFoundProject::CLostFoundProject(const QString &dbName, CGisListWks * parent)
+    : CDBProject(parent)
+{
+    type    = eTypeLostFound;
+    db      = QSqlDatabase::database(dbName);
+    setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/DeleteMultiple.png"));
+
+    filename        = dbName;
+    metadata.name   = QObject::tr("Lost & Found");
+
+    setupName(dbName);
+
+    valid = true;
+}
+
+CLostFoundProject::~CLostFoundProject()
+{
+
+}
+
+void CLostFoundProject::updateFromDb()
+{
+    qDeleteAll(takeChildren());
+
+    QSqlQuery query(db);
+    query.prepare("SELECT id, type FROM items AS t1 WHERE NOT EXISTS(SELECT * FROM folder2item WHERE child=t1.id) ORDER BY t1.type, t1.name");
+    QUERY_EXEC(return);
+
+    while(query.next())
+    {
+        quint64 id      = query.value(0).toULongLong();
+        quint32 type    = query.value(1).toUInt();
+
+        switch(type)
+        {
+            case IGisItem::eTypeWpt:
+                new CGisItemWpt(id, db, this);
+                break;
+            case IGisItem::eTypeTrk:
+                new CGisItemTrk(id, db, this);
+                break;
+            case IGisItem::eTypeRte:
+                new CGisItemRte(id, db, this);
+                break;
+            case IGisItem::eTypeOvl:
+                new CGisItemOvlArea(id, db, this);
+                break;
+            default:;
+        }
+    }
+
+    setText(CGisListWks::eColumnDecoration,"");
+}
diff --git a/src/gis/db/CDBFolderLostFound.h b/src/gis/db/CLostFoundProject.h
similarity index 72%
copy from src/gis/db/CDBFolderLostFound.h
copy to src/gis/db/CLostFoundProject.h
index c97d02d..abd998a 100644
--- a/src/gis/db/CDBFolderLostFound.h
+++ b/src/gis/db/CLostFoundProject.h
@@ -16,21 +16,24 @@
 
 **********************************************************************************************/
 
-#ifndef CDBFOLDERLOSTFOUND_H
-#define CDBFOLDERLOSTFOUND_H
+#ifndef CLOSTFOUNDPROJECT_H
+#define CLOSTFOUNDPROJECT_H
 
-#include "gis/db/IDBFolder.h"
+#include "gis/db/CDBProject.h"
+#include <QSqlDatabase>
 
-class CDBFolderLostFound : public IDBFolder
+class CLostFoundProject : public CDBProject
 {
     public:
-        CDBFolderLostFound(QSqlDatabase &db, QTreeWidgetItem *parent);
-        virtual ~CDBFolderLostFound();
+        CLostFoundProject(const QString &dbName, CGisListWks * parent);
+
+        virtual ~CLostFoundProject();
+
+        void save(){}
+
+        void updateFromDb();
 
-        void update();
-        void expanding(){}
-        void clear();
 };
 
-#endif //CDBFOLDERLOSTFOUND_H
+#endif //CLOSTFOUNDPROJECT_H
 
diff --git a/src/gis/db/IDBFolder.cpp b/src/gis/db/IDBFolder.cpp
index 8765cc4..db36df7 100644
--- a/src/gis/db/IDBFolder.cpp
+++ b/src/gis/db/IDBFolder.cpp
@@ -23,6 +23,7 @@
 #include "gis/db/CDBFolderOther.h"
 #include "gis/db/CDBItem.h"
 #include "gis/db/CDBFolderDatabase.h"
+#include "gis/CGisListDB.h"
 #include "gis/IGisItem.h"
 #include "gis/CGisWidget.h"
 
@@ -60,7 +61,7 @@ bool IDBFolder::operator<(const QTreeWidgetItem &other) const
     }
 
 
-    return text(eColumnName) < folder->text(eColumnName);
+    return text(CGisListDB::eColumnName) < folder->text(CGisListDB::eColumnName);
 }
 
 IDBFolder * IDBFolder::createFolderByType(QSqlDatabase& db, int type, quint64 id, QTreeWidgetItem * parent)
@@ -150,7 +151,7 @@ void IDBFolder::update(CEvtW2DAckInfo * info)
         return;
     }
 
-    setCheckState(eColumnCheckbox, info->isLoaded ? Qt::Checked : Qt::Unchecked);
+    setCheckState(CGisListDB::eColumnCheckbox, info->isLoaded ? Qt::Checked : Qt::Unchecked);
 
     QSqlQuery query(db);
     // update text and tooltip
@@ -159,8 +160,8 @@ void IDBFolder::update(CEvtW2DAckInfo * info)
     QUERY_EXEC(return);
     query.next();
 
-    setText(eColumnName, query.value(0).toString());
-    setToolTip(eColumnName, query.value(1).toString());
+    setText(CGisListDB::eColumnName, query.value(0).toString());
+    setToolTip(CGisListDB::eColumnName, query.value(1).toString());
 
     // count folders linked to this folder
     query.prepare("SELECT COUNT() FROM folder2folder WHERE parent=:id");
@@ -193,20 +194,25 @@ void IDBFolder::update(CEvtW2DAckInfo * info)
         qDeleteAll(takeChildren());
         addChildren(info->keysChildren);        
     }
-
-
 }
 
 void IDBFolder::toggle()
 {
-    if(checkState(IDBFolder::eColumnCheckbox) == Qt::Checked)
+    if(checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
     {
         CEvtD2WShowFolder * evt1 = new CEvtD2WShowFolder(getId(), getDBName());
         CGisWidget::self().postEventForWks(evt1);
 
         QSqlQuery query(db);
-        query.prepare("SELECT t1.child, t2.type FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
-        query.bindValue(":id", getId());
+        if(getId() == 0)
+        {
+            query.prepare("SELECT id, type FROM items AS t1 WHERE NOT EXISTS(SELECT * FROM folder2item WHERE child=t1.id) ORDER BY t1.type, t1.name");
+        }
+        else
+        {
+            query.prepare("SELECT t1.child, t2.type FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
+            query.bindValue(":id", getId());
+        }
         QUERY_EXEC(return);
 
         CEvtD2WShowItems * evt2 = new CEvtD2WShowItems(getId(), getDBName());
@@ -252,8 +258,8 @@ void IDBFolder::setupFromDB()
     query.next();
 
     key = query.value(0).toString();
-    setText(eColumnName, query.value(1).toString());
-    setToolTip(eColumnName, query.value(2).toString());
+    setText(CGisListDB::eColumnName, query.value(1).toString());
+    setToolTip(CGisListDB::eColumnName, query.value(2).toString());
 
     query.prepare("SELECT EXISTS(SELECT 1 FROM folder2folder WHERE parent=:id LIMIT 1)");
     query.bindValue(":id", id);
@@ -278,7 +284,7 @@ void IDBFolder::setupFromDB()
 
     if(isLoadable)
     {
-        setCheckState(eColumnCheckbox, Qt::Unchecked);
+        setCheckState(CGisListDB::eColumnCheckbox, Qt::Unchecked);
         CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
         CGisWidget::self().postEventForWks(evt);
     }
@@ -310,7 +316,7 @@ void IDBFolder::addChildren(const QSet<QString>& activeChildren)
     {
         quint64 idChild = query.value(0).toULongLong();
         CDBItem * item = new CDBItem(db, idChild, this);
-        item->setCheckState(eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
     }
 
     // routes 3rd
@@ -322,7 +328,7 @@ void IDBFolder::addChildren(const QSet<QString>& activeChildren)
     {
         quint64 idChild = query.value(0).toULongLong();
         CDBItem * item = new CDBItem(db, idChild, this);
-        item->setCheckState(eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
     }
 
     //waypoints 4th
@@ -334,7 +340,7 @@ void IDBFolder::addChildren(const QSet<QString>& activeChildren)
     {
         quint64 idChild = query.value(0).toULongLong();
         CDBItem * item = new CDBItem(db, idChild, this);
-        item->setCheckState(eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
     }
 
     // overlays 5th
@@ -346,7 +352,7 @@ void IDBFolder::addChildren(const QSet<QString>& activeChildren)
     {
         quint64 idChild = query.value(0).toULongLong();
         CDBItem * item = new CDBItem(db, idChild, this);
-        item->setCheckState(eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
     }
 }
 
diff --git a/src/gis/db/IDBFolder.h b/src/gis/db/IDBFolder.h
index 5a7783c..c0c1138 100644
--- a/src/gis/db/IDBFolder.h
+++ b/src/gis/db/IDBFolder.h
@@ -25,6 +25,7 @@
 class QSqlDatabase;
 class CEvtW2DAckInfo;
 class CDBFolderDatabase;
+class CDBItem;
 
 class IDBFolder : public QTreeWidgetItem
 {
@@ -38,12 +39,6 @@ class IDBFolder : public QTreeWidgetItem
             ,eTypeOther = 5
         };
 
-        enum column_e
-        {
-             eColumnCheckbox = 0
-            ,eColumnName = 1
-        };
-
         IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidgetItem * parent);
         IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidget * parent);
         virtual ~IDBFolder();
@@ -63,7 +58,7 @@ class IDBFolder : public QTreeWidgetItem
         bool operator<(const QTreeWidgetItem &other) const;
 
     protected:        
-        void setupFromDB();
+        virtual void setupFromDB();
         virtual void addChildren(const QSet<QString> &activeChildren);
         virtual void remove(quint64 idParent, quint64 idFolder);
 
diff --git a/src/gis/gpx/CGpxProject.cpp b/src/gis/gpx/CGpxProject.cpp
index 0b264f9..00d830b 100644
--- a/src/gis/gpx/CGpxProject.cpp
+++ b/src/gis/gpx/CGpxProject.cpp
@@ -33,7 +33,7 @@
 CGpxProject::CGpxProject(const QString &filename, CGisListWks *parent)
     : IGisProject(eTypeGpx, filename, parent)
 {               
-    setIcon(0,QIcon("://icons/32x32/GpxProject.png"));
+    setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/GpxProject.png"));
 
     // cerate file instance
     QFile file(filename);
@@ -43,7 +43,7 @@ CGpxProject::CGpxProject(const QString &filename, CGisListWks *parent)
     {
         IGisProject::filename.clear();
         setupName(filename);
-        setToolTip(0, getInfo());
+        setToolTip(CGisListWks::eColumnName, getInfo());
         valid = true;
         return;
     }
@@ -120,7 +120,7 @@ CGpxProject::CGpxProject(const QString &filename, CGisListWks *parent)
     }
 
     setupName(QFileInfo(filename).baseName().replace("_", " "));
-    setToolTip(0, getInfo());
+    setToolTip(CGisListWks::eColumnName, getInfo());
     valid = true;
 }
 
diff --git a/src/gis/ovl/CGisItemOvlArea.cpp b/src/gis/ovl/CGisItemOvlArea.cpp
index a2ef687..5ce8d3d 100644
--- a/src/gis/ovl/CGisItemOvlArea.cpp
+++ b/src/gis/ovl/CGisItemOvlArea.cpp
@@ -21,6 +21,7 @@
 #include "gis/ovl/CDetailsOvlArea.h"
 #include "gis/prj/IGisProject.h"
 #include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
 #include "GeoMath.h"
 
 #include <QtWidgets>
@@ -130,13 +131,21 @@ CGisItemOvlArea::CGisItemOvlArea(const QPolygonF& line, const QString &name, IGi
     updateDecoration(eMarkChanged, eMarkNone);
 }
 
-CGisItemOvlArea::CGisItemOvlArea(const CGisItemOvlArea& parentArea, IGisProject * project, int idx)
+CGisItemOvlArea::CGisItemOvlArea(const CGisItemOvlArea& parentArea, IGisProject * project, int idx, bool clone)
     : IGisItem(project, eTypeOvl, idx)
     , penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
     , penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
 {
     *this = parentArea;
     key.project = project->getKey();
+
+    if(clone)
+    {
+        area.name += QObject::tr("_Clone");
+        key.item.clear();
+    }
+
+
     setupHistory();
     updateDecoration(eMarkChanged, eMarkNone);
 }
@@ -386,12 +395,12 @@ IScrOpt * CGisItemOvlArea::getScreenOptions(const QPoint& origin, IMouse * mouse
     return scrOpt;
 }
 
-const QString& CGisItemOvlArea::getName()
+const QString& CGisItemOvlArea::getName() const
 {
     return area.name;
 }
 
-QString CGisItemOvlArea::getInfo()
+QString CGisItemOvlArea::getInfo() const
 {
     QString unit, val;
     QString str = "<div style='font-weight: bold;'>" + getName() + "</div>";
@@ -455,7 +464,7 @@ void CGisItemOvlArea::setDataFromPolyline(const QPolygonF& line)
 
 void CGisItemOvlArea::setName(const QString& str)
 {
-    setText(0, str);
+    setText(CGisListWks::eColumnName, str);
     area.name = str;
     changed(QObject::tr("Changed name."), "://icons/48x48/EditText.png");
 }
@@ -544,5 +553,5 @@ void CGisItemOvlArea::setIcon(const QString& c)
     mask.setMask( icon.createMaskFromColor( Qt::transparent ) );
     icon = mask.scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
 
-    QTreeWidgetItem::setIcon(0,icon);
+    QTreeWidgetItem::setIcon(CGisListWks::eColumnName,icon);
 }
diff --git a/src/gis/ovl/CGisItemOvlArea.h b/src/gis/ovl/CGisItemOvlArea.h
index f2839b5..c891d8c 100644
--- a/src/gis/ovl/CGisItemOvlArea.h
+++ b/src/gis/ovl/CGisItemOvlArea.h
@@ -37,7 +37,7 @@ class CGisItemOvlArea : public IGisItem, public IGisLine
 {
     public:
         CGisItemOvlArea(const QPolygonF& line, const QString &name, IGisProject * project, int idx);
-        CGisItemOvlArea(const CGisItemOvlArea &parentArea, IGisProject * project, int idx);
+        CGisItemOvlArea(const CGisItemOvlArea &parentArea, IGisProject * project, int idx, bool clone);
         CGisItemOvlArea(const QDomNode &xml, IGisProject *project);
         CGisItemOvlArea(const history_t& hist, IGisProject * project);
         CGisItemOvlArea(quint64 id, QSqlDatabase& db, IGisProject * project);
@@ -47,9 +47,9 @@ class CGisItemOvlArea : public IGisItem, public IGisLine
         QDataStream& operator<<(QDataStream& stream);
         QDataStream& operator>>(QDataStream& stream);
 
-        const QString& getName();
+        const QString& getName() const;
         int getColorIdx(){return colorIdx;}
-        QString getInfo();
+        QString getInfo() const;
         void getPolylineFromData(QPolygonF& line);
         const QString& getComment(){return area.cmt;}
         const QString& getDescription(){return area.desc;}
diff --git a/src/gis/ovl/CScrOptOvlArea.cpp b/src/gis/ovl/CScrOptOvlArea.cpp
index dd309f2..1405f95 100644
--- a/src/gis/ovl/CScrOptOvlArea.cpp
+++ b/src/gis/ovl/CScrOptOvlArea.cpp
@@ -42,6 +42,7 @@ CScrOptOvlArea::CScrOptOvlArea(CGisItemOvlArea *area, const QPoint &point, IMous
 
     connect(toolEditDetails, SIGNAL(clicked()), this, SLOT(slotEditDetails()));
     connect(toolDelete, SIGNAL(clicked()), this, SLOT(slotDelete()));
+    connect(toolCopy, SIGNAL(clicked()), this, SLOT(slotCopy()));
     connect(toolEdit, SIGNAL(clicked()), this, SLOT(slotEdit()));
 }
 
@@ -56,6 +57,13 @@ void CScrOptOvlArea::slotEditDetails()
     deleteLater();
 }
 
+void CScrOptOvlArea::slotCopy()
+{
+    CGisWidget::self().copyItemByKey(key);
+    deleteLater();
+}
+
+
 void CScrOptOvlArea::slotDelete()
 {
     CGisWidget::self().delItemByKey(key);
diff --git a/src/gis/ovl/CScrOptOvlArea.h b/src/gis/ovl/CScrOptOvlArea.h
index 12a740d..883d7c2 100644
--- a/src/gis/ovl/CScrOptOvlArea.h
+++ b/src/gis/ovl/CScrOptOvlArea.h
@@ -38,6 +38,7 @@ class CScrOptOvlArea : public IScrOpt, private Ui::IScrOptOvlArea
 
     private slots:
         void slotEditDetails();
+        void slotCopy();
         void slotDelete();
         void slotEdit();
 
diff --git a/src/gis/ovl/IScrOptOvlArea.ui b/src/gis/ovl/IScrOptOvlArea.ui
index c2e9c59..9a9fddf 100644
--- a/src/gis/ovl/IScrOptOvlArea.ui
+++ b/src/gis/ovl/IScrOptOvlArea.ui
@@ -46,6 +46,20 @@
       </widget>
      </item>
      <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy area into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
       <widget class="QToolButton" name="toolDelete">
        <property name="text">
         <string>...</string>
diff --git a/src/gis/prj/IGisProject.cpp b/src/gis/prj/IGisProject.cpp
index 51dee1d..fa9624e 100644
--- a/src/gis/prj/IGisProject.cpp
+++ b/src/gis/prj/IGisProject.cpp
@@ -19,8 +19,13 @@
 #include "gis/prj/IGisProject.h"
 #include "gis/prj/CDetailsPrj.h"
 #include "gis/IGisItem.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/ovl/CGisItemOvlArea.h"
 #include "gis/CGisListWks.h"
 #include "gis/CGisDraw.h"
+#include "helpers/CSelectCopyAction.h"
 #include "CMainWindow.h"
 
 
@@ -74,7 +79,7 @@ void IGisProject::edit()
 void IGisProject::setName(const QString& str)
 {
     metadata.name = str;
-    setText(0, str);
+    setText(CGisListWks::eColumnName, str);
     changed();
 }
 
@@ -98,7 +103,7 @@ void IGisProject::setLinks(const QList<IGisItem::link_t>& links)
 
 void IGisProject::changed()
 {
-    setText(1,"*");
+    setText(CGisListWks::eColumnDecoration,"*");
 }
 
 
@@ -106,19 +111,19 @@ void IGisProject::setupName(const QString &defaultName)
 {
     if(metadata.name.isEmpty())
     {
-        setText(0, defaultName);
+        setText(CGisListWks::eColumnName, defaultName);
         metadata.name = defaultName;
     }
     else
     {
-        setText(0,metadata.name);
+        setText(CGisListWks::eColumnName,metadata.name);
     }
 
 }
 
 void IGisProject::markAsSaved()
 {
-    setText(1,"");
+    setText(CGisListWks::eColumnDecoration,"");
     for(int i = 0; i < childCount(); i++)
     {
 
@@ -131,9 +136,9 @@ void IGisProject::markAsSaved()
     }
 }
 
-QString IGisProject::getInfo()
+QString IGisProject::getInfo() const
 {
-    QString str = metadata.name.isEmpty() ? text(0) : metadata.name;    
+    QString str = metadata.name.isEmpty() ? text(CGisListWks::eColumnName) : metadata.name;
     str = "<div style='font-weight: bold;'>" + str + "</div>";
 
     if(metadata.time.isValid())
@@ -247,7 +252,7 @@ bool IGisProject::delItemByKey(const IGisItem::key_t& key, QMessageBox::Standard
         {
             if(last != QMessageBox::YesToAll)
             {
-                QString msg = QObject::tr("Are you sure you want to delete '%1' from project '%2'?").arg(item->getName()).arg(text(0));
+                QString msg = QObject::tr("Are you sure you want to delete '%1' from project '%2'?").arg(item->getName()).arg(text(CGisListWks::eColumnName));
                 last = QMessageBox::question(0, QObject::tr("Delete..."), msg, QMessageBox::YesToAll|QMessageBox::Cancel|QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
                 if((last == QMessageBox::No) || (last == QMessageBox::Cancel))
                 {
@@ -290,6 +295,97 @@ void IGisProject::editItemByKey(const IGisItem::key_t& key)
     }
 }
 
+
+void IGisProject::insertCopyOfItem(IGisItem * item, int off, int& lastResult)
+{
+    bool clone = false;
+    IGisItem::key_t key = item->getKey();
+    key.project = getKey();
+
+    IGisItem * item2 = getItemByKey(key);
+    if(item2 != 0)
+    {
+
+        int result = lastResult;
+        if(lastResult == CSelectCopyAction::eResultNone)
+        {
+            CSelectCopyAction dlg(item, item2, 0);
+            dlg.exec();
+            result = dlg.getResult();
+            if(dlg.allOthersToo())
+            {
+                lastResult = result;
+            }
+        }
+
+        if(result == CSelectCopyAction::eResultSkip)
+        {
+            return;
+        }
+        if(result == CSelectCopyAction::eResultNone)
+        {
+            return;
+        }
+        if(result == CSelectCopyAction::eResultClone)
+        {
+            clone = true;
+        }
+        else
+        {
+            // replace item2 with item
+            if(item != item2)
+            {
+                delete item2;
+            }
+            else
+            {
+                // replacing an item with itself does not make sense
+                return;
+            }
+        }
+    }
+
+    switch(item->type())
+    {
+    case IGisItem::eTypeTrk:
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+        if(trk != 0)
+        {
+            new CGisItemTrk(*trk, this, off, clone);
+        }
+        break;
+    }
+    case IGisItem::eTypeWpt:
+    {
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
+        if(wpt != 0)
+        {
+            new CGisItemWpt(*wpt, this, off, clone);
+        }
+        break;
+    }
+    case IGisItem::eTypeRte:
+    {
+        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(item);
+        if(rte != 0)
+        {
+            new CGisItemRte(*rte, this, off, clone);
+        }
+        break;
+    }
+    case IGisItem::eTypeOvl:
+    {
+        CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(item);
+        if(area != 0)
+        {
+            new CGisItemOvlArea(*area, this, off, clone);
+        }
+        break;
+    }
+    }
+}
+
 void IGisProject::drawItem(QPainter& p, const QRectF& viewport, QList<QRectF>& blockedAreas, QSet<QString> &seenKeys, CGisDraw * gis)
 {
     for(int i = 0; i < childCount(); i++)
diff --git a/src/gis/prj/IGisProject.h b/src/gis/prj/IGisProject.h
index 124e681..d38a4e6 100644
--- a/src/gis/prj/IGisProject.h
+++ b/src/gis/prj/IGisProject.h
@@ -39,6 +39,7 @@ class IGisProject : public QTreeWidgetItem
             , eTypeQms
             , eTypeGpx
             , eTypeDb
+            , eTypeLostFound
         };
 
         struct person_t
@@ -77,24 +78,30 @@ class IGisProject : public QTreeWidgetItem
 
         void edit();
 
+        /**
+           @brief Save the project using it's native format.
+         */
         virtual void save() = 0;
+        /**
+           @brief Save the project selecting one of the available formats.
+        */
         virtual void saveAs() = 0;
 
         virtual void setFilename(const QString& fn){filename = fn;}
-        virtual QString getFilename(){return filename;}
+        virtual QString getFilename() const {return filename;}
 
-        type_e getType(){return type;}
+        type_e getType() const {return type;}
 
         /**
            @brief Get unique project key.
            @return A MD5 hash string
          */
         const QString& getKey(){genKey(); return key;}
-        const QString& getName(){return metadata.name;}
-        const QDateTime& getTime(){return metadata.time;}
-        const QString& getKeywords(){return metadata.keywords;}
-        const QString& getDescription(){return metadata.desc;}
-        const QList<IGisItem::link_t>& getLinks(){return metadata.links;}
+        const QString& getName() const {return metadata.name;}
+        const QDateTime& getTime() const {return metadata.time;}
+        const QString& getKeywords() const {return metadata.keywords;}
+        const QString& getDescription() const {return metadata.desc;}
+        const QList<IGisItem::link_t>& getLinks() const {return metadata.links;}
 
 
         void setName(const QString& str);
@@ -106,7 +113,7 @@ class IGisProject : public QTreeWidgetItem
            @brief Get a short metadata summary
            @return Informational string.
          */
-        virtual QString getInfo();
+        virtual QString getInfo() const;
         /**
            @brief Get a temporary pointer to the item with matching key
            @param key
@@ -138,13 +145,27 @@ class IGisProject : public QTreeWidgetItem
         void editItemByKey(const IGisItem::key_t &key);
 
         /**
+           @brief Add a copy if the gven item to the project
+
+           Befor the item is inserted the method will use it's key to find a duplicat item.
+           If there is an item with the same item key a copy option dialog is shown. Depending
+           the result the action is performed or aborted. The result will be copied into
+           lastResult to repeat the same decision on subsequent items.
+
+           @param item          pointer to item
+           @param off           the offset into the tree widget, -1 for none
+           @param lastResult    a reference to hold the last result of the copy option dialog
+        */
+        void insertCopyOfItem(IGisItem *item, int off, int &lastResult);
+
+        /**
            @brief Check if the project was initialized correctly.
 
            For example a if a GPX file does not load correctly the project is invalid.
 
            @return True if project is valid
          */
-        bool  isValid(){return valid;}
+        bool  isValid() const {return valid;}
 
         void drawItem(QPainter& p, const QRectF& viewport, QList<QRectF>& blockedAreas, QSet<QString> &seenKeys, CGisDraw * gis);
         void drawLabel(QPainter& p, const QRectF& viewport, QList<QRectF>& blockedAreas, QSet<QString> &seenKeys, const QFontMetricsF& fm, CGisDraw * gis);
diff --git a/src/gis/qms/CQmsProject.cpp b/src/gis/qms/CQmsProject.cpp
index be24004..11bc2b0 100644
--- a/src/gis/qms/CQmsProject.cpp
+++ b/src/gis/qms/CQmsProject.cpp
@@ -19,6 +19,7 @@
 #include "gis/qms/CQmsProject.h"
 #include "gis/gpx/CGpxProject.h"
 #include "helpers/CSettings.h"
+#include "gis/CGisListWks.h"
 
 
 #include <QtWidgets>
@@ -27,7 +28,7 @@
 CQmsProject::CQmsProject(const QString &filename, CGisListWks *parent)
     : IGisProject(eTypeQms, filename, parent)
 {   
-    setIcon(0,QIcon("://icons/32x32/QmsProject.png"));
+    setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/QmsProject.png"));
 
     // cerate file instance
     QFile file(filename);
@@ -37,7 +38,7 @@ CQmsProject::CQmsProject(const QString &filename, CGisListWks *parent)
     {
         IGisProject::filename.clear();
         setupName(filename);
-        setToolTip(0, getInfo());
+        setToolTip(CGisListWks::eColumnName, getInfo());
         valid = true;
         return;
     }
@@ -57,7 +58,7 @@ CQmsProject::CQmsProject(const QString &filename, CGisListWks *parent)
     markAsSaved();
 
     setupName(QFileInfo(filename).baseName().replace("_", " "));
-    setToolTip(0, getInfo());
+    setToolTip(CGisListWks::eColumnName, getInfo());
     valid = true;
 }
 
diff --git a/src/gis/qms/serialization.cpp b/src/gis/qms/serialization.cpp
index 3e1bd29..b412780 100644
--- a/src/gis/qms/serialization.cpp
+++ b/src/gis/qms/serialization.cpp
@@ -22,6 +22,7 @@
 #include "gis/wpt/CGisItemWpt.h"
 #include "gis/rte/CGisItemRte.h"
 #include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/CGisListWks.h"
 
 #include <QtWidgets>
 
@@ -434,8 +435,8 @@ QDataStream& CGisItemTrk::operator<<(QDataStream& stream)
 
     deriveSecondaryData();
     setColor(trk.color);
-    setText(0, trk.name);
-    setToolTip(0, getInfo());
+    setText(CGisListWks::eColumnName, trk.name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
 
     return stream;
 }
@@ -472,8 +473,8 @@ QDataStream& CGisItemWpt::operator<<(QDataStream& stream)
     in >> images;
 
     setIcon();
-    setText(0, wpt.name);
-    setToolTip(0, getInfo());
+    setText(CGisListWks::eColumnName, wpt.name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
 
     return stream;
 }
@@ -536,8 +537,8 @@ QDataStream& CGisItemRte::operator<<(QDataStream& stream)
 
     setSymbol();
     deriveSecondaryData();
-    setText(0, rte.name);
-    setToolTip(0, getInfo());
+    setText(CGisListWks::eColumnName, rte.name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
 
     return stream;
 }
@@ -610,8 +611,8 @@ QDataStream& CGisItemOvlArea::operator<<(QDataStream& stream)
 
     deriveSecondaryData();
     setColor(str2color(area.color));
-    setText(0, area.name);
-    setToolTip(0, getInfo());
+    setText(CGisListWks::eColumnName, area.name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
 
     return stream;
 }
diff --git a/src/gis/rte/CGisItemRte.cpp b/src/gis/rte/CGisItemRte.cpp
index eea29cd..b6be611 100644
--- a/src/gis/rte/CGisItemRte.cpp
+++ b/src/gis/rte/CGisItemRte.cpp
@@ -21,6 +21,7 @@
 #include "gis/prj/IGisProject.h"
 #include "gis/WptIcons.h"
 #include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
 #include "canvas/CCanvas.h"
 
 #include <QtWidgets>
@@ -31,12 +32,19 @@ const QPen CGisItemRte::penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap,
 IGisItem::key_t CGisItemRte::keyUserFocus;
 
 /// used to create a copy of route with new parent
-CGisItemRte::CGisItemRte(const CGisItemRte& parentRte, IGisProject * project, int idx)
+CGisItemRte::CGisItemRte(const CGisItemRte& parentRte, IGisProject * project, int idx, bool clone)
     : IGisItem(project, eTypeRte, idx)
     , penForeground(Qt::magenta, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
 {
     *this = parentRte;
     key.project = project->getKey();
+
+    if(clone)
+    {
+        rte.name += QObject::tr("_Clone");
+        key.item.clear();
+    }
+
     setupHistory();
     updateDecoration(eMarkChanged, eMarkNone);
 }
@@ -99,11 +107,11 @@ void CGisItemRte::deriveSecondaryData()
 void CGisItemRte::setSymbol()
 {
     icon = QPixmap("://icons/32x32/Route.png").scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
-    setIcon(0, icon);
+    setIcon(CGisListWks::eColumnName, icon);
 }
 
 
-QString CGisItemRte::getInfo()
+QString CGisItemRte::getInfo() const
 {
     QString str = getName();
 
diff --git a/src/gis/rte/CGisItemRte.h b/src/gis/rte/CGisItemRte.h
index 7b2784e..6a8b756 100644
--- a/src/gis/rte/CGisItemRte.h
+++ b/src/gis/rte/CGisItemRte.h
@@ -38,7 +38,7 @@ class CGisItemRte : public IGisItem, public IGisLine
         };
 
         CGisItemRte(const QDomNode &xml, IGisProject *parent);
-        CGisItemRte(const CGisItemRte& parentRte, IGisProject *project, int idx);
+        CGisItemRte(const CGisItemRte& parentRte, IGisProject *project, int idx, bool clone);
         CGisItemRte(const history_t& hist, IGisProject * project);
         CGisItemRte(quint64 id, QSqlDatabase& db, IGisProject * project);
         CGisItemRte(const CQlgtRoute& rte1);
@@ -47,8 +47,8 @@ class CGisItemRte : public IGisItem, public IGisLine
         QDataStream& operator<<(QDataStream& stream);
         QDataStream& operator>>(QDataStream& stream);
 
-        const QString& getName(){return rte.name;}
-        QString getInfo();
+        const QString& getName() const {return rte.name;}
+        QString getInfo() const;
         IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse);
         QPointF getPointCloseBy(const QPoint& screenPos);
         void drawItem(QPainter& p, const QRectF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis);
diff --git a/src/gis/rte/CScrOptRte.cpp b/src/gis/rte/CScrOptRte.cpp
index 1b64362..91578d9 100644
--- a/src/gis/rte/CScrOptRte.cpp
+++ b/src/gis/rte/CScrOptRte.cpp
@@ -40,6 +40,7 @@ CScrOptRte::CScrOptRte(CGisItemRte *rte, const QPoint& point, IMouse *parent)
     show();
 
     connect(toolDelete, SIGNAL(clicked()), this, SLOT(slotDelete()));
+    connect(toolCopy, SIGNAL(clicked()), this, SLOT(slotCopy()));
 }
 
 CScrOptRte::~CScrOptRte()
@@ -52,6 +53,11 @@ void CScrOptRte::slotDelete()
     CGisWidget::self().delItemByKey(key);
 }
 
+void CScrOptRte::slotCopy()
+{
+    CGisWidget::self().copyItemByKey(key);
+    deleteLater();
+}
 
 void CScrOptRte::draw(QPainter& p)
 {
diff --git a/src/gis/rte/CScrOptRte.h b/src/gis/rte/CScrOptRte.h
index 9683efe..3f9bb6f 100644
--- a/src/gis/rte/CScrOptRte.h
+++ b/src/gis/rte/CScrOptRte.h
@@ -39,6 +39,7 @@ class CScrOptRte : public IScrOpt, private Ui::IScrOptRte
 
     private slots:
         void slotDelete();
+        void slotCopy();
 
     private:
         IGisItem::key_t key;
diff --git a/src/gis/rte/IScrOptRte.ui b/src/gis/rte/IScrOptRte.ui
index 7cd0001..12892f5 100644
--- a/src/gis/rte/IScrOptRte.ui
+++ b/src/gis/rte/IScrOptRte.ui
@@ -37,6 +37,20 @@
       </widget>
      </item>
      <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy route into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
       <widget class="QToolButton" name="toolDelete">
        <property name="toolTip">
         <string><html><head/><body><p>Delete</p></body></html></string>
diff --git a/src/gis/search/CSearchGoogle.cpp b/src/gis/search/CSearchGoogle.cpp
index f7548f4..46e1be3 100644
--- a/src/gis/search/CSearchGoogle.cpp
+++ b/src/gis/search/CSearchGoogle.cpp
@@ -45,12 +45,12 @@ CSearchGoogle::CSearchGoogle(CGisListWks * parent)
     actSymbol->setObjectName(symName);
     connect(actSymbol, SIGNAL(triggered()), this, SLOT(slotChangeSymbol()));
 
-    parent->setItemWidget(this, 0, edit);
+    parent->setItemWidget(this, CGisListWks::eColumnName, edit);
 
     connect(edit, SIGNAL(returnPressed()), this, SLOT(slotStartSearch()));
     connect(&networkAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(slotRequestFinished(QNetworkReply*)));
 
-    setIcon(1, QIcon("://icons/32x32/SearchGoogle.png"));
+    setIcon(CGisListWks::eColumnDecoration, QIcon("://icons/32x32/SearchGoogle.png"));
 }
 
 CSearchGoogle::~CSearchGoogle()
@@ -119,8 +119,8 @@ void CSearchGoogle::slotRequestFinished(QNetworkReply* reply)
     {
         status = tr("Unknown response");
         QTreeWidgetItem * item = new QTreeWidgetItem(this);
-        item->setText(0, status);
-        item->setIcon(0,QIcon("://icons/32x32/Error.png"));
+        item->setText(CGisListWks::eColumnName, status);
+        item->setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/Error.png"));
         return;
     }
 
@@ -130,8 +130,8 @@ void CSearchGoogle::slotRequestFinished(QNetworkReply* reply)
         status  = tr("Error: ");
         status += root.namedItem("error_message").toElement().text();
         QTreeWidgetItem * item = new QTreeWidgetItem(this);
-        item->setText(0, status);
-        item->setIcon(0,QIcon("://icons/32x32/Error.png"));
+        item->setText(CGisListWks::eColumnName, status);
+        item->setIcon(CGisListWks::eColumnName,QIcon("://icons/32x32/Error.png"));
         return;
     }
 
diff --git a/src/gis/trk/CDetailsTrk.cpp b/src/gis/trk/CDetailsTrk.cpp
index dd6af46..3b22b1f 100644
--- a/src/gis/trk/CDetailsTrk.cpp
+++ b/src/gis/trk/CDetailsTrk.cpp
@@ -344,6 +344,7 @@ void CDetailsTrk::slotLinkActivated(const QUrl& url)
         {
             trk.setComment(dlg.getHtml());
         }
+        setupGui();
     }
     else if(url.toString() == "description")
     {
@@ -353,6 +354,7 @@ void CDetailsTrk::slotLinkActivated(const QUrl& url)
         {
             trk.setDescription(dlg.getHtml());
         }
+        setupGui();
     }
     else if(url.toString() == "links")
     {
diff --git a/src/gis/trk/CGisItemTrk.cpp b/src/gis/trk/CGisItemTrk.cpp
index 51ad049..176a533 100644
--- a/src/gis/trk/CGisItemTrk.cpp
+++ b/src/gis/trk/CGisItemTrk.cpp
@@ -149,7 +149,7 @@ CGisItemTrk::CGisItemTrk(const QString &name, qint32 idx1, qint32 idx2, const tr
 }
 
 /// used to create a copy of track with new parent
-CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int idx)
+CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int idx, bool clone)
     : IGisItem(project, eTypeTrk, idx)
     , penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
     , drawMode(eDrawNormal)
@@ -159,6 +159,12 @@ CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int
     *this = parentTrk;
     key.project = project->getKey();
 
+    if(clone)
+    {
+        trk.name += QObject::tr("_Clone");
+        key.item.clear();
+    }
+
     setupHistory();
     updateDecoration(eMarkChanged, eMarkNone);
 }
@@ -313,7 +319,7 @@ void CGisItemTrk::unregisterPlot(IPlot * plot)
 
 
 
-QString CGisItemTrk::getInfo()
+QString CGisItemTrk::getInfo() const
 {
     QString val1, unit1, val2, unit2;
     QString str = "<div style='font-weight: bold;'>" + getName() + "</div>";
@@ -842,7 +848,7 @@ void CGisItemTrk::reverse()
         return;
     }
 
-    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, -1);
+    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, -1, false);
 
     trk1->trk.name = name1;
     trk1->trk.segs.clear();
@@ -885,7 +891,7 @@ void CGisItemTrk::combine()
         return;
     }
 
-    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, -1);
+    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, -1, false);
 
     trk1->trk.name = name1;
     trk1->trk.segs.clear();
@@ -1266,7 +1272,7 @@ void CGisItemTrk::drawRange(QPainter& p)
 
 void CGisItemTrk::setName(const QString& str)
 {
-    setText(0, str);
+    setText(CGisListWks::eColumnName, str);
     trk.name = str;
     changed(QObject::tr("Changed name"), "://icons/48x48/EditText.png");
 }
@@ -1339,7 +1345,7 @@ void CGisItemTrk::setIcon(const QString& c)
     mask.setMask( icon.createMaskFromColor( Qt::transparent ) );
     icon = mask.scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
 
-    QTreeWidgetItem::setIcon(0,icon);
+    QTreeWidgetItem::setIcon(CGisListWks::eColumnName,icon);
 }
 
 void CGisItemTrk::setMouseFocusByDistance(qreal dist, focusmode_e mode, IPlot *initiator)
diff --git a/src/gis/trk/CGisItemTrk.h b/src/gis/trk/CGisItemTrk.h
index 00fdc71..39417b7 100644
--- a/src/gis/trk/CGisItemTrk.h
+++ b/src/gis/trk/CGisItemTrk.h
@@ -35,6 +35,8 @@ class CQlgtTrack;
 
 #define TRK_N_COLORS 17
 
+#include <QDebug>
+
 class CGisItemTrk : public IGisItem, public IGisLine
 {
     public:
@@ -54,7 +56,7 @@ class CGisItemTrk : public IGisItem, public IGisLine
         };
 
         CGisItemTrk(const QString& name, qint32 idx1, qint32 idx2, const trk_t &srctrk, IGisProject *project);
-        CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject * project, int idx);
+        CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject * project, int idx, bool clone);
         CGisItemTrk(const QPolygonF& l, const QString &name, IGisProject *project, int idx);
         CGisItemTrk(const QDomNode &xml, IGisProject *project);
         CGisItemTrk(const history_t& hist, IGisProject * project);
@@ -65,9 +67,9 @@ class CGisItemTrk : public IGisItem, public IGisLine
         QDataStream& operator<<(QDataStream& stream);
         QDataStream& operator>>(QDataStream& stream);
 
-        const QString& getName(){return trk.name;}
+        const QString& getName() const {return trk.name;}
         int getColorIdx(){return colorIdx;}
-        QString getInfo();
+        QString getInfo() const;
         QString getInfoRange();
         QString getInfoTrkPt(const trkpt_t& pt);
         QString getInfoProgress(const trkpt_t& pt);
@@ -164,7 +166,7 @@ class CGisItemTrk : public IGisItem, public IGisLine
 
            @return True if the track has user focus
          */
-        bool hasUserFocus(){return key == keyUserFocus;}
+        bool hasUserFocus() const {return key == keyUserFocus;}
 
         /**
            @brief Get the key of the current track with user focus
diff --git a/src/gis/trk/CScrOptTrk.cpp b/src/gis/trk/CScrOptTrk.cpp
index de120c1..129a90b 100644
--- a/src/gis/trk/CScrOptTrk.cpp
+++ b/src/gis/trk/CScrOptTrk.cpp
@@ -43,6 +43,7 @@ CScrOptTrk::CScrOptTrk(CGisItemTrk * trk, const QPoint& point, IMouse *parent)
 
     connect(toolEditDetails, SIGNAL(clicked()), this, SLOT(slotEditDetails()));
     connect(toolDelete, SIGNAL(clicked()), this, SLOT(slotDelete()));
+    connect(toolCopy, SIGNAL(clicked()), this, SLOT(slotCopy()));
     connect(toolProfile, SIGNAL(toggled(bool)), this, SLOT(slotProfile(bool)));
     connect(toolCut, SIGNAL(clicked()), this, SLOT(slotCut()));
     connect(toolEdit, SIGNAL(clicked()), this, SLOT(slotEdit()));
@@ -62,6 +63,12 @@ void CScrOptTrk::slotDelete()
     deleteLater();
 }
 
+void CScrOptTrk::slotCopy()
+{
+    CGisWidget::self().copyItemByKey(key);
+    deleteLater();
+}
+
 void CScrOptTrk::slotEditDetails()
 {
     CGisWidget::self().editItemByKey(key);
diff --git a/src/gis/trk/CScrOptTrk.h b/src/gis/trk/CScrOptTrk.h
index 355c3c3..fd78e52 100644
--- a/src/gis/trk/CScrOptTrk.h
+++ b/src/gis/trk/CScrOptTrk.h
@@ -37,6 +37,7 @@ class CScrOptTrk : public IScrOpt, private Ui::IScrOptTrk
 
     private slots:        
         void slotDelete();
+        void slotCopy();
         void slotEditDetails();
         void slotProfile(bool on);
         void slotCut();
diff --git a/src/gis/trk/IScrOptTrk.ui b/src/gis/trk/IScrOptTrk.ui
index 76735f8..633b98a 100644
--- a/src/gis/trk/IScrOptTrk.ui
+++ b/src/gis/trk/IScrOptTrk.ui
@@ -49,19 +49,16 @@
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="toolProfile">
+      <widget class="QToolButton" name="toolCopy">
        <property name="toolTip">
-        <string>Show on-screen profile and detailed information about points.</string>
+        <string>Copy track into another project.</string>
        </property>
        <property name="text">
         <string>...</string>
        </property>
        <property name="icon">
         <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/TrkProfile.png</normaloff>:/icons/32x32/TrkProfile.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
        </property>
       </widget>
      </item>
@@ -87,6 +84,23 @@
       </widget>
      </item>
      <item>
+      <widget class="QToolButton" name="toolProfile">
+       <property name="toolTip">
+        <string>Show on-screen profile and detailed information about points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/TrkProfile.png</normaloff>:/icons/32x32/TrkProfile.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
       <widget class="QToolButton" name="toolRange">
        <property name="toolTip">
         <string>Select a range of points.</string>
diff --git a/src/gis/wpt/CGisItemWpt.cpp b/src/gis/wpt/CGisItemWpt.cpp
index fa2d37d..8d6ae97 100644
--- a/src/gis/wpt/CGisItemWpt.cpp
+++ b/src/gis/wpt/CGisItemWpt.cpp
@@ -90,7 +90,7 @@ CGisItemWpt::CGisItemWpt(const QPointF& pos, const CGisItemWpt& parentWpt, IGisP
 }
 
 /// used to create a copy of waypoint with new parent
-CGisItemWpt::CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx)
+CGisItemWpt::CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx, bool clone)
     : IGisItem(project, eTypeWpt, idx)
     , proximity(NOFLOAT)
     , posScreen(NOPOINTF)
@@ -98,6 +98,12 @@ CGisItemWpt::CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int
     *this = parentWpt;
     key.project = project->getKey();
 
+    if(clone)
+    {
+        wpt.name += QObject::tr("_Clone");
+        key.item.clear();
+    }
+
     setupHistory();
     updateDecoration(eMarkChanged, eMarkNone);
 }
@@ -195,7 +201,7 @@ void CGisItemWpt::getNewPosition(QPointF& pos)
 }
 
 
-QString CGisItemWpt::getInfo()
+QString CGisItemWpt::getInfo() const
 {
     QString str = "<div style='font-weight: bold;'>" + getName() + "</div>";
 
@@ -281,12 +287,12 @@ void CGisItemWpt::setIcon()
         icon = getWptIconByName(wpt.sym, focus);
     }
 
-    QTreeWidgetItem::setIcon(0,icon);
+    QTreeWidgetItem::setIcon(CGisListWks::eColumnName,icon);
 }
 
 void CGisItemWpt::setName(const QString& str)
 {    
-    setText(0, str);
+    setText(CGisListWks::eColumnName, str);
     lastName = str;
     wpt.name = str;
     changed(QObject::tr("Changed name"),"://icons/48x48/EditText.png");
diff --git a/src/gis/wpt/CGisItemWpt.h b/src/gis/wpt/CGisItemWpt.h
index c489b0a..0a879f5 100644
--- a/src/gis/wpt/CGisItemWpt.h
+++ b/src/gis/wpt/CGisItemWpt.h
@@ -103,7 +103,7 @@ class CGisItemWpt : public IGisItem
            @param project   the project the waypoint is added to
            @param idx       the index to insert the item. If -1 the item will be appended to it's group
          */
-        CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx);
+        CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx, bool clone);
         /**
            @brief Create item from GPX.
            @param xml       the GPX section containing the item
@@ -143,8 +143,8 @@ class CGisItemWpt : public IGisItem
         void setDescription(const QString& str);
         void setLinks(const QList<link_t>& links);
 
-        const QString& getName(){return wpt.name;}
-        QString getInfo();
+        const QString& getName() const {return wpt.name;}
+        QString getInfo() const;
         QPointF getPosition(){return QPointF(wpt.lon, wpt.lat);}
         qint32 getElevation(){return wpt.ele;}
         qreal getProximity(){return proximity;}
diff --git a/src/gis/wpt/CScrOptWpt.cpp b/src/gis/wpt/CScrOptWpt.cpp
index 125750c..b9f272d 100644
--- a/src/gis/wpt/CScrOptWpt.cpp
+++ b/src/gis/wpt/CScrOptWpt.cpp
@@ -47,6 +47,7 @@ CScrOptWpt::CScrOptWpt(CGisItemWpt *wpt, const QPoint& point, IMouse *parent)
 
     connect(toolDelete, SIGNAL(clicked()), this, SLOT(slotDelete()));
     connect(toolEdit, SIGNAL(clicked()), this, SLOT(slotEdit()));
+    connect(toolCopy, SIGNAL(clicked()), this, SLOT(slotCopy()));
     connect(toolMove, SIGNAL(clicked()), this, SLOT(slotMove()));
     connect(toolProj, SIGNAL(clicked()), this, SLOT(slotProj()));
 }
@@ -68,6 +69,12 @@ void CScrOptWpt::slotEdit()
     deleteLater();
 }
 
+void CScrOptWpt::slotCopy()
+{
+    CGisWidget::self().copyItemByKey(key);
+    deleteLater();
+}
+
 void CScrOptWpt::slotMove()
 {
     CGisWidget::self().moveWptByKey(key);
diff --git a/src/gis/wpt/CScrOptWpt.h b/src/gis/wpt/CScrOptWpt.h
index 6b12523..713092a 100644
--- a/src/gis/wpt/CScrOptWpt.h
+++ b/src/gis/wpt/CScrOptWpt.h
@@ -40,6 +40,7 @@ class CScrOptWpt : public IScrOpt , private Ui::IScrOptWpt
     private slots:
         void slotDelete();
         void slotEdit();
+        void slotCopy();
         void slotMove();
         void slotProj();
 
diff --git a/src/gis/wpt/IScrOptWpt.ui b/src/gis/wpt/IScrOptWpt.ui
index 750e5e3..19d49ad 100644
--- a/src/gis/wpt/IScrOptWpt.ui
+++ b/src/gis/wpt/IScrOptWpt.ui
@@ -58,6 +58,20 @@
       </widget>
      </item>
      <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy waypoint into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
       <widget class="QToolButton" name="toolDelete">
        <property name="toolTip">
         <string><html><head/><body><p>Delete</p></body></html></string>
diff --git a/src/helpers/CHistoryListWidget.cpp b/src/helpers/CHistoryListWidget.cpp
index f556169..e269f3f 100644
--- a/src/helpers/CHistoryListWidget.cpp
+++ b/src/helpers/CHistoryListWidget.cpp
@@ -113,8 +113,8 @@ void CHistoryListWidget::slotCutHistory()
     }
 
     item->cutHistory();
-    item->setText(1,"*");
-    item->parent()->setText(1,"*");
+    item->setText(CGisListWks::eColumnDecoration,"*");
+    item->parent()->setText(CGisListWks::eColumnDecoration,"*");
 
     emit sigChanged();
 }
diff --git a/src/helpers/CSelectCopyAction.cpp b/src/helpers/CSelectCopyAction.cpp
new file mode 100644
index 0000000..10a226f
--- /dev/null
+++ b/src/helpers/CSelectCopyAction.cpp
@@ -0,0 +1,68 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+**********************************************************************************************/
+
+#include "helpers/CSelectCopyAction.h"
+#include "gis/IGisItem.h"
+
+#include <QtWidgets>
+
+CSelectCopyAction::CSelectCopyAction(const IGisItem *src, const IGisItem *tar, QWidget *parent)
+    : QDialog(parent)
+    , result(eResultNone)
+{
+    setupUi(this);
+
+    labelIcon1->setPixmap(src->getIcon());
+    labelInfo1->setText(src->getInfo());
+    labelIcon2->setPixmap(tar->getIcon());
+    labelInfo2->setText(tar->getInfo());
+
+    adjustSize();
+
+    connect(pushCopy, SIGNAL(clicked()), this, SLOT(slotSelectResult()));
+    connect(pushSkip, SIGNAL(clicked()), this, SLOT(slotSelectResult()));
+    connect(pushClone, SIGNAL(clicked()), this, SLOT(slotSelectResult()));
+}
+
+CSelectCopyAction::~CSelectCopyAction()
+{
+
+}
+
+bool CSelectCopyAction::allOthersToo()
+{
+    return checkAllOtherToo->isChecked();
+}
+
+void CSelectCopyAction::slotSelectResult()
+{
+    if(sender() == pushCopy)
+    {
+        result = eResultCopy;
+    }
+    else if(sender() == pushSkip)
+    {
+        result = eResultSkip;
+    }
+    else if(sender() == pushClone)
+    {
+        result = eResultClone;
+    }
+
+    accept();
+}
diff --git a/src/gis/ovl/CScrOptOvlArea.h b/src/helpers/CSelectCopyAction.h
similarity index 60%
copy from src/gis/ovl/CScrOptOvlArea.h
copy to src/helpers/CSelectCopyAction.h
index 12a740d..49847d6 100644
--- a/src/gis/ovl/CScrOptOvlArea.h
+++ b/src/helpers/CSelectCopyAction.h
@@ -16,36 +16,38 @@
 
 **********************************************************************************************/
 
-#ifndef CSCROPTOVLAREA_H
-#define CSCROPTOVLAREA_H
+#ifndef CSELECTCOPYACTION_H
+#define CSELECTCOPYACTION_H
 
-#include "mouse/IScrOpt.h"
-#include "gis/IGisItem.h"
+#include <QDialog>
+#include "ui_ISelectCopyAction.h"
 
-#include "ui_IScrOptOvlArea.h"
+class IGisItem;
 
-class CGisItemOvlArea;
-class IMouse;
-
-class CScrOptOvlArea : public IScrOpt, private Ui::IScrOptOvlArea
+class CSelectCopyAction : public QDialog, private Ui::ISelectCopyAction
 {
     Q_OBJECT
     public:
-        CScrOptOvlArea(CGisItemOvlArea * area, const QPoint &point, IMouse *parent);
-        virtual ~CScrOptOvlArea();
+        CSelectCopyAction(const IGisItem * src, const IGisItem * tar, QWidget * parent);
+        virtual ~CSelectCopyAction();
+
+        enum result_e
+        {
+            eResultNone,
+            eResultCopy,
+            eResultSkip,
+            eResultClone
+        };
 
-        void draw(QPainter& p);
+        result_e getResult(){return result;}
+        bool allOthersToo();
 
     private slots:
-        void slotEditDetails();
-        void slotDelete();
-        void slotEdit();
+        void slotSelectResult();
 
     private:
-        IGisItem::key_t key;
-        QPointF anchor;
-
+        result_e result;
 };
 
-#endif //CSCROPTOVLAREA_H
+#endif //CSELECTCOPYACTION_H
 
diff --git a/src/helpers/CSelectProjectDialog.cpp b/src/helpers/CSelectProjectDialog.cpp
index ddddfc5..3220dc9 100644
--- a/src/helpers/CSelectProjectDialog.cpp
+++ b/src/helpers/CSelectProjectDialog.cpp
@@ -18,8 +18,10 @@
 
 #include "helpers/CSelectProjectDialog.h"
 #include "gis/prj/IGisProject.h"
+#include "gis/CGisListWks.h"
 #include "helpers/CSettings.h"
 
+
 #include <QtWidgets>
 
 CSelectProjectDialog::CSelectProjectDialog(QString &key, QString &name, type_e& type, QTreeWidget * parent)
@@ -40,7 +42,7 @@ CSelectProjectDialog::CSelectProjectDialog(QString &key, QString &name, type_e&
              continue;
             }
 
-            QListWidgetItem * item = new QListWidgetItem(project->icon(0), project->text(0),listWidget);
+            QListWidgetItem * item = new QListWidgetItem(project->icon(CGisListWks::eColumnName), project->text(CGisListWks::eColumnName),listWidget);
             item->setData(Qt::UserRole, project->getKey());
         }
     }
diff --git a/src/helpers/ISelectCopyAction.ui b/src/helpers/ISelectCopyAction.ui
new file mode 100644
index 0000000..4f65015
--- /dev/null
+++ b/src/helpers/ISelectCopyAction.ui
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ISelectCopyAction</class>
+ <widget class="QDialog" name="ISelectCopyAction">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>446</width>
+    <height>285</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Copy item...</string>
+  </property>
+  <layout class="QFormLayout" name="formLayout">
+   <property name="fieldGrowthPolicy">
+    <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+   </property>
+   <item row="0" column="1">
+    <widget class="QPushButton" name="pushCopy">
+     <property name="text">
+      <string>Replace existing item</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QLabel" name="labelIcon1">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1">
+    <widget class="QLabel" name="labelInfo1">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="2">
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1">
+    <widget class="QPushButton" name="pushSkip">
+     <property name="text">
+      <string>Do not copy item</string>
+     </property>
+    </widget>
+   </item>
+   <item row="6" column="0">
+    <widget class="QLabel" name="labelIcon2">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+    </widget>
+   </item>
+   <item row="6" column="1">
+    <widget class="QLabel" name="labelInfo2">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="7" column="0" colspan="2">
+    <widget class="Line" name="line_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="8" column="1">
+    <widget class="QPushButton" name="pushClone">
+     <property name="text">
+      <string>Create a clone</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Replace with:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="1">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Keep item:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="9" column="1">
+    <widget class="QLabel" name="label_3">
+     <property name="text">
+      <string>The clone's name will be appended with '_Clone'</string>
+     </property>
+    </widget>
+   </item>
+   <item row="10" column="0" colspan="2">
+    <widget class="Line" name="line_3">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="11" column="1">
+    <widget class="QCheckBox" name="checkAllOtherToo">
+     <property name="text">
+      <string>And for all other items, too.</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/icons/32x32/Copy.png b/src/icons/32x32/Copy.png
index 3142509..b3a7420 100644
Binary files a/src/icons/32x32/Copy.png and b/src/icons/32x32/Copy.png differ
diff --git a/src/icons/32x32/DatabaseConvert.png b/src/icons/32x32/DatabaseConvert.png
index 3108251..8077835 100644
Binary files a/src/icons/32x32/DatabaseConvert.png and b/src/icons/32x32/DatabaseConvert.png differ
diff --git a/src/icons/32x32/Move.png b/src/icons/32x32/Move.png
new file mode 100644
index 0000000..3308906
Binary files /dev/null and b/src/icons/32x32/Move.png differ
diff --git a/src/icons/48x48/Copy.png b/src/icons/48x48/Copy.png
index f7cbf25..e93e024 100644
Binary files a/src/icons/48x48/Copy.png and b/src/icons/48x48/Copy.png differ
diff --git a/src/icons/48x48/DatabaseConvert.png b/src/icons/48x48/DatabaseConvert.png
index 215ece1..738d412 100644
Binary files a/src/icons/48x48/DatabaseConvert.png and b/src/icons/48x48/DatabaseConvert.png differ
diff --git a/src/icons/48x48/Move.png b/src/icons/48x48/Move.png
new file mode 100644
index 0000000..30fe97e
Binary files /dev/null and b/src/icons/48x48/Move.png differ
diff --git a/src/icons/Copy.svg b/src/icons/Copy.svg
index 3cfab55..0e944f4 100644
--- a/src/icons/Copy.svg
+++ b/src/icons/Copy.svg
@@ -13,7 +13,7 @@
    height="64px"
    id="svg3513"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.48.5 r10040"
    sodipodi:docname="Copy.svg">
   <defs
      id="defs3515" />
@@ -24,17 +24,17 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="11"
-     inkscape:cx="-16.101692"
-     inkscape:cy="28.929652"
+     inkscape:zoom="3.8890873"
+     inkscape:cx="1.7772742"
+     inkscape:cy="8.5958721"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="996"
-     inkscape:window-x="-2"
-     inkscape:window-y="-3"
+     inkscape:window-height="992"
+     inkscape:window-x="-4"
+     inkscape:window-y="-1"
      inkscape:window-maximized="1">
     <inkscape:grid
        type="xygrid"
@@ -57,25 +57,25 @@
      inkscape:label="Layer 1"
      inkscape:groupmode="layer">
     <rect
-       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.76969867999999997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
-       id="rect3828"
-       width="24.230301"
-       height="34.230301"
-       x="30.521212"
-       y="9.4303045" />
-    <rect
-       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
        id="rect3828-0-5"
        width="24.230301"
        height="34.230301"
        x="15.066664"
        y="14.430304" />
     <rect
-       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.76969867999999997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
        id="rect3828-0"
        width="24.230301"
        height="34.230301"
        x="15.430301"
        y="14.430304" />
+    <rect
+       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3828"
+       width="24.230301"
+       height="34.230301"
+       x="30.521212"
+       y="9.4303045" />
   </g>
 </svg>
diff --git a/src/icons/DatabaseConvert.svg b/src/icons/DatabaseConvert.svg
index ae435b7..d240e42 100644
--- a/src/icons/DatabaseConvert.svg
+++ b/src/icons/DatabaseConvert.svg
@@ -16,7 +16,34 @@
    inkscape:version="0.48.5 r10040"
    sodipodi:docname="DatabaseConvert.svg">
   <defs
-     id="defs4" />
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3808"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path3790"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+  </defs>
   <sodipodi:namedview
      id="base"
      pagecolor="#ffffff"
@@ -25,15 +52,15 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="7.229447"
-     inkscape:cx="-3.950756"
+     inkscape:cx="6.4926431"
      inkscape:cy="18.171979"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:window-width="1920"
-     inkscape:window-height="996"
-     inkscape:window-x="-2"
-     inkscape:window-y="-3"
+     inkscape:window-height="992"
+     inkscape:window-x="-4"
+     inkscape:window-y="-1"
      inkscape:window-maximized="1">
     <inkscape:grid
        type="xygrid"
@@ -51,7 +78,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -72,7 +99,7 @@
            y="2.2142856" /></flowRegion><flowPara
          id="flowPara3865" /></flowRoot>    <g
        id="g3856"
-       transform="matrix(0.46904962,0,0,0.9609277,1.7607232,983.43049)"
+       transform="matrix(0.46904962,0,0,0.4861194,1.7607232,1014.1361)"
        style="stroke-width:3.38945651;stroke-miterlimit:4;stroke-dasharray:none">
       <path
          transform="matrix(0.97628959,0,0,0.90577639,0.75264714,41.745822)"
@@ -166,7 +193,7 @@
        y="995.86395" />
     <g
        id="g3856-5"
-       transform="matrix(0.46904962,0,0,0.9609277,40.0963,983.43049)"
+       transform="matrix(0.46904962,0,0,0.4861194,40.0963,1014.1361)"
        style="stroke-width:3.38945651;stroke-miterlimit:4;stroke-dasharray:none">
       <path
          transform="matrix(0.97628959,0,0,0.90577639,0.75264714,41.745822)"
@@ -252,9 +279,11 @@
          style="fill:#ffffff;stroke:#000080;stroke-width:3.38945651;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
     <path
-       style="fill:#000080;stroke:#000080;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
-       d="m 30,1000.864 10,20 -10,20 z"
-       id="path3058"
-       inkscape:connector-curvature="0" />
+       style="fill:none;stroke:#008000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 15,29 C 25,4 45,4 55,29"
+       id="path3007"
+       inkscape:connector-curvature="0"
+       transform="translate(0,988.36218)"
+       sodipodi:nodetypes="cc" />
   </g>
 </svg>
diff --git a/src/icons/Copy.svg b/src/icons/Move.svg
similarity index 57%
copy from src/icons/Copy.svg
copy to src/icons/Move.svg
index 3cfab55..d26f0ee 100644
--- a/src/icons/Copy.svg
+++ b/src/icons/Move.svg
@@ -13,7 +13,7 @@
    height="64px"
    id="svg3513"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.48.5 r10040"
    sodipodi:docname="Copy.svg">
   <defs
      id="defs3515" />
@@ -24,17 +24,17 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="11"
-     inkscape:cx="-16.101692"
-     inkscape:cy="28.929652"
+     inkscape:zoom="5.5"
+     inkscape:cx="21.998327"
+     inkscape:cy="9.6337227"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="996"
-     inkscape:window-x="-2"
-     inkscape:window-y="-3"
+     inkscape:window-height="992"
+     inkscape:window-x="-4"
+     inkscape:window-y="-1"
      inkscape:window-maximized="1">
     <inkscape:grid
        type="xygrid"
@@ -48,7 +48,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -57,25 +57,40 @@
      inkscape:label="Layer 1"
      inkscape:groupmode="layer">
     <rect
-       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.76969867999999997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
-       id="rect3828"
-       width="24.230301"
-       height="34.230301"
-       x="30.521212"
-       y="9.4303045" />
-    <rect
-       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
        id="rect3828-0-5"
        width="24.230301"
        height="34.230301"
        x="15.066664"
        y="14.430304" />
     <rect
-       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.76969867999999997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
        id="rect3828-0"
        width="24.230301"
        height="34.230301"
        x="15.430301"
        y="14.430304" />
+    <rect
+       style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.9321835;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3860"
+       width="14"
+       height="4"
+       x="21"
+       y="40" />
+    <rect
+       style="fill:#80b3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3828"
+       width="24.230301"
+       height="34.230301"
+       x="30.521212"
+       y="9.4303045" />
+    <path
+       style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 35.835634,35 4.76171,3e-6 0,4.753904 4.07804,0 0,-4.753907 4.761706,0 0,-4.093642 -4.761706,0 -3e-6,-4.753907 -4.078037,0 -4e-6,4.753912 -4.761706,-5e-6 0,4.093642 z"
+       id="rect3117-7"
+       inkscape:connector-curvature="0"
+       inkscape:export-filename="/home/oeichler/Code/cpp/MapRoom/src/icons/16x16/add.png"
+       inkscape:export-xdpi="75.913841"
+       inkscape:export-ydpi="75.913841" />
   </g>
 </svg>
diff --git a/src/locale/qmapshack_cs.ts b/src/locale/qmapshack_cs.ts
index a1eeb4d..0b6777a 100644
--- a/src/locale/qmapshack_cs.ts
+++ b/src/locale/qmapshack_cs.ts
@@ -227,135 +227,152 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="82"/>
-        <source>Remove Database</source>
+        <location filename="../gis/CGisListDB.cpp" line="81"/>
+        <location filename="../gis/CGisListDB.cpp" line="91"/>
+        <source>Delete Item</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="85"/>
+        <source>Remove Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
         <source>Empty</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="228"/>
+        <location filename="../gis/CGisListDB.cpp" line="254"/>
         <source>Remove database...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="228"/>
+        <location filename="../gis/CGisListDB.cpp" line="254"/>
         <source>Do you realy want to remove '%1' from the list?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="269"/>
+        <location filename="../gis/CGisListDB.cpp" line="295"/>
         <source>Delete database folder...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="269"/>
+        <location filename="../gis/CGisListDB.cpp" line="295"/>
         <source>Are you sure you want to delete "%1" from the database?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="295"/>
+        <location filename="../gis/CGisListDB.cpp" line="321"/>
+        <location filename="../gis/CGisListDB.cpp" line="336"/>
         <source>Remove items...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="295"/>
+        <location filename="../gis/CGisListDB.cpp" line="321"/>
         <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="336"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="80"/>
+        <location filename="../gis/CGisListWks.cpp" line="82"/>
         <source>Save As...</source>
         <translation>Uložit jako...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="81"/>
+        <location filename="../gis/CGisListWks.cpp" line="83"/>
         <source>Save</source>
         <translation>Uložit</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="82"/>
+        <location filename="../gis/CGisListWks.cpp" line="84"/>
         <source>Edit..</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="83"/>
+        <location filename="../gis/CGisListWks.cpp" line="85"/>
         <source>Close</source>
         <translation>Zavřít</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="89"/>
+        <location filename="../gis/CGisListWks.cpp" line="91"/>
         <source>Edit...</source>
         <translation>Upravit...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="90"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <source>Copy to...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="104"/>
         <source>Move Waypoint</source>
         <translation>Přesunout cestovní bod</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="105"/>
         <source>Proj. Waypoint...</source>
         <translation>Promítnout cestovní bod...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Track Profile</source>
         <translation>Sledovat profil</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="95"/>
         <source>Select Range</source>
         <translation>Vybrat rozsah</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Edit Track Points</source>
         <translation>Upravit body stopy</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <location filename="../gis/CGisListWks.cpp" line="97"/>
         <source>Reverse Track</source>
         <translation>Obrátit stopu</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="96"/>
+        <location filename="../gis/CGisListWks.cpp" line="98"/>
         <source>Combine Tracks</source>
         <translation>Spojit stopy</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="97"/>
+        <location filename="../gis/CGisListWks.cpp" line="117"/>
         <source>Edit Area Points</source>
         <translation>Upravit body oblasti</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="100"/>
+        <location filename="../gis/CGisListWks.cpp" line="99"/>
         <source>Delete</source>
         <translation>Smazat</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="621"/>
+        <location filename="../gis/CGisListWks.cpp" line="567"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Ukládá se pracovní oblast. Počkejte, prosím.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="662"/>
+        <location filename="../gis/CGisListWks.cpp" line="608"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Nahrává se pracovní oblast. Počkejte, prosím.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1070"/>
+        <location filename="../gis/CGisListWks.cpp" line="1003"/>
         <source>Close all projects...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1070"/>
+        <location filename="../gis/CGisListWks.cpp" line="1003"/>
         <source>This will remove all projects from the workspace.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2091,17 +2108,17 @@ není platným vymezením soustavy souřadnic
         <translation>Formulář</translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="62"/>
         <source>State</source>
-        <translation>Stav</translation>
+        <translation type="obsolete">Stav</translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="94"/>
+        <location filename="../gis/IGisWidget.ui" line="65"/>
+        <location filename="../gis/IGisWidget.ui" line="97"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="127"/>
+        <location filename="../gis/IGisWidget.ui" line="130"/>
         <source>To add a database do a right click on the database list above.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2741,13 +2758,19 @@ nebo
     </message>
     <message>
         <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="51"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="69"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="65"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="83"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="98"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="51"/>
+        <source>Copy area into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="112"/>
         <source>TextLabel</source>
         <translation>Textový štítek</translation>
     </message>
@@ -2862,16 +2885,22 @@ nebo
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="31"/>
         <location filename="../gis/rte/IScrOptRte.ui" line="45"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="59"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="42"/>
+        <source>Copy route into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="56"/>
         <source><html><head/><body><p>Delete</p></body></html></source>
         <translation><html><head/><body><p>Smazat</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="85"/>
         <source>TextLabel</source>
         <translation>Textový štítek</translation>
     </message>
@@ -2889,37 +2918,42 @@ nebo
         <translation>Zobrazit podrobnosti a upravit vlastnosti stopy.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
         <source>Delete</source>
         <translation>Smazat</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
         <source>Show on-screen profile and detailed information about points.</source>
         <translation>Ukázat promítnutý profil a podrobné údaje o bodech.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
         <source>Cut track at selected point into two tracks.</source>
         <translation>Vyjmout stopu na vybraném bodu do dvou stop.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
         <source>Edit position of track points.</source>
         <translation>Upravit polohu bodů stopy.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
         <source>Select a range of points.</source>
         <translation type="unfinished">Vybrat rozsah bodů.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
         <source>Reverse track.</source>
         <translation>Obrátit stopu.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
         <source>Combine tracks.</source>
         <translation>Spojit stopy.</translation>
     </message>
@@ -2930,12 +2964,13 @@ nebo
     <message>
         <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="74"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="95"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="165"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -2944,7 +2979,7 @@ nebo
         <translation type="obsolete"><html><head/><body><p>Smazat</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="177"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="191"/>
         <source>TextLabel</source>
         <translation>Textový štítek</translation>
     </message>
@@ -2964,33 +2999,90 @@ nebo
     <message>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="87"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
         <source><html><head/><body><p>Delete</p></body></html></source>
         <translation><html><head/><body><p>Smazat</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
         <source><html><head/><body><p>Move waypoint to a new location.</p></body></html></source>
         <translation><html><head/><body><p>Přesunout cestovní bod do nového umístění.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="112"/>
         <source><html><head/><body><p>Clone waypoint and move clone a given distance and angle.</p></body></html></source>
         <translation><html><head/><body><p>Klonovat cestovní bod a přesunout kopii o danou vzdálenost a ve stanoveném úhlu.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="145"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="159"/>
         <source>TextLabel</source>
         <translation>Textový štítek</translation>
     </message>
 </context>
 <context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="23"/>
+        <source>Replace existing item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="30"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="40"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="67"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="77"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Textový štítek</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="60"/>
+        <source>Do not copy item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="97"/>
+        <source>Create a clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="104"/>
+        <source>Replace with:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="111"/>
+        <source>Keep item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="118"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="132"/>
+        <source>And for all other items, too.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ISelectProjectDialog</name>
     <message>
         <source>Dialog</source>
@@ -3400,69 +3492,75 @@ Areas: %1</source>
 Oblasti: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="163"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="168"/>
         <source><br/>
 Filename: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="180"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="185"/>
         <source>Waypoints: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="184"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="189"/>
         <source>Tracks: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="188"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="193"/>
         <source>Routes: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="192"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="197"/>
         <source>Areas: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="250"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="255"/>
         <source>Are you sure you want to delete '%1' from project '%2'?</source>
         <translation>Jste si jistý, že chcete smazat '%1' z projektu '%2'?</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="251"/>
+        <location filename="../gis/CGisListDB.cpp" line="410"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="411"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Delete...</source>
         <translation>Smazat...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="53"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="47"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="135"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="136"/>
         <source>Failed to open...</source>
         <translation>Nepodařilo se otevřít...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="53"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="47"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="135"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="136"/>
         <source>Failed to open %1</source>
         <translation>Nepodařilo se otevřít %1</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="124"/>
+        <location filename="../gis/db/CDBProject.cpp" line="125"/>
         <location filename="../gis/gpx/CGpxProject.cpp" line="151"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="90"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="91"/>
         <source>Save GIS data to...</source>
         <translation>Uložit data GIS do...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="153"/>
+        <location filename="../gis/db/CDBProject.cpp" line="154"/>
         <source>Save ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="153"/>
+        <location filename="../gis/db/CDBProject.cpp" line="154"/>
         <source>Abort save</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3493,112 +3591,112 @@ Filename: %1</source>
         <translation>Nepodařilo se zapsat soubor '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="284"/>
+        <location filename="../gis/IGisItem.cpp" line="285"/>
         <source>Initial version.</source>
         <translation>Počáteční verze.</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="368"/>
+        <location filename="../gis/IGisItem.cpp" line="369"/>
         <source>This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press'Ok'.</source>
         <translation>Tento prvek je pravděpodobně pouze pro čtení, protože nebyl vytvořen v programu QMapShack. Obvykle nemáte zájem měnit zavedená data. Ale pokud si myslíte, že je to tentokrát na místě, stiskněte OK.</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="369"/>
+        <location filename="../gis/IGisItem.cpp" line="370"/>
         <source>Read Only Mode...</source>
         <translation>Režim pouze pro čtení...</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="558"/>
+        <location filename="../gis/IGisItem.cpp" line="559"/>
         <source><h4>Comment:</h4></source>
         <translation type="unfinished"><h4>Poznámka:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="561"/>
+        <location filename="../gis/IGisItem.cpp" line="562"/>
         <source><p>--- no comment ---</p></source>
         <translation type="unfinished"><p>--- žádná poznámka ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="568"/>
-        <location filename="../gis/IGisItem.cpp" line="598"/>
+        <location filename="../gis/IGisItem.cpp" line="569"/>
+        <location filename="../gis/IGisItem.cpp" line="599"/>
         <source><h4>Description:</h4></source>
         <translation type="unfinished"><h4>Popis:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="571"/>
-        <location filename="../gis/IGisItem.cpp" line="601"/>
+        <location filename="../gis/IGisItem.cpp" line="572"/>
+        <location filename="../gis/IGisItem.cpp" line="602"/>
         <source><p>--- no description ---</p></source>
         <translation type="unfinished"><p>--- žádný popis ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="578"/>
-        <location filename="../gis/IGisItem.cpp" line="608"/>
+        <location filename="../gis/IGisItem.cpp" line="579"/>
+        <location filename="../gis/IGisItem.cpp" line="609"/>
         <source><h4>Links:</h4></source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="581"/>
-        <location filename="../gis/IGisItem.cpp" line="611"/>
+        <location filename="../gis/IGisItem.cpp" line="582"/>
+        <location filename="../gis/IGisItem.cpp" line="612"/>
         <source><p>--- no links ---</p></source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="328"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="334"/>
         <source>Length: %1 %2</source>
         <translation>Délka: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="335"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="341"/>
         <source>, %1%2 %3, %4%5 %6</source>
         <translation>, %1%2 %3, %4%5 %6</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="343"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="349"/>
         <source>Time: %1</source>
         <translation>Čas: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="346"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="356"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="362"/>
         <source>, Speed: %1 %2</source>
         <translation>, Rychlost: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="353"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="359"/>
         <source>Moving: %1</source>
         <translation>Pohyb: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="362"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="368"/>
         <source>Start: %1</source>
         <translation>Začátek: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="367"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="373"/>
         <source>End: %1</source>
         <translation>Konec: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="371"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
         <source>Points: %1 (%2)</source>
         <translation>Body: %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="442"/>
         <source>Ele.: %1 %2</source>
         <translation>Výška: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
         <source> slope: %1%3 (%2%)</source>
         <translation> sklon: %1%3 (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="950"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="956"/>
         <source>Hide points.</source>
         <translation>Skrýt body.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="984"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="990"/>
         <source>Show points.</source>
         <translation>Ukázat body.</translation>
     </message>
@@ -3607,37 +3705,37 @@ Filename: %1</source>
         <translation type="obsolete"> sklon: %1°(%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="450"/>
         <source> speed: %1%2</source>
         <translation> rychlost: %1%2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="456"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Stoupání: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="460"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="466"/>
         <source>Ascend: - (-)</source>
         <translation>Stoupání: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="470"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="476"/>
         <source> Descend: - (-) </source>
         <translation> Klesání: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="491"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="497"/>
         <source> Moving: - (-) </source>
         <translation> Pohyb: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="466"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation> Klesání: %1%2 (%3%) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="267"/>
         <source>Changed trackpoints, sacrificed all previous data.</source>
         <translation>Změněny body stop. Obětována veškerá předchozí data.</translation>
     </message>
@@ -3646,155 +3744,163 @@ Filename: %1</source>
         <translation type="obsolete"> sklon: %1° (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="477"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="483"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Vzdálenost: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="487"/>
         <source>Dist.: - (-)</source>
         <translation>Vzdálenost: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="493"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation> Pohyb: %1%2 (%3%) </translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="95"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="96"/>
         <source>thin</source>
         <translation>Tenký</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="96"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="97"/>
         <source>normal</source>
         <translation>Obvyklý</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="97"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="98"/>
         <source>wide</source>
         <translation>Široký</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="98"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="99"/>
         <source>strong</source>
         <translation>Silný</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="144"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="44"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="164"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="103"/>
+        <source>_Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="409"/>
         <source>Area: %1%2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="452"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="461"/>
         <source>Changed area shape.</source>
         <translation>Změněn tvar oblasti.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="460"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="469"/>
         <source>Changed name.</source>
         <translation>Změněn název.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="466"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="475"/>
         <source>Changed border width.</source>
         <translation>Změněna šířka okraje.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="472"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="481"/>
         <source>Changed fill pattern.</source>
         <translation>Změněn vzor výplně.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="478"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="487"/>
         <source>Changed opacity.</source>
         <translation>Změněna neprůhlednost.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="484"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="493"/>
         <source>Changed comment.</source>
         <translation>Změněna poznámka.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="490"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="499"/>
         <source>Changed description.</source>
         <translation>Změněn popis.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="496"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1289"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="341"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1295"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="347"/>
         <source>Changed links</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="508"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1301"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="517"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1307"/>
         <source>Changed color</source>
         <translation>Změněná barva</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="219"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="225"/>
         <source>Elevation: %1 %2</source>
         <translation>Výška: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="227"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="233"/>
         <source>Proximity: %1 %2</source>
         <translation>Blízkost: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1271"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="292"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1277"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="298"/>
         <source>Changed name</source>
         <translation>Změněný název</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="813"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="821"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="839"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="882"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1009"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="173"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="819"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="827"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="845"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="888"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1015"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="179"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
         <location filename="../mouse/CMouseEditTrk.cpp" line="106"/>
         <source>Edit name...</source>
         <translation>Upravit název...</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="173"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="179"/>
         <source>Enter new waypoint name.</source>
         <translation>Zadat nový název pro cestovní bod.</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="299"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="305"/>
         <source>Changed position</source>
         <translation>Změněná poloha</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="305"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="311"/>
         <source>Changed elevation</source>
         <translation>Změněná výška</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="311"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="317"/>
         <source>Changed proximity</source>
         <translation>Změněná blízkost</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="323"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="329"/>
         <source>Changed icon</source>
         <translation>Změněná ikona</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1277"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="329"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1283"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="335"/>
         <source>Changed comment</source>
         <translation>Změněná poznámka</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1283"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="335"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1289"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="341"/>
         <source>Changed description</source>
         <translation>Změněný popis</translation>
     </message>
@@ -3830,11 +3936,11 @@ Filename: %1</source>
         <translation>Toto je souborový typ s neznámým druhem čáry. Nahlašte to, prosím!</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="813"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="821"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="839"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="882"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1009"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="819"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="827"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="845"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="888"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1015"/>
         <location filename="../mouse/CMouseEditTrk.cpp" line="106"/>
         <source>Enter new track name.</source>
         <translation>Zadat název nové stopy.</translation>
@@ -3845,19 +3951,19 @@ Filename: %1</source>
         <translation>Zadat název nové oblasti.</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderDatabase.cpp" line="26"/>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="28"/>
+        <location filename="../gis/db/CDBFolderDatabase.cpp" line="27"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
         <source>All your data grouped by folders.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="29"/>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="63"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="67"/>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
         <source>Lost & Found</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="58"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="62"/>
         <source>Lost & Found (%1)</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/src/locale/qmapshack_de.ts b/src/locale/qmapshack_de.ts
index 3df4860..7d75f5d 100644
--- a/src/locale/qmapshack_de.ts
+++ b/src/locale/qmapshack_de.ts
@@ -115,7 +115,7 @@
         <location filename="../gis/prj/CDetailsPrj.cpp" line="56"/>
         <location filename="../gis/prj/CDetailsPrj.cpp" line="84"/>
         <source>none</source>
-        <translation>keine</translation>
+        <translation>keiner</translation>
     </message>
     <message>
         <location filename="../gis/prj/CDetailsPrj.cpp" line="70"/>
@@ -125,17 +125,21 @@
     <message>
         <location filename="../gis/prj/CDetailsPrj.cpp" line="70"/>
         <source>Enter new project name.</source>
-        <translation>Geben Sie einen neuen Projektnamen ein.</translation>
+        <translation>Geben Sie einen Projektnamen ein.</translation>
+    </message>
+    <message>
+        <source>Enter new waypoint name.</source>
+        <translation type="obsolete">Name eingeben.</translation>
     </message>
     <message>
         <location filename="../gis/prj/CDetailsPrj.cpp" line="79"/>
         <source>Edit keywords...</source>
-        <translation>Schlagwörter bearbeiten...</translation>
+        <translation>Stichwörter bearbeiten...</translation>
     </message>
     <message>
         <location filename="../gis/prj/CDetailsPrj.cpp" line="79"/>
         <source>Enter keywords.</source>
-        <translation>Geben Sie einen neue Schlagwörter an.</translation>
+        <translation>Stichwörter eingeben.</translation>
     </message>
 </context>
 <context>
@@ -224,9 +228,12 @@
 <context>
     <name>CGisListDB</name>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="74"/>
-        <source>Add Database</source>
-        <translation>Datenbank hinzufügen</translation>
+        <source>Lost & Found</source>
+        <translation type="obsolete">Verloren & Gefunden</translation>
+    </message>
+    <message>
+        <source>Database</source>
+        <translation type="obsolete">Datenbank</translation>
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="77"/>
@@ -239,75 +246,101 @@
         <translation>Ordner löschen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="82"/>
+        <source>Delete</source>
+        <translation type="obsolete">Löschen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="74"/>
+        <source>Add Database</source>
+        <translation>Datenbank hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="81"/>
+        <location filename="../gis/CGisListDB.cpp" line="91"/>
+        <source>Delete Item</source>
+        <translation>Element löschen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="85"/>
         <source>Remove Database</source>
         <translation>Datenbank entfernen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
         <source>Empty</source>
-        <translation>Leeren</translation>
+        <translation>Leer</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="228"/>
+        <location filename="../gis/CGisListDB.cpp" line="254"/>
         <source>Remove database...</source>
         <translation>Datenbank entfernen...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="228"/>
+        <location filename="../gis/CGisListDB.cpp" line="254"/>
         <source>Do you realy want to remove '%1' from the list?</source>
-        <translation>Sind Sie sicher, dass Sie die Datenbank '%1' entfernen wollen?</translation>
+        <translation>Wollen Sie '%1' wirklich aus der Liste entfernen?</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="269"/>
+        <location filename="../gis/CGisListDB.cpp" line="295"/>
         <source>Delete database folder...</source>
-        <translation>Datenbankordner löschen... </translation>
+        <translation>Datenbankordner löschen...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="269"/>
+        <location filename="../gis/CGisListDB.cpp" line="295"/>
         <source>Are you sure you want to delete "%1" from the database?</source>
-        <translation>Sind Sie sicher, dass Sie den Ordner "%1" aus der Datenbank löschen wollen?</translation>
+        <translation>Sind Sie sicher, dass Sie "%1" aus der Datenbank löschen wollen? </translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="295"/>
+        <location filename="../gis/CGisListDB.cpp" line="321"/>
+        <location filename="../gis/CGisListDB.cpp" line="336"/>
         <source>Remove items...</source>
-        <translation>Elemente entfernen...</translation>
+        <translation>Element entfernen...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="295"/>
+        <location filename="../gis/CGisListDB.cpp" line="321"/>
         <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Sind Sie sicher, dass Sie alle Elemente aus Verloren&Gefunden löschen wollen? Das wird die Eelemente für immer löschen.</translation>
+        <translation>Sind Sie sicher, dass Sie alle Elemente in Verloren & Gefunden löschen wollen? Sie werden für immer entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="336"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Sind Sie sicher, dass Sie alle ausgewählten Elemente in Verloren & Gefunden löschen wollen? Sie werden für immer entfernt.</translation>
     </message>
 </context>
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="81"/>
+        <location filename="../gis/CGisListWks.cpp" line="83"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="80"/>
+        <location filename="../gis/CGisListWks.cpp" line="82"/>
         <source>Save As...</source>
-        <translation>Speichern als...</translation>
+        <translation>Speichern unter...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="82"/>
+        <location filename="../gis/CGisListWks.cpp" line="84"/>
         <source>Edit..</source>
-        <translation>Ändern...</translation>
+        <translation>Bearbeiten..</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="83"/>
+        <location filename="../gis/CGisListWks.cpp" line="85"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="89"/>
+        <location filename="../gis/CGisListWks.cpp" line="91"/>
         <source>Edit...</source>
         <translation>Ändern...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="90"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <source>Copy to...</source>
+        <translation>Kopieren nach...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="104"/>
         <source>Move Waypoint</source>
         <translation>Wegpunkt verschieben</translation>
     </message>
@@ -316,64 +349,64 @@
         <translation type="obsolete">Wegpunkt verschieben...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="105"/>
         <source>Proj. Waypoint...</source>
         <translation>Wegpunkt Projektion...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Track Profile</source>
         <translation>Trackprofil</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="95"/>
         <source>Select Range</source>
         <translation>Bereich wählen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Edit Track Points</source>
         <translation>Wegpunkte bearbeiten</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <location filename="../gis/CGisListWks.cpp" line="97"/>
         <source>Reverse Track</source>
         <translation>Track umkehren</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="96"/>
+        <location filename="../gis/CGisListWks.cpp" line="98"/>
         <source>Combine Tracks</source>
         <translation>Tracks verbinden</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="97"/>
+        <location filename="../gis/CGisListWks.cpp" line="117"/>
         <source>Edit Area Points</source>
         <translation>Flächenpunkte bearbeiten</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="100"/>
+        <location filename="../gis/CGisListWks.cpp" line="99"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="621"/>
+        <location filename="../gis/CGisListWks.cpp" line="567"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Ansicht speichern. Bitte warten.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="662"/>
+        <location filename="../gis/CGisListWks.cpp" line="608"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Ansicht laden. Bitte warten.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1070"/>
+        <location filename="../gis/CGisListWks.cpp" line="1003"/>
         <source>Close all projects...</source>
-        <translation>Alle Projekte schließen...</translation>
+        <translation>Alle Projkete schließen...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1070"/>
+        <location filename="../gis/CGisListWks.cpp" line="1003"/>
         <source>This will remove all projects from the workspace.</source>
-        <translation>Hiermit werden alle Projekte aus dem Arbeitsplatz entfernt.</translation>
+        <translation>Dies wird alle Projekte aus der Ansicht entfernen.</translation>
     </message>
     <message>
         <source>Add Empty Project</source>
@@ -393,7 +426,7 @@
     <message>
         <location filename="../grid/CGrid.cpp" line="62"/>
         <source>[Grid: %1%2%5 %3%4%5] </source>
-        <translation></translation>
+        <translation>[Gitter: %1%2%5 %3%4%5] </translation>
     </message>
     <message>
         <location filename="../grid/CGrid.cpp" line="66"/>
@@ -414,25 +447,25 @@
     <message>
         <location filename="../qlgt/CImportDatabase.cpp" line="29"/>
         <source>Import QLandkarte Database</source>
-        <translation>QLandkarte Datenbank importieren</translation>
+        <translation>Importiert eine QLandkarte Datenbank</translation>
     </message>
     <message>
         <location filename="../qlgt/CImportDatabase.cpp" line="74"/>
         <source>Select source database...</source>
-        <translation>Wählen Sie die Quelldatenbank aus...</translation>
+        <translation>Quelldatenbank wählen...</translation>
     </message>
     <message>
         <location filename="../qlgt/CImportDatabase.cpp" line="95"/>
         <source>Select target database...</source>
-        <translation>Wählen Sie die Zieldatenbank aus...</translation>
+        <translation>Zieldatenbank wählen...</translation>
     </message>
     <message>
         <source>Select source databse...</source>
-        <translation type="obsolete">Wählen Sie die Quelldatenbank aus...</translation>
+        <translation type="obsolete">Quelldatenbank wählen...</translation>
     </message>
     <message>
         <source>Select target databse...</source>
-        <translation type="obsolete">Wählen Sie die Zieldatenbank aus...</translation>
+        <translation type="obsolete">Zieldatenbank wählen...</translation>
     </message>
 </context>
 <context>
@@ -871,7 +904,7 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="360"/>
         <source>Man-made area</source>
-        <translation></translation>
+        <translation>Fabrikgelände</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="361"/>
@@ -992,7 +1025,7 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="395"/>
         <source>Orchard/Plantation</source>
-        <translation></translation>
+        <translation>Obstgarten/Plantage</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="396"/>
@@ -1007,7 +1040,7 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="398"/>
         <source>Flat</source>
-        <translation></translation>
+        <translation>Ebene</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="399"/>
@@ -1466,27 +1499,27 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="304"/>
         <source>Migrating database from version 4 to 5.</source>
-        <translation>Führe Datenbank von Version 4 zu Version 5 über.</translation>
+        <translation>Datenbank von Version 4 nach 5 migrieren.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="357"/>
         <source>Migrating database from version 5 to 6.</source>
-        <translation>Führe Datenbank von Version 5 zu Version 6 über.</translation>
+        <translation>Datenbank von Version 5 nach 6 migrieren.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="414"/>
         <source>Migrating database from version 6 to 7.</source>
-        <translation>Führe Datenbank von Version 6 zu Version 7 über.</translation>
+        <translation>Datenbank von Version 6 nach 7 migrieren.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="480"/>
         <source>Migrating database from version 7 to 8.</source>
-        <translation>Führe Datenbank von Version 7 zu Version 8 über.</translation>
+        <translation>Datenbank von Version 7 nach 8 migrieren.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="509"/>
         <source>Migrating database from version 8 to 9.</source>
-        <translation>Führe Datenbank von Version 8 zu Version 9 über.</translation>
+        <translation>Datenbank von Version 8 nach 9 migrieren.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="532"/>
@@ -1496,52 +1529,56 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="541"/>
         <source>Folders:          %1</source>
-        <translation>Ordner:.          %1</translation>
+        <translation>Ordner: %1</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="550"/>
         <source>Tracks:           %1</source>
-        <translation>Tracks:           %1</translation>
+        <translation>Tracks: %1</translation>
+    </message>
+    <message>
+        <source>Routes:           %1 (not supported yet)</source>
+        <translation type="obsolete">Routen: %1 (noch nicht unterstützt)</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="558"/>
         <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Routen:           %1 (Nur die Basisroute wird kopiert)</translation>
+        <translation>Routen:           %1 (Es wird nur die BAsisroute kopiert)</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="566"/>
         <source>Waypoints:        %1</source>
-        <translation>Wegpunkte:        %1</translation>
+        <translation>Wegpunkte: %1</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="574"/>
         <source>Overlays:         %1 (only area overlays will be converted to QMapShack)</source>
-        <translation>Overlays:         %1 (nur Flächen werden konvertiert)</translation>
+        <translation>Overlays:         %1 (Es werden nur Flächenoverlays nach QMapShack konvertiert)</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="581"/>
         <source>Diaries:          %1</source>
-        <translation>Tagebuch:         %1</translation>
+        <translation>Tagebücher:          %1</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="588"/>
         <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Kartenauswahl:   %1 (kann nicht konvertiert werden)</translation>
+        <translation>Kartenselektionen:   %1 (können nicht nach QMapShack konvertiert werden)</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
         <source>------ Start to convert database to %1------</source>
-        <translation>------ Start der Konvertierung der Datenbank zu %1------</translation>
+        <translation>------ Konvertierung der Datenbank %1 beginnt ------</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="598"/>
         <source>Failed to create target database.</source>
-        <translation>Die Zieldatenbank konnte nicht angelegt werden.</translation>
+        <translation>Erstellen der Zieldatenbank fehlgeschlagen.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="599"/>
         <source>------ Abort ------</source>
-        <translation>------ Abbruch ------</translation>
+        <translation>------ Abbrechen ------</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="627"/>
@@ -1562,7 +1599,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="663"/>
         <source>Imported %1 folders and %2 diaries</source>
-        <translation>%1 Ordner und %2 Tagebücher wurden imortiert</translation>
+        <translation>Importiert wurden %1 Ordner und %2 Tagebücher</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="669"/>
@@ -1572,17 +1609,17 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="694"/>
         <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>%1 Tracks, %2 Wegpunkte, %3 Routen, %4 Flächen wurden importiert</translation>
+        <translation>Importiert wurden %1 Tracks, %2 Wegpunkte, %3 Routen, %4 Flächen</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="695"/>
         <source>Import folders...</source>
-        <translation>Ordner importieren...</translation>
+        <translation>Importiere Ordner...</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtDb.cpp" line="747"/>
         <source>Overlay of type '%1' cant be converted</source>
-        <translation>Overlay des Typs '%1' kann nicht konvertiert werden</translation>
+        <translation>Das Overlay vomTyp '%1' kann nicht konvertiert werden</translation>
     </message>
 </context>
 <context>
@@ -1590,22 +1627,22 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../qlgt/CQmsDb.cpp" line="46"/>
         <source>Existing file...</source>
-        <translation>Datei existiert...</translation>
+        <translation>Vorhandene Datei...</translation>
     </message>
     <message>
         <location filename="../qlgt/CQmsDb.cpp" line="46"/>
         <source>Remove existing %1?</source>
-        <translation>Existierende Datei %1 löschen?</translation>
+        <translation>Entferne vorhandene %1?</translation>
     </message>
     <message>
         <location filename="../qlgt/CQmsDb.cpp" line="51"/>
         <source>Remove existing file %1</source>
-        <translation>Existierende Datei %1 gelöscht</translation>
+        <translation>Entferne vorhandene Datei %1</translation>
     </message>
     <message>
         <location filename="../qlgt/CQmsDb.cpp" line="158"/>
         <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: Eintrag %2 aus der QLGT Datenbank geht verloren</translation>
+        <translation>%1: verwerfe das Element mit der QLGT DB ID %2</translation>
     </message>
 </context>
 <context>
@@ -1646,7 +1683,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../gis/db/CSetupDatabase.cpp" line="71"/>
         <source>There is already a database with name '%1'</source>
-        <translation>Es gibt schon eine Datenbank mit dem namen '%1'</translation>
+        <translation>Es gibt schon eine Datenbank mit dem Namen '%1'</translation>
     </message>
     <message>
         <location filename="../gis/db/CSetupDatabase.cpp" line="85"/>
@@ -1669,7 +1706,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../gis/db/CSetupWorkspace.cpp" line="52"/>
         <source>Changes will become active after an application's restart.</source>
-        <translation>Änderungen werden nach einem Neustart der Anwendung erst aktiv.</translation>
+        <translation>Änderungen werden erst nach Neustart der Anwendung aktiv.</translation>
     </message>
 </context>
 <context>
@@ -1677,7 +1714,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../helpers/CTextEditWidget.cpp" line="73"/>
         <source>&Color...</source>
-        <translation>Farbe...</translation>
+        <translation>&Farbe...</translation>
     </message>
 </context>
 <context>
@@ -1789,12 +1826,12 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="20"/>
         <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Ändern Sie die Transparenz der Karte</p></body></html></translation>
+        <translation><html><head/><body><p>Ändert die Transparenz der Karte</p></body></html></translation>
     </message>
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="32"/>
         <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als minimale Skalierung zu benutzen.</p></body></html></translation>
+        <translation><html><head/><body><p>Klicken, um die aktuelle Skalierung als minimale Skalierung zu benutzen.</p></body></html></translation>
     </message>
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="35"/>
@@ -1805,7 +1842,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="56"/>
         <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Stellen Sie den Skalierungsbereich ein, in dem die Karte sichtbar ist. Benutzen Sie die beiden Knöpfe links und rechts um die minimale und maximale Skalierung einzustellen.</p></body></html></translation>
+        <translation><html><head/><body><p>Stellt den Skalierungsbereich ein, in dem die Karte sichtbar ist. Benutzen Sie die beiden Knöpfe links und rechts um die minimale und maximale Skalierung einzustellen.</p></body></html></translation>
     </message>
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="69"/>
@@ -1965,7 +2002,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../gis/prj/IDetailsPrj.ui" line="68"/>
         <source>Keywords:</source>
-        <translation>Schlagwörter:</translation>
+        <translation>Stichwörter:</translation>
     </message>
 </context>
 <context>
@@ -2165,19 +2202,19 @@ ist keine gültige Koordinatensystemdefinition:
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="62"/>
         <source>State</source>
-        <translation>Status</translation>
+        <translation type="obsolete">Status</translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="94"/>
+        <location filename="../gis/IGisWidget.ui" line="65"/>
+        <location filename="../gis/IGisWidget.ui" line="97"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="127"/>
+        <location filename="../gis/IGisWidget.ui" line="130"/>
         <source>To add a database do a right click on the database list above.</source>
-        <translation>Um eine Datenbank hinzuzufügen, müssen Sie mit der rechten Maustaste auf die obige Datenbanklist klicken.</translation>
+        <translation>Um eine Datenbank hinzuzufügen rechtsklicken Sie oben auf die Datenbankliste.</translation>
     </message>
 </context>
 <context>
@@ -2258,7 +2295,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../qlgt/IImportDatabase.ui" line="102"/>
         <source>Start</source>
-        <translation>Los</translation>
+        <translation></translation>
     </message>
 </context>
 <context>
@@ -2279,7 +2316,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../helpers/ILinksDialog.ui" line="14"/>
         <source>Links...</source>
-        <translation>Verbindungen...</translation>
+        <translation>Verknüpfungen...</translation>
     </message>
     <message>
         <location filename="../helpers/ILinksDialog.ui" line="23"/>
@@ -2294,8 +2331,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../helpers/ILinksDialog.ui" line="33"/>
         <source>Uri</source>
-        <translatorcomment>?</translatorcomment>
-        <translation>URL</translation>
+        <translation>URI</translation>
     </message>
     <message>
         <location filename="../helpers/ILinksDialog.ui" line="43"/>
@@ -2339,7 +2375,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="111"/>
         <source>Tool</source>
-        <translation>Werkzeuge</translation>
+        <translation>Werkzeug</translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="128"/>
@@ -2364,7 +2400,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="214"/>
         <source>Ctrl+T</source>
-        <translation>Crtl+T</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="226"/>
@@ -2384,7 +2420,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="250"/>
         <source>Ctrl+G</source>
-        <translation>Crtl+G</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="259"/>
@@ -2394,7 +2430,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="262"/>
         <source>Ctrl+Alt+G</source>
-        <translation>Ctrl+Alt+G</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="274"/>
@@ -2455,7 +2491,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="373"/>
         <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="382"/>
@@ -2470,7 +2506,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="388"/>
         <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="397"/>
@@ -2500,32 +2536,36 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IMainWindow.ui" line="439"/>
         <source>Setup Units</source>
-        <translation>Einheiten einrichten</translation>
+        <translation>Einheiten einstellen</translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="448"/>
         <source>Setup Workspace</source>
-        <translation>Arbeitsplatz einstellen</translation>
+        <translation>Ansicht einstellen</translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="451"/>
         <source>Setup save on exit.</source>
-        <translation>Speichern beim Verlassen.</translation>
+        <translation>Speichert Einstellungen beim Beenden.</translation>
     </message>
     <message>
         <location filename="../IMainWindow.ui" line="460"/>
         <source>Import Database from QLandkarte</source>
-        <translation>Datenbank von QLandkarte importieren</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="463"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>QLandkarte GT Datenbank importieren.</translation>
+        <translation>Datenbankimport aus QLandkarte</translation>
     </message>
     <message>
         <source>Setup Database</source>
         <translation type="obsolete">Datenbank einrichten</translation>
     </message>
+    <message>
+        <source>Import Database</source>
+        <translation type="obsolete">Datenbank importieren</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="463"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>QLandkarte Gt Datenbank importieren</translation>
+    </message>
 </context>
 <context>
     <name>IMapList</name>
@@ -2817,13 +2857,19 @@ sein</translation>
     </message>
     <message>
         <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="51"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="69"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="65"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="83"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="98"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="51"/>
+        <source>Copy area into another project.</source>
+        <translation>Fläche in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="112"/>
         <source>TextLabel</source>
         <translation>Bezeichnung</translation>
     </message>
@@ -2852,7 +2898,7 @@ sein</translation>
     <message>
         <location filename="../mouse/IScrOptPoint.ui" line="49"/>
         <source>Select a range of points.</source>
-        <translation>Punktebereich wählen.</translation>
+        <translation>Wähle einen Punktebereich.</translation>
     </message>
     <message>
         <location filename="../mouse/IScrOptPoint.ui" line="63"/>
@@ -2945,21 +2991,27 @@ sein</translation>
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="28"/>
         <source><html><head/><body><p>View details &amp; Edit</p></body></html></source>
-        <translation><html><head/><body><p>Details anzeigen &amp; Bearbeiten</p></body></html></translation>
+        <translation><html><head/><body><p>Details anzeigen; Bearbeiten</p></body></html></translation>
     </message>
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="31"/>
         <location filename="../gis/rte/IScrOptRte.ui" line="45"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="59"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="42"/>
+        <source>Copy route into another project.</source>
+        <translation>Route in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="56"/>
         <source><html><head/><body><p>Delete</p></body></html></source>
         <translation><html><head/><body><p>Löschen</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="85"/>
         <source>TextLabel</source>
         <translation>Bezeichnung</translation>
     </message>
@@ -2977,37 +3029,42 @@ sein</translation>
         <translation>Detailansicht &amp; Trackeigenschaften bearbeiten.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Track in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
         <source>Show on-screen profile and detailed information about points.</source>
         <translation>Zeigt das Profil und detaillierte Informationen der Punkte.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
         <source>Cut track at selected point into two tracks.</source>
         <translation>Teilt den Track am selektierten Punkt in zwei Teile.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
         <source>Edit position of track points.</source>
         <translation>Position von Trackpunkten bearbeiten.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
         <source>Select a range of points.</source>
-        <translation>Einen Punktebereich wählen.</translation>
+        <translation>Wähle einen Punktebereich.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
         <source>Reverse track.</source>
         <translation>Track umkehren.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
         <source>Combine tracks.</source>
         <translation>Tracks verbinden.</translation>
     </message>
@@ -3022,12 +3079,13 @@ sein</translation>
     <message>
         <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="74"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="95"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="165"/>
         <source>...</source>
         <translation></translation>
     </message>
@@ -3048,7 +3106,7 @@ sein</translation>
         <translation type="obsolete"><html><head/><body><p>Bearbeiten der Position von Trackpunkten.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="177"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="191"/>
         <source>TextLabel</source>
         <translation>Bezeichnung</translation>
     </message>
@@ -3068,31 +3126,88 @@ sein</translation>
     <message>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="87"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Wegpunkt in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
         <source><html><head/><body><p>Delete</p></body></html></source>
         <translation><html><head/><body><p>Löschen</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
         <source><html><head/><body><p>Move waypoint to a new location.</p></body></html></source>
         <translation><html><head/><body><p>Wegpunkt verschieben.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="112"/>
         <source><html><head/><body><p>Clone waypoint and move clone a given distance and angle.</p></body></html></source>
         <translation><html><head/><body><p>Wegpunkt kopieren und unter Angabe von Entfernung und Winkel verschieben.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="145"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="159"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Elemente kopieren...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="23"/>
+        <source>Replace existing item</source>
+        <translation>Bestehendes Element ersetzen</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="30"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="40"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="67"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="77"/>
         <source>TextLabel</source>
         <translation>Bezeichnung</translation>
     </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="60"/>
+        <source>Do not copy item</source>
+        <translation>Element nicht kopieren</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="97"/>
+        <source>Create a clone</source>
+        <translation>Einen Klon erstellen</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="104"/>
+        <source>Replace with:</source>
+        <translation>Ersetzen mit:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="111"/>
+        <source>Keep item:</source>
+        <translation>Element behalten:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="118"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Der Name das Klones wird mit '_Klon' erweitert</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="132"/>
+        <source>And for all other items, too.</source>
+        <translation>Und auch für alle weiteren Elemente.</translation>
+    </message>
 </context>
 <context>
     <name>ISelectProjectDialog</name>
@@ -3181,7 +3296,7 @@ sein</translation>
     <message>
         <location filename="../gis/db/ISetupDatabase.ui" line="60"/>
         <source>Open existing database.</source>
-        <translation>Existierende Datenbank öffnen.</translation>
+        <translation>Öffne eine vorhandene DAtenbank.</translation>
     </message>
 </context>
 <context>
@@ -3209,7 +3324,7 @@ sein</translation>
     <message>
         <location filename="../gis/db/ISetupFolder.ui" line="59"/>
         <source>Other</source>
-        <translation>Andere</translation>
+        <translation>Sonstige</translation>
     </message>
 </context>
 <context>
@@ -3222,7 +3337,7 @@ sein</translation>
     <message>
         <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
         <source>save workspace on exit, and every</source>
-        <translation>Den Arbeitsplatz beim Beenden speichern, und alle</translation>
+        <translation>Ansicht beim Beenden speichern, und alle</translation>
     </message>
     <message>
         <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
@@ -3262,7 +3377,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="266"/>
         <source>Ctrl+Z</source>
-        <translation>Strg+Z</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="275"/>
@@ -3272,7 +3387,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="278"/>
         <source>Ctrl+Shift+Z</source>
-        <translation>Strg+Shift+Z</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="287"/>
@@ -3282,7 +3397,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="290"/>
         <source>Ctrl+X</source>
-        <translation>Strg+X</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="299"/>
@@ -3292,7 +3407,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="302"/>
         <source>Ctrl+C</source>
-        <translation>Strg+C</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="311"/>
@@ -3302,7 +3417,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="314"/>
         <source>Ctrl+V</source>
-        <translation>Strg+V</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="326"/>
@@ -3312,7 +3427,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="329"/>
         <source>Ctrl+L</source>
-        <translation>Strg+L</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="341"/>
@@ -3322,7 +3437,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="344"/>
         <source>Ctrl+R</source>
-        <translation>Strg+R</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="356"/>
@@ -3332,7 +3447,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="359"/>
         <source>Ctrl+E</source>
-        <translation>Strg+E</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="371"/>
@@ -3342,7 +3457,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="374"/>
         <source>Ctrl+J</source>
-        <translation>Strg+J</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="386"/>
@@ -3352,7 +3467,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="389"/>
         <source>Ctrl+U</source>
-        <translation>Strg+U</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="401"/>
@@ -3362,7 +3477,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="404"/>
         <source>Ctrl+B</source>
-        <translation>Strg+B</translation>
+        <translation></translation>
     </message>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="416"/>
@@ -3372,7 +3487,7 @@ sein</translation>
     <message>
         <location filename="../helpers/ITextEditWidget.ui" line="419"/>
         <source>Ctrl+I</source>
-        <translation>Strg+I</translation>
+        <translation></translation>
     </message>
 </context>
 <context>
@@ -3487,70 +3602,76 @@ Areas: %1</source>
         <translation type="obsolete">Fläche: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="163"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="168"/>
         <source><br/>
 Filename: %1</source>
         <translation><br/>
 Dateiname: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="180"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="185"/>
         <source>Waypoints: %1</source>
         <translation>Wegpunkte: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="184"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="189"/>
         <source>Tracks: %1</source>
         <translation>Tracks: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="188"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="193"/>
         <source>Routes: %1</source>
         <translation>Routen: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="192"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="197"/>
         <source>Areas: %1</source>
         <translation>Flächen: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="250"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="255"/>
         <source>Are you sure you want to delete '%1' from project '%2'?</source>
         <translation>Sind Sie sicher, dass Sie '%1' aus dem Projekt '%2' löschen wollen? </translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="251"/>
+        <location filename="../gis/CGisListDB.cpp" line="410"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Sind Sie sicher, dass Sie '%1' aus dem Ordner '%2' löschen wollen? </translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="411"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Delete...</source>
         <translation>Löschen...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="53"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="47"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="135"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="136"/>
         <source>Failed to open...</source>
         <translation>Öffnen fehlgeschlagen...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="53"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="47"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="135"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="136"/>
         <source>Failed to open %1</source>
         <translation>Öffnen fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="124"/>
+        <location filename="../gis/db/CDBProject.cpp" line="125"/>
         <location filename="../gis/gpx/CGpxProject.cpp" line="151"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="90"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="91"/>
         <source>Save GIS data to...</source>
         <translation>GIS Daten speichern in...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="153"/>
+        <location filename="../gis/db/CDBProject.cpp" line="154"/>
         <source>Save ...</source>
-        <translation>Speichern...</translation>
+        <translation>Speichern ...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="153"/>
+        <location filename="../gis/db/CDBProject.cpp" line="154"/>
         <source>Abort save</source>
         <translation>Speichern abbrechen</translation>
     </message>
@@ -3573,7 +3694,7 @@ Dateiname: %1</translation>
         <location filename="../gis/gpx/CGpxProject.cpp" line="289"/>
         <location filename="../gis/gpx/CGpxProject.cpp" line="299"/>
         <source>Saveing GIS data failed...</source>
-        <translation>Speichern der GIS DAten fehlgeschlagen...</translation>
+        <translation>Speichern der GIS Daten fehlgeschlagen...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="299"/>
@@ -3581,72 +3702,72 @@ Dateiname: %1</translation>
         <translation>Datei %1' konnte nicht gespeichert werden</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="267"/>
         <source>Changed trackpoints, sacrificed all previous data.</source>
         <translation>Wegpunkte geändert, alle vorherigen Daten sind verloren.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="328"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="334"/>
         <source>Length: %1 %2</source>
         <translation>Länge: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="335"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="341"/>
         <source>, %1%2 %3, %4%5 %6</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="343"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="349"/>
         <source>Time: %1</source>
         <translation>Zeit: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="346"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="356"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="362"/>
         <source>, Speed: %1 %2</source>
         <translation>, Geschw.: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="353"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="359"/>
         <source>Moving: %1</source>
         <translation>Bewegung: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="362"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="368"/>
         <source>Start: %1</source>
         <translation>Beginn: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="367"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="373"/>
         <source>End: %1</source>
         <translation>Ende: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="371"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
         <source>Points: %1 (%2)</source>
         <translation>Punkte: %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="442"/>
         <source>Ele.: %1 %2</source>
         <translation>Höhe: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
         <source> slope: %1%3 (%2%)</source>
-        <translation>Neigung: %1%3 (%2%)</translation>
+        <translation> Neigung: %1%3 (%2%)</translation>
     </message>
     <message>
         <source> slope: %1° (%2%)</source>
         <translation type="obsolete"> Neigung: %1° (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="950"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="956"/>
         <source>Hide points.</source>
         <translation>Punkte ausblenden.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="984"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="990"/>
         <source>Show points.</source>
         <translation>Punkte anzeigen.</translation>
     </message>
@@ -3655,185 +3776,193 @@ Dateiname: %1</translation>
         <translation type="obsolete">Neigung: %1°(%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="450"/>
         <source> speed: %1%2</source>
         <translation>Geschwindigkeit: %1%2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="456"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Anstieg: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="460"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="466"/>
         <source>Ascend: - (-)</source>
         <translation>Anstieg: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="466"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation> Abstieg: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="470"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="476"/>
         <source> Descend: - (-) </source>
         <translation> Abstieg: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="477"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="483"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Entf.: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="487"/>
         <source>Dist.: - (-)</source>
         <translation>Entf.: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="493"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation>Bewegung: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="491"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="497"/>
         <source> Moving: - (-) </source>
         <translation> Bewegung: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="95"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="96"/>
         <source>thin</source>
         <translation>dünn</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="96"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="97"/>
         <source>normal</source>
         <translation>normal</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="97"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="98"/>
         <source>wide</source>
         <translation>weit</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="98"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="99"/>
         <source>strong</source>
         <translation>stark</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="144"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="44"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="164"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="103"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="409"/>
         <source>Area: %1%2</source>
         <translation>Fläche: %1%2</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="452"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="461"/>
         <source>Changed area shape.</source>
         <translation>Flächenform geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="460"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="469"/>
         <source>Changed name.</source>
         <translation>Name geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="466"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="475"/>
         <source>Changed border width.</source>
-        <translation>Umrnadungsbreite geändert.</translation>
+        <translation>Umrandungsbreite geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="472"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="481"/>
         <source>Changed fill pattern.</source>
         <translation>Füllung geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="478"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="487"/>
         <source>Changed opacity.</source>
         <translation>Durchsichtigkeit geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="484"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="493"/>
         <source>Changed comment.</source>
         <translation>Kommentar geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="490"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="499"/>
         <source>Changed description.</source>
         <translation>Beschreibung geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="496"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1289"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="341"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1295"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="347"/>
         <source>Changed links</source>
-        <translation>Geänderte Verbindungen</translation>
+        <translation>Geänderte Verknüpfungen</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="508"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1301"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="517"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1307"/>
         <source>Changed color</source>
         <translation>Farbe geändert</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="813"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="821"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="839"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="882"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1009"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="173"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="819"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="827"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="845"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="888"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1015"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="179"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
         <location filename="../mouse/CMouseEditTrk.cpp" line="106"/>
         <source>Edit name...</source>
         <translation>Name bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="173"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="179"/>
         <source>Enter new waypoint name.</source>
         <translation>Name eingeben.</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="219"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="225"/>
         <source>Elevation: %1 %2</source>
         <translation>Höhe: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="227"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="233"/>
         <source>Proximity: %1 %2</source>
         <translation>Abstand: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1271"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="292"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1277"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="298"/>
         <source>Changed name</source>
         <translation>Name geändert</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="299"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="305"/>
         <source>Changed position</source>
         <translation>Position geändert</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="305"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="311"/>
         <source>Changed elevation</source>
         <translation>Höhe geändert</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="311"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="317"/>
         <source>Changed proximity</source>
         <translation>Abstandsalarm geändert</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="323"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="329"/>
         <source>Changed icon</source>
         <translation>Symbol geändert</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1277"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="329"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1283"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="335"/>
         <source>Changed comment</source>
         <translation>Kommentar geändert</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1283"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="335"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1289"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="341"/>
         <source>Changed description</source>
         <translation>Beschreibung geändert</translation>
     </message>
@@ -3869,60 +3998,60 @@ Dateiname: %1</translation>
         <translation>Dieser Dateityp hat eine unbekannte Polyline Kodierung. Bitte mitteilen!</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="284"/>
+        <location filename="../gis/IGisItem.cpp" line="285"/>
         <source>Initial version.</source>
         <translation>Erstversion.</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="368"/>
+        <location filename="../gis/IGisItem.cpp" line="369"/>
         <source>This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press'Ok'.</source>
         <translation>Diese Element ist vermutlich schreibgeschützt, da nicht mit QMapShack erstellt. Normalerweise sollten importierte Daten nicht geändert werden. Wenn doch, drücken Sie 'OK'.</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="369"/>
+        <location filename="../gis/IGisItem.cpp" line="370"/>
         <source>Read Only Mode...</source>
         <translation>Schreibgeschützt...</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="558"/>
+        <location filename="../gis/IGisItem.cpp" line="559"/>
         <source><h4>Comment:</h4></source>
         <translation><h4>Kommentar:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="561"/>
+        <location filename="../gis/IGisItem.cpp" line="562"/>
         <source><p>--- no comment ---</p></source>
         <translation><p>--- kein Kommentar ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="568"/>
-        <location filename="../gis/IGisItem.cpp" line="598"/>
+        <location filename="../gis/IGisItem.cpp" line="569"/>
+        <location filename="../gis/IGisItem.cpp" line="599"/>
         <source><h4>Description:</h4></source>
         <translation><h4>Beschreibung:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="571"/>
-        <location filename="../gis/IGisItem.cpp" line="601"/>
+        <location filename="../gis/IGisItem.cpp" line="572"/>
+        <location filename="../gis/IGisItem.cpp" line="602"/>
         <source><p>--- no description ---</p></source>
         <translation><p>--- keine Beschreibung ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="578"/>
-        <location filename="../gis/IGisItem.cpp" line="608"/>
+        <location filename="../gis/IGisItem.cpp" line="579"/>
+        <location filename="../gis/IGisItem.cpp" line="609"/>
         <source><h4>Links:</h4></source>
-        <translation><h4>Verbindungen:</h4></translation>
+        <translation><h4>Verknüpfungen:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="581"/>
-        <location filename="../gis/IGisItem.cpp" line="611"/>
+        <location filename="../gis/IGisItem.cpp" line="582"/>
+        <location filename="../gis/IGisItem.cpp" line="612"/>
         <source><p>--- no links ---</p></source>
-        <translation><h4>keine Verbindungen:</h4></translation>
+        <translation><p>--- keine Verknüpfungen ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="813"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="821"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="839"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="882"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1009"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="819"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="827"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="845"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="888"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1015"/>
         <location filename="../mouse/CMouseEditTrk.cpp" line="106"/>
         <source>Enter new track name.</source>
         <translation>Name eingeben.</translation>
@@ -3933,26 +4062,30 @@ Dateiname: %1</translation>
         <translation>Name eingeben.</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderDatabase.cpp" line="26"/>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="28"/>
+        <location filename="../gis/db/CDBFolderDatabase.cpp" line="27"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
         <source>All your data grouped by folders.</source>
-        <translation>Alle Ihre Daten nach Ordnern gruppiert.</translation>
+        <translation>Alle Daten nach Ordnern gruppiert.</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="29"/>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="63"/>
+        <source>Database</source>
+        <translation type="obsolete">Datenbank</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="67"/>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
         <source>Lost & Found</source>
         <translation>Verloren & Gefunden</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="58"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="62"/>
         <source>Lost & Found (%1)</source>
         <translation>Verloren & Gefunden (%1)</translation>
     </message>
     <message>
         <location filename="../qlgt/converter.cpp" line="196"/>
         <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Flaginformation aus dem QLandkarte GT track kopiert</translation>
+        <translation>Kopiert das Informationsflag aus dem QLandkarte GT Track</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtTrack.cpp" line="158"/>
@@ -3960,23 +4093,23 @@ Dateiname: %1</translation>
         <location filename="../qlgt/CQlgtTrack.cpp" line="259"/>
         <location filename="../qlgt/CQlgtTrack.cpp" line="285"/>
         <source>Corrupt track ...</source>
-        <translation>Korrupter Track...</translation>
+        <translation>Beschädigter Track ...</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtTrack.cpp" line="158"/>
         <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation></translation>
+        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der Trackpunkte der Trainingsdaten.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtTrack.cpp" line="212"/>
         <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation></translation>
+        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der erweiterten Trackpunkte.</translation>
     </message>
     <message>
         <location filename="../qlgt/CQlgtTrack.cpp" line="259"/>
         <location filename="../qlgt/CQlgtTrack.cpp" line="285"/>
         <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation></translation>
+        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der ausgeblendeten Trackpunkte.</translation>
     </message>
 </context>
 </TS>
diff --git a/src/locale/qmapshack_es.ts b/src/locale/qmapshack_es.ts
index 5958546..1e8dda3 100644
--- a/src/locale/qmapshack_es.ts
+++ b/src/locale/qmapshack_es.ts
@@ -223,135 +223,152 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="82"/>
-        <source>Remove Database</source>
+        <location filename="../gis/CGisListDB.cpp" line="81"/>
+        <location filename="../gis/CGisListDB.cpp" line="91"/>
+        <source>Delete Item</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="85"/>
+        <source>Remove Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
         <source>Empty</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="228"/>
+        <location filename="../gis/CGisListDB.cpp" line="254"/>
         <source>Remove database...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="228"/>
+        <location filename="../gis/CGisListDB.cpp" line="254"/>
         <source>Do you realy want to remove '%1' from the list?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="269"/>
+        <location filename="../gis/CGisListDB.cpp" line="295"/>
         <source>Delete database folder...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="269"/>
+        <location filename="../gis/CGisListDB.cpp" line="295"/>
         <source>Are you sure you want to delete "%1" from the database?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="295"/>
+        <location filename="../gis/CGisListDB.cpp" line="321"/>
+        <location filename="../gis/CGisListDB.cpp" line="336"/>
         <source>Remove items...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListDB.cpp" line="295"/>
+        <location filename="../gis/CGisListDB.cpp" line="321"/>
         <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="336"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="81"/>
+        <location filename="../gis/CGisListWks.cpp" line="83"/>
         <source>Save</source>
         <translation>Guardar</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="80"/>
+        <location filename="../gis/CGisListWks.cpp" line="82"/>
         <source>Save As...</source>
         <translation>Guardar Como...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="82"/>
+        <location filename="../gis/CGisListWks.cpp" line="84"/>
         <source>Edit..</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="83"/>
+        <location filename="../gis/CGisListWks.cpp" line="85"/>
         <source>Close</source>
         <translation>Cerrar</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="89"/>
+        <location filename="../gis/CGisListWks.cpp" line="91"/>
         <source>Edit...</source>
         <translation>Editar...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="90"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <source>Copy to...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="104"/>
         <source>Move Waypoint</source>
         <translation>Mover Waypoint</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="105"/>
         <source>Proj. Waypoint...</source>
         <translation>Proyectar Waypoint...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Track Profile</source>
         <translation>Perfil del Track</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="95"/>
         <source>Select Range</source>
         <translation>Seleccionar Rango</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Edit Track Points</source>
         <translation>Editar Puntos del Track</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <location filename="../gis/CGisListWks.cpp" line="97"/>
         <source>Reverse Track</source>
         <translation>Invertir Track</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="96"/>
+        <location filename="../gis/CGisListWks.cpp" line="98"/>
         <source>Combine Tracks</source>
         <translation>Combinar Tracks</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="97"/>
+        <location filename="../gis/CGisListWks.cpp" line="117"/>
         <source>Edit Area Points</source>
         <translation>Editar Puntos del Área</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="100"/>
+        <location filename="../gis/CGisListWks.cpp" line="99"/>
         <source>Delete</source>
         <translation>Borrar</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="621"/>
+        <location filename="../gis/CGisListWks.cpp" line="567"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Guardando espacio de trabajo. Por favor espere.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="662"/>
+        <location filename="../gis/CGisListWks.cpp" line="608"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Cargando espacio de trabajo. Por favor espere.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1070"/>
+        <location filename="../gis/CGisListWks.cpp" line="1003"/>
         <source>Close all projects...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1070"/>
+        <location filename="../gis/CGisListWks.cpp" line="1003"/>
         <source>This will remove all projects from the workspace.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2082,17 +2099,13 @@ no es una definición de sistema de coordenadas válido:
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="62"/>
-        <source>State</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWidget.ui" line="94"/>
+        <location filename="../gis/IGisWidget.ui" line="65"/>
+        <location filename="../gis/IGisWidget.ui" line="97"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/IGisWidget.ui" line="127"/>
+        <location filename="../gis/IGisWidget.ui" line="130"/>
         <source>To add a database do a right click on the database list above.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2728,13 +2741,19 @@ o
     </message>
     <message>
         <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="51"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="69"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="65"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="83"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="98"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="51"/>
+        <source>Copy area into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="112"/>
         <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2849,16 +2868,22 @@ o
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="31"/>
         <location filename="../gis/rte/IScrOptRte.ui" line="45"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="59"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../gis/rte/IScrOptRte.ui" line="42"/>
+        <source>Copy route into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="56"/>
         <source><html><head/><body><p>Delete</p></body></html></source>
         <translation><html><head/><body><p>Borrar</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="85"/>
         <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2876,54 +2901,60 @@ o
         <translation>Ver detalles &amp; Editar las propiedades del track.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
         <source>Delete</source>
         <translation>Borrar.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
         <source>Show on-screen profile and detailed information about points.</source>
         <translation>Mostrar el perfil en pantalla e información detallada de los puntos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
         <source>Cut track at selected point into two tracks.</source>
         <translation>Partir el track en dos en el punto seleccionado.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
         <source>Edit position of track points.</source>
         <translation>Editar la posición de los puntos del track.</translation>
     </message>
     <message>
         <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="74"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="95"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
         <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="165"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
         <source>Select a range of points.</source>
         <translation type="unfinished">Selecciones un rango de puntos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
         <source>Reverse track.</source>
         <translation>Invertir track.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
         <source>Combine tracks.</source>
         <translation>Combinar tracks.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="177"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="191"/>
         <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2943,31 +2974,88 @@ o
     <message>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="87"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
         <source><html><head/><body><p>Delete</p></body></html></source>
         <translation><html><head/><body><p>Borrar</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
         <source><html><head/><body><p>Move waypoint to a new location.</p></body></html></source>
         <translation><html><head/><body><p>Mover el waypoint a una nueva ubicación.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="112"/>
         <source><html><head/><body><p>Clone waypoint and move clone a given distance and angle.</p></body></html></source>
         <translation><html><head/><body><p>Clonar el waypoibt y moverlo una cierta distancia y ángulo.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="145"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="159"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="23"/>
+        <source>Replace existing item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="30"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="40"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="67"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="77"/>
         <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="60"/>
+        <source>Do not copy item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="97"/>
+        <source>Create a clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="104"/>
+        <source>Replace with:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="111"/>
+        <source>Keep item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="118"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="132"/>
+        <source>And for all other items, too.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ISelectProjectDialog</name>
@@ -3371,69 +3459,75 @@ Areas: %1</source>
 Áreas: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="163"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="168"/>
         <source><br/>
 Filename: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="180"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="185"/>
         <source>Waypoints: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="184"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="189"/>
         <source>Tracks: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="188"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="193"/>
         <source>Routes: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="192"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="197"/>
         <source>Areas: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="250"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="255"/>
         <source>Are you sure you want to delete '%1' from project '%2'?</source>
         <translation>¿Está seguro de que quiere borrar '%1' del proyecto '%2'?</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="251"/>
+        <location filename="../gis/CGisListDB.cpp" line="410"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="411"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Delete...</source>
         <translation>Borrar...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="53"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="47"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="135"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="136"/>
         <source>Failed to open...</source>
         <translation>Fallo al abrir...</translation>
     </message>
     <message>
         <location filename="../gis/gpx/CGpxProject.cpp" line="53"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="47"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="135"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="136"/>
         <source>Failed to open %1</source>
         <translation>Fallo al abrir %1</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="124"/>
+        <location filename="../gis/db/CDBProject.cpp" line="125"/>
         <location filename="../gis/gpx/CGpxProject.cpp" line="151"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="90"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="91"/>
         <source>Save GIS data to...</source>
         <translation>Guardar los datos GIS en...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="153"/>
+        <location filename="../gis/db/CDBProject.cpp" line="154"/>
         <source>Save ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="153"/>
+        <location filename="../gis/db/CDBProject.cpp" line="154"/>
         <source>Abort save</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3464,251 +3558,259 @@ Filename: %1</source>
         <translation>Fallo al escribir en el archivo '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="328"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="334"/>
         <source>Length: %1 %2</source>
         <translation>Longitud: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="335"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="341"/>
         <source>, %1%2 %3, %4%5 %6</source>
         <translation>, %1%2 %3, %4%5 %6</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="343"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="349"/>
         <source>Time: %1</source>
         <translation>Tiempo: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="346"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="356"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="362"/>
         <source>, Speed: %1 %2</source>
         <translation>, Velocidad: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="353"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="359"/>
         <source>Moving: %1</source>
         <translation>En movimiento: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="362"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="368"/>
         <source>Start: %1</source>
         <translation>Comienzo: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="367"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="373"/>
         <source>End: %1</source>
         <translation>Final: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="371"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
         <source>Points: %1 (%2)</source>
         <translation>Puntos: %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="442"/>
         <source>Ele.: %1 %2</source>
         <translation>Altitud: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
         <source> slope: %1%3 (%2%)</source>
         <translation> pendiente: %1%3 (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="450"/>
         <source> speed: %1%2</source>
         <translation> velocidad: %1%2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="456"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Ascenso: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="460"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="466"/>
         <source>Ascend: - (-)</source>
         <translation>Ascenso: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="470"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="476"/>
         <source> Descend: - (-) </source>
         <translation> Descenso: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="491"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="497"/>
         <source> Moving: - (-) </source>
         <translation> En movimiento: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="950"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="956"/>
         <source>Hide points.</source>
         <translation>Ocultar puntos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="984"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="990"/>
         <source>Show points.</source>
         <translation>Mostrar puntos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="466"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation> Descenso: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="267"/>
         <source>Changed trackpoints, sacrificed all previous data.</source>
         <translation>Se cambiaron los puntos del track, y descartados todos los datos previos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="477"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="483"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Distancia: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="487"/>
         <source>Dist.: - (-)</source>
         <translation>Dist.: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="493"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation> En movimiento: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="95"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="96"/>
         <source>thin</source>
         <translation>fino</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="96"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="97"/>
         <source>normal</source>
         <translation>normal</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="97"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="98"/>
         <source>wide</source>
         <translation>ancho</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="98"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="99"/>
         <source>strong</source>
         <translation>intenso</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="144"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="44"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="164"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="103"/>
+        <source>_Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="409"/>
         <source>Area: %1%2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="452"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="461"/>
         <source>Changed area shape.</source>
         <translation>Se cambió la forma del área.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="460"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="469"/>
         <source>Changed name.</source>
         <translation>Se cambió el nombre.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="466"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="475"/>
         <source>Changed border width.</source>
         <translation>Se cambió la anchura del borde.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="472"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="481"/>
         <source>Changed fill pattern.</source>
         <translation>Se cambió el patró de relleno.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="478"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="487"/>
         <source>Changed opacity.</source>
         <translation>Se cambió la opacidad.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="484"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="493"/>
         <source>Changed comment.</source>
         <translation>Se cambió el comentario.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="490"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="499"/>
         <source>Changed description.</source>
         <translation>Se cambió la descripción.</translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="496"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1289"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="341"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1295"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="347"/>
         <source>Changed links</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="508"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1301"/>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="517"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1307"/>
         <source>Changed color</source>
         <translation>Se cambió el color</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="219"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="225"/>
         <source>Elevation: %1 %2</source>
         <translation>Altitud: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="227"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="233"/>
         <source>Proximity: %1 %2</source>
         <translation>Proximidad: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1271"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="292"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1277"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="298"/>
         <source>Changed name</source>
         <translation>Se cambió el nombre</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="813"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="821"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="839"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="882"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1009"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="173"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="819"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="827"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="845"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="888"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1015"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="179"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
         <location filename="../mouse/CMouseEditTrk.cpp" line="106"/>
         <source>Edit name...</source>
         <translation>Editar nombre...</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="173"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="179"/>
         <source>Enter new waypoint name.</source>
         <translation>Introduzca el nuevo nombre del waypoint.</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="299"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="305"/>
         <source>Changed position</source>
         <translation>Se cambió la posición</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="305"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="311"/>
         <source>Changed elevation</source>
         <translation>Se cambió la altitud</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="311"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="317"/>
         <source>Changed proximity</source>
         <translation>Se cambió la proximidad</translation>
     </message>
     <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="323"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="329"/>
         <source>Changed icon</source>
         <translation>Se cambió el icono</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1277"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="329"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1283"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="335"/>
         <source>Changed comment</source>
         <translation>Se cambió el comentario</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1283"/>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="335"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1289"/>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="341"/>
         <source>Changed description</source>
         <translation>Se cambió la descripción</translation>
     </message>
@@ -3744,60 +3846,60 @@ Filename: %1</source>
         <translation>Este es un fichero TYP con una codificación de polilíneas desconocida. ¡Por favor repórtelo!</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="284"/>
+        <location filename="../gis/IGisItem.cpp" line="285"/>
         <source>Initial version.</source>
         <translation>Versión inicial</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="368"/>
+        <location filename="../gis/IGisItem.cpp" line="369"/>
         <source>This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press'Ok'.</source>
         <translation>Este elemento probablemente sea de sólo lectura por no haber sido creado por QMapShack. Habitualmente no deseará cambiar los datos importados. De lo contrario, es correcto pulsar 'OK'.</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="369"/>
+        <location filename="../gis/IGisItem.cpp" line="370"/>
         <source>Read Only Mode...</source>
         <translation>Modo Sólo Lectura...</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="558"/>
+        <location filename="../gis/IGisItem.cpp" line="559"/>
         <source><h4>Comment:</h4></source>
         <translation type="unfinished"><h4>Comentario:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="561"/>
+        <location filename="../gis/IGisItem.cpp" line="562"/>
         <source><p>--- no comment ---</p></source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="568"/>
-        <location filename="../gis/IGisItem.cpp" line="598"/>
+        <location filename="../gis/IGisItem.cpp" line="569"/>
+        <location filename="../gis/IGisItem.cpp" line="599"/>
         <source><h4>Description:</h4></source>
         <translation type="unfinished"><h4>Descripción:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="571"/>
-        <location filename="../gis/IGisItem.cpp" line="601"/>
+        <location filename="../gis/IGisItem.cpp" line="572"/>
+        <location filename="../gis/IGisItem.cpp" line="602"/>
         <source><p>--- no description ---</p></source>
         <translation type="unfinished"><p>---sin descripción---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="578"/>
-        <location filename="../gis/IGisItem.cpp" line="608"/>
+        <location filename="../gis/IGisItem.cpp" line="579"/>
+        <location filename="../gis/IGisItem.cpp" line="609"/>
         <source><h4>Links:</h4></source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="581"/>
-        <location filename="../gis/IGisItem.cpp" line="611"/>
+        <location filename="../gis/IGisItem.cpp" line="582"/>
+        <location filename="../gis/IGisItem.cpp" line="612"/>
         <source><p>--- no links ---</p></source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="813"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="821"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="839"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="882"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1009"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="819"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="827"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="845"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="888"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1015"/>
         <location filename="../mouse/CMouseEditTrk.cpp" line="106"/>
         <source>Enter new track name.</source>
         <translation>Introduzca el nombre del nuevo track.</translation>
@@ -3808,19 +3910,19 @@ Filename: %1</source>
         <translation>Introduzca el nombre del nuevo área.</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderDatabase.cpp" line="26"/>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="28"/>
+        <location filename="../gis/db/CDBFolderDatabase.cpp" line="27"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
         <source>All your data grouped by folders.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="29"/>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="63"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="67"/>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
         <source>Lost & Found</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="58"/>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="62"/>
         <source>Lost & Found (%1)</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/src/mouse/CMouseNormal.cpp b/src/mouse/CMouseNormal.cpp
index 49adba5..020d185 100644
--- a/src/mouse/CMouseNormal.cpp
+++ b/src/mouse/CMouseNormal.cpp
@@ -51,6 +51,20 @@ CMouseNormal::~CMouseNormal()
 
 }
 
+void CMouseNormal::stopTracking()
+{
+    const IGisItem::key_t& key = CGisItemTrk::getKeyUserFocus();
+    if(!key.item.isEmpty())
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
+        if(trk != 0)
+        {
+            trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
+        }
+    }
+
+}
+
 void CMouseNormal::mousePressEvent(QMouseEvent * e)
 {
     point = e->pos();
@@ -144,6 +158,7 @@ void CMouseNormal::mouseReleaseEvent(QMouseEvent *e)
                             stateItemSel = eStateShowItemOptions;
 
                         }
+                        stopTracking();
                     }                    
                     break;
                 }
@@ -151,6 +166,7 @@ void CMouseNormal::mouseReleaseEvent(QMouseEvent *e)
                 {
                     screenUnclutter->setOrigin(e->pos());
                     stateItemSel = eStateUnclutterMultiple;
+                    stopTracking();
                     break;
                 }
                 case eStateUnclutterMultiple:
diff --git a/src/mouse/CMouseNormal.h b/src/mouse/CMouseNormal.h
index eefb9d2..0c56b85 100644
--- a/src/mouse/CMouseNormal.h
+++ b/src/mouse/CMouseNormal.h
@@ -52,6 +52,9 @@ class CMouseNormal : public IMouse
         void slotCopyPosition();
 
     protected:
+        void stopTracking();
+
+
         /// the flag is true if the map moving is in progress
         bool mapMove;
         /// the flag is true if the map has been moved actually
diff --git a/src/mouse/CScrOptUnclutter.cpp b/src/mouse/CScrOptUnclutter.cpp
index 09837f7..f28961c 100644
--- a/src/mouse/CScrOptUnclutter.cpp
+++ b/src/mouse/CScrOptUnclutter.cpp
@@ -18,6 +18,7 @@
 
 #include "mouse/CScrOptUnclutter.h"
 #include "gis/IGisItem.h"
+#include "gis/trk/CGisItemTrk.h"
 #include "CMainWindow.h"
 #include "canvas/CCanvas.h"
 
diff --git a/src/resources.qrc b/src/resources.qrc
index 0c280ae..82be419 100644
--- a/src/resources.qrc
+++ b/src/resources.qrc
@@ -82,6 +82,7 @@
         <file>icons/32x32/Cut.png</file>
         <file>icons/32x32/CutHistory.png</file>
         <file>icons/32x32/Copy.png</file>
+        <file>icons/32x32/Move.png</file>
         <file>icons/32x32/Paste.png</file>
         <file>icons/32x32/TextLeft.png</file>
         <file>icons/32x32/TextRight.png</file>
@@ -189,6 +190,7 @@
         <file>icons/48x48/Cut.png</file>
         <file>icons/48x48/CutHistory.png</file>
         <file>icons/48x48/Copy.png</file>
+        <file>icons/48x48/Move.png</file>
         <file>icons/48x48/Paste.png</file>
         <file>icons/48x48/TextLeft.png</file>
         <file>icons/48x48/TextRight.png</file>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qmapshack.git



More information about the Pkg-grass-devel mailing list