Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.

Sat, 10 Mar 2012 17:42:07 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 10 Mar 2012 17:42:07 +0100
changeset 1695
7b115f986d48
parent 1694
648466a9451b
child 1697
96d3d28a3a4b

Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Sync.DirectorySyncHandler.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Sync.FtpSyncHandler.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Sync.SyncGlobals.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Sync.SyncHandler.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Sync.SyncManager.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.Sync.html file | annotate | diff | comparison | revisions
Helpviewer/Sync/DirectorySyncHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/FtpSyncHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncAssistantDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncCheckPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncDirectorySettingsPage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncDirectorySettingsPage.ui file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncGlobals.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncHandler.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncHostTypePage.py file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncHostTypePage.ui file | annotate | diff | comparison | revisions
Helpviewer/Sync/SyncManager.py file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_en.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sat Mar 10 15:17:52 2012 +0100
+++ b/APIs/Python3/eric5.api	Sat Mar 10 17:42:07 2012 +0100
@@ -2570,6 +2570,17 @@
 eric5.Helpviewer.SslInfoDialog.SslInfoDialog?1(certificate, parent=None)
 eric5.Helpviewer.SslInfoWidget.SslInfoWidget.showCertificate?4(certificate)
 eric5.Helpviewer.SslInfoWidget.SslInfoWidget?1(parent=None)
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.initialLoadAndCheck?4(forceUpload)
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.shutdown?4()
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncBookmarks?4()
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncError?7
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncFinished?7
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncHistory?4()
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncMessage?7
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncPasswords?4()
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncStatus?7
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncUserAgents?4()
+eric5.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler?1(parent=None)
 eric5.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.initialLoadAndCheck?4(forceUpload)
 eric5.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.shutdown?4()
 eric5.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncBookmarks?4()
@@ -2586,6 +2597,10 @@
 eric5.Helpviewer.Sync.SyncCheckPage.SyncCheckPage?1(parent=None)
 eric5.Helpviewer.Sync.SyncDataPage.SyncDataPage.nextId?4()
 eric5.Helpviewer.Sync.SyncDataPage.SyncDataPage?1(parent=None)
+eric5.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage.isComplete?4()
+eric5.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage.nextId?4()
+eric5.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage.on_directoryButton_clicked?4()
+eric5.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage?1(parent=None)
 eric5.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.isComplete?4()
 eric5.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.nextId?4()
 eric5.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.on_encryptionGroupBox_toggled?4(on)
@@ -2598,9 +2613,13 @@
 eric5.Helpviewer.Sync.SyncFtpSettingsPage.SyncFtpSettingsPage?1(parent=None)
 eric5.Helpviewer.Sync.SyncGlobals.PageCheck?7
 eric5.Helpviewer.Sync.SyncGlobals.PageData?7
+eric5.Helpviewer.Sync.SyncGlobals.PageDirectorySettings?7
 eric5.Helpviewer.Sync.SyncGlobals.PageEncryption?7
 eric5.Helpviewer.Sync.SyncGlobals.PageFTPSettings?7
 eric5.Helpviewer.Sync.SyncGlobals.PageType?7
+eric5.Helpviewer.Sync.SyncGlobals.SyncTypeDirectory?7
+eric5.Helpviewer.Sync.SyncGlobals.SyncTypeFtp?7
+eric5.Helpviewer.Sync.SyncGlobals.SyncTypeNone?7
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler.initialLoadAndCheck?4(forceUpload)
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler.readFile?4(fileName)
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler.shutdown?4()
@@ -2612,7 +2631,7 @@
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler.syncPasswords?4()
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler.syncStatus?7
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler.syncUserAgents?4()
-eric5.Helpviewer.Sync.SyncHandler.SyncHandler.writeFile?4(data, fileName)
+eric5.Helpviewer.Sync.SyncHandler.SyncHandler.writeFile?4(data, fileName, timestamp=0)
 eric5.Helpviewer.Sync.SyncHandler.SyncHandler?1(parent=None)
 eric5.Helpviewer.Sync.SyncHostTypePage.SyncHostTypePage.nextId?4()
 eric5.Helpviewer.Sync.SyncHostTypePage.SyncHostTypePage?1(parent=None)
@@ -2622,7 +2641,9 @@
 eric5.Helpviewer.Sync.SyncManager.SyncManager.showSyncDialog?4()
 eric5.Helpviewer.Sync.SyncManager.SyncManager.syncEnabled?4()
 eric5.Helpviewer.Sync.SyncManager.SyncManager.syncError?7
+eric5.Helpviewer.Sync.SyncManager.SyncManager.syncFinished?7
 eric5.Helpviewer.Sync.SyncManager.SyncManager.syncMessage?7
+eric5.Helpviewer.Sync.SyncManager.SyncManager.syncStatus?7
 eric5.Helpviewer.Sync.SyncManager.SyncManager?1(parent=None)
 eric5.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.AddBookmark?7
 eric5.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.AddSpeeddial?7
--- a/APIs/Python3/eric5.bas	Sat Mar 10 15:17:52 2012 +0100
+++ b/APIs/Python3/eric5.bas	Sat Mar 10 17:42:07 2012 +0100
@@ -113,6 +113,7 @@
 DeleteFilesConfirmationDialog QDialog Ui_DeleteFilesConfirmationDialog
 DiffDialog QWidget Ui_DiffDialog
 DiffWindow QMainWindow
+DirectorySyncHandler SyncHandler
 DownloadAskActionDialog QDialog Ui_DownloadAskActionDialog
 DownloadItem QWidget Ui_DownloadItem
 DownloadManager QDialog Ui_DownloadManager
@@ -562,6 +563,7 @@
 SyncAssistantDialog QWizard
 SyncCheckPage QWizardPage Ui_SyncCheckPage
 SyncDataPage QWizardPage Ui_SyncDataPage
+SyncDirectorySettingsPage QWizardPage Ui_SyncDirectorySettingsPage
 SyncEncryptionPage QWizardPage Ui_SyncEncryptionPage
 SyncFtpSettingsPage QWizardPage Ui_SyncFtpSettingsPage
 SyncHandler QObject
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Mar 10 15:17:52 2012 +0100
+++ b/Documentation/Help/source.qhp	Sat Mar 10 17:42:07 2012 +0100
@@ -286,10 +286,12 @@
               <section title="eric5.Helpviewer.SpeedDial.SpeedDial" ref="eric5.Helpviewer.SpeedDial.SpeedDial.html" />
             </section>
             <section title="eric5.Helpviewer.Sync" ref="index-eric5.Helpviewer.Sync.html">
+              <section title="eric5.Helpviewer.Sync.DirectorySyncHandler" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html" />
               <section title="eric5.Helpviewer.Sync.FtpSyncHandler" ref="eric5.Helpviewer.Sync.FtpSyncHandler.html" />
               <section title="eric5.Helpviewer.Sync.SyncAssistantDialog" ref="eric5.Helpviewer.Sync.SyncAssistantDialog.html" />
               <section title="eric5.Helpviewer.Sync.SyncCheckPage" ref="eric5.Helpviewer.Sync.SyncCheckPage.html" />
               <section title="eric5.Helpviewer.Sync.SyncDataPage" ref="eric5.Helpviewer.Sync.SyncDataPage.html" />
+              <section title="eric5.Helpviewer.Sync.SyncDirectorySettingsPage" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html" />
               <section title="eric5.Helpviewer.Sync.SyncEncryptionPage" ref="eric5.Helpviewer.Sync.SyncEncryptionPage.html" />
               <section title="eric5.Helpviewer.Sync.SyncFtpSettingsPage" ref="eric5.Helpviewer.Sync.SyncFtpSettingsPage.html" />
               <section title="eric5.Helpviewer.Sync.SyncGlobals" ref="eric5.Helpviewer.Sync.SyncGlobals.html" />
@@ -2968,6 +2970,20 @@
       <keyword name="DiffWindow" id="DiffWindow" ref="eric5.UI.DiffDialog.html#DiffWindow" />
       <keyword name="DiffWindow (Constructor)" id="DiffWindow (Constructor)" ref="eric5.UI.DiffDialog.html#DiffWindow.__init__" />
       <keyword name="DiffWindow.eventFilter" id="DiffWindow.eventFilter" ref="eric5.UI.DiffDialog.html#DiffWindow.eventFilter" />
+      <keyword name="DirectorySyncHandler" id="DirectorySyncHandler" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler" />
+      <keyword name="DirectorySyncHandler (Constructor)" id="DirectorySyncHandler (Constructor)" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__init__" />
+      <keyword name="DirectorySyncHandler (Module)" id="DirectorySyncHandler (Module)" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html" />
+      <keyword name="DirectorySyncHandler.__downloadFile" id="DirectorySyncHandler.__downloadFile" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__downloadFile" />
+      <keyword name="DirectorySyncHandler.__initialSync" id="DirectorySyncHandler.__initialSync" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__initialSync" />
+      <keyword name="DirectorySyncHandler.__initialSyncFile" id="DirectorySyncHandler.__initialSyncFile" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__initialSyncFile" />
+      <keyword name="DirectorySyncHandler.__syncFile" id="DirectorySyncHandler.__syncFile" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__syncFile" />
+      <keyword name="DirectorySyncHandler.__uploadFile" id="DirectorySyncHandler.__uploadFile" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__uploadFile" />
+      <keyword name="DirectorySyncHandler.initialLoadAndCheck" id="DirectorySyncHandler.initialLoadAndCheck" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.initialLoadAndCheck" />
+      <keyword name="DirectorySyncHandler.shutdown" id="DirectorySyncHandler.shutdown" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.shutdown" />
+      <keyword name="DirectorySyncHandler.syncBookmarks" id="DirectorySyncHandler.syncBookmarks" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncBookmarks" />
+      <keyword name="DirectorySyncHandler.syncHistory" id="DirectorySyncHandler.syncHistory" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncHistory" />
+      <keyword name="DirectorySyncHandler.syncPasswords" id="DirectorySyncHandler.syncPasswords" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncPasswords" />
+      <keyword name="DirectorySyncHandler.syncUserAgents" id="DirectorySyncHandler.syncUserAgents" ref="eric5.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncUserAgents" />
       <keyword name="DocumentationPlugins (Package)" id="DocumentationPlugins (Package)" ref="index-eric5.Plugins.DocumentationPlugins.html" />
       <keyword name="DocumentationTools (Package)" id="DocumentationTools (Package)" ref="index-eric5.DocumentationTools.html" />
       <keyword name="Download (Package)" id="Download (Package)" ref="index-eric5.Helpviewer.Download.html" />
@@ -9343,6 +9359,12 @@
       <keyword name="SyncDataPage (Constructor)" id="SyncDataPage (Constructor)" ref="eric5.Helpviewer.Sync.SyncDataPage.html#SyncDataPage.__init__" />
       <keyword name="SyncDataPage (Module)" id="SyncDataPage (Module)" ref="eric5.Helpviewer.Sync.SyncDataPage.html" />
       <keyword name="SyncDataPage.nextId" id="SyncDataPage.nextId" ref="eric5.Helpviewer.Sync.SyncDataPage.html#SyncDataPage.nextId" />
+      <keyword name="SyncDirectorySettingsPage" id="SyncDirectorySettingsPage" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage" />
+      <keyword name="SyncDirectorySettingsPage (Constructor)" id="SyncDirectorySettingsPage (Constructor)" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.__init__" />
+      <keyword name="SyncDirectorySettingsPage (Module)" id="SyncDirectorySettingsPage (Module)" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html" />
+      <keyword name="SyncDirectorySettingsPage.isComplete" id="SyncDirectorySettingsPage.isComplete" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.isComplete" />
+      <keyword name="SyncDirectorySettingsPage.nextId" id="SyncDirectorySettingsPage.nextId" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.nextId" />
+      <keyword name="SyncDirectorySettingsPage.on_directoryButton_clicked" id="SyncDirectorySettingsPage.on_directoryButton_clicked" ref="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.on_directoryButton_clicked" />
       <keyword name="SyncEncryptionPage" id="SyncEncryptionPage" ref="eric5.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage" />
       <keyword name="SyncEncryptionPage (Constructor)" id="SyncEncryptionPage (Constructor)" ref="eric5.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.__init__" />
       <keyword name="SyncEncryptionPage (Module)" id="SyncEncryptionPage (Module)" ref="eric5.Helpviewer.Sync.SyncEncryptionPage.html" />
@@ -11848,10 +11870,12 @@
       <file>eric5.Helpviewer.SslCertificatesDialog.html</file>
       <file>eric5.Helpviewer.SslInfoDialog.html</file>
       <file>eric5.Helpviewer.SslInfoWidget.html</file>
+      <file>eric5.Helpviewer.Sync.DirectorySyncHandler.html</file>
       <file>eric5.Helpviewer.Sync.FtpSyncHandler.html</file>
       <file>eric5.Helpviewer.Sync.SyncAssistantDialog.html</file>
       <file>eric5.Helpviewer.Sync.SyncCheckPage.html</file>
       <file>eric5.Helpviewer.Sync.SyncDataPage.html</file>
+      <file>eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html</file>
       <file>eric5.Helpviewer.Sync.SyncEncryptionPage.html</file>
       <file>eric5.Helpviewer.Sync.SyncFtpSettingsPage.html</file>
       <file>eric5.Helpviewer.Sync.SyncGlobals.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Sync.DirectorySyncHandler.html	Sat Mar 10 17:42:07 2012 +0100
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.Sync.DirectorySyncHandler</title>
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.Helpviewer.Sync.DirectorySyncHandler</h1>
+<p>
+Module implementing a synchronization handler using a shared directory.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#DirectorySyncHandler">DirectorySyncHandler</a></td>
+<td>Class implementing a synchronization handler using a shared directory.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="DirectorySyncHandler" ID="DirectorySyncHandler"></a>
+<h2>DirectorySyncHandler</h2>
+<p>
+    Class implementing a synchronization handler using a shared directory.
+</p><h3>Signals</h3>
+<dl>
+<dt>syncError(message)</dt>
+<dd>
+emitted for a general error with the error message (string)
+</dd><dt>syncFinished(type_, done, download)</dt>
+<dd>
+emitted after a synchronization has
+        finished (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, boolean)
+</dd><dt>syncMessage(message)</dt>
+<dd>
+emitted to send a message about synchronization (string)
+</dd><dt>syncStatus(type_, done, message)</dt>
+<dd>
+emitted to indicate the synchronization
+        status (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, string)
+</dd>
+</dl>
+<h3>Derived from</h3>
+SyncHandler
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#DirectorySyncHandler.__init__">DirectorySyncHandler</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.__downloadFile">__downloadFile</a></td>
+<td>Private method to downlaod the given file.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.__initialSync">__initialSync</a></td>
+<td>Private slot to do the initial synchronization.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.__initialSyncFile">__initialSyncFile</a></td>
+<td>Private method to do the initial synchronization of the given file.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.__syncFile">__syncFile</a></td>
+<td>Private method to synchronize the given file.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.__uploadFile">__uploadFile</a></td>
+<td>Private method to upload the given file.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.initialLoadAndCheck">initialLoadAndCheck</a></td>
+<td>Public method to do the initial check.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.shutdown">shutdown</a></td>
+<td>Public method to shut down the handler.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.syncBookmarks">syncBookmarks</a></td>
+<td>Public method to synchronize the bookmarks.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.syncHistory">syncHistory</a></td>
+<td>Public method to synchronize the history.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.syncPasswords">syncPasswords</a></td>
+<td>Public method to synchronize the passwords.</td>
+</tr><tr>
+<td><a href="#DirectorySyncHandler.syncUserAgents">syncUserAgents</a></td>
+<td>Public method to synchronize the user agents.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="DirectorySyncHandler.__init__" ID="DirectorySyncHandler.__init__"></a>
+<h4>DirectorySyncHandler (Constructor)</h4>
+<b>DirectorySyncHandler</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="DirectorySyncHandler.__downloadFile" ID="DirectorySyncHandler.__downloadFile"></a>
+<h4>DirectorySyncHandler.__downloadFile</h4>
+<b>__downloadFile</b>(<i>type_, fileName</i>)
+<p>
+        Private method to downlaod the given file.
+</p><dl>
+<dt><i>type_</i></dt>
+<dd>
+type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+</dd><dt><i>fileName</i></dt>
+<dd>
+name of the file to be downloaded (string)
+</dd>
+</dl><a NAME="DirectorySyncHandler.__initialSync" ID="DirectorySyncHandler.__initialSync"></a>
+<h4>DirectorySyncHandler.__initialSync</h4>
+<b>__initialSync</b>(<i></i>)
+<p>
+        Private slot to do the initial synchronization.
+</p><a NAME="DirectorySyncHandler.__initialSyncFile" ID="DirectorySyncHandler.__initialSyncFile"></a>
+<h4>DirectorySyncHandler.__initialSyncFile</h4>
+<b>__initialSyncFile</b>(<i>type_, fileName</i>)
+<p>
+        Private method to do the initial synchronization of the given file.
+</p><dl>
+<dt><i>type_</i></dt>
+<dd>
+type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+</dd><dt><i>fileName</i></dt>
+<dd>
+name of the file to be synchronized (string)
+</dd>
+</dl><a NAME="DirectorySyncHandler.__syncFile" ID="DirectorySyncHandler.__syncFile"></a>
+<h4>DirectorySyncHandler.__syncFile</h4>
+<b>__syncFile</b>(<i>type_, fileName</i>)
+<p>
+        Private method to synchronize the given file.
+</p><dl>
+<dt><i>type_</i></dt>
+<dd>
+type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+</dd><dt><i>fileName</i></dt>
+<dd>
+name of the file to be synchronized (string)
+</dd>
+</dl><a NAME="DirectorySyncHandler.__uploadFile" ID="DirectorySyncHandler.__uploadFile"></a>
+<h4>DirectorySyncHandler.__uploadFile</h4>
+<b>__uploadFile</b>(<i>type_, fileName</i>)
+<p>
+        Private method to upload the given file.
+</p><dl>
+<dt><i>type_</i></dt>
+<dd>
+type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+</dd><dt><i>fileName</i></dt>
+<dd>
+name of the file to be uploaded (string)
+</dd>
+</dl><a NAME="DirectorySyncHandler.initialLoadAndCheck" ID="DirectorySyncHandler.initialLoadAndCheck"></a>
+<h4>DirectorySyncHandler.initialLoadAndCheck</h4>
+<b>initialLoadAndCheck</b>(<i>forceUpload</i>)
+<p>
+        Public method to do the initial check.
+</p><dl>
+<dt><i>forceUpload=</i></dt>
+<dd>
+flag indicating a forced upload of the files (boolean)
+</dd>
+</dl><a NAME="DirectorySyncHandler.shutdown" ID="DirectorySyncHandler.shutdown"></a>
+<h4>DirectorySyncHandler.shutdown</h4>
+<b>shutdown</b>(<i></i>)
+<p>
+        Public method to shut down the handler.
+</p><a NAME="DirectorySyncHandler.syncBookmarks" ID="DirectorySyncHandler.syncBookmarks"></a>
+<h4>DirectorySyncHandler.syncBookmarks</h4>
+<b>syncBookmarks</b>(<i></i>)
+<p>
+        Public method to synchronize the bookmarks.
+</p><a NAME="DirectorySyncHandler.syncHistory" ID="DirectorySyncHandler.syncHistory"></a>
+<h4>DirectorySyncHandler.syncHistory</h4>
+<b>syncHistory</b>(<i></i>)
+<p>
+        Public method to synchronize the history.
+</p><a NAME="DirectorySyncHandler.syncPasswords" ID="DirectorySyncHandler.syncPasswords"></a>
+<h4>DirectorySyncHandler.syncPasswords</h4>
+<b>syncPasswords</b>(<i></i>)
+<p>
+        Public method to synchronize the passwords.
+</p><a NAME="DirectorySyncHandler.syncUserAgents" ID="DirectorySyncHandler.syncUserAgents"></a>
+<h4>DirectorySyncHandler.syncUserAgents</h4>
+<b>syncUserAgents</b>(<i></i>)
+<p>
+        Public method to synchronize the user agents.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.Sync.FtpSyncHandler.html	Sat Mar 10 15:17:52 2012 +0100
+++ b/Documentation/Source/eric5.Helpviewer.Sync.FtpSyncHandler.html	Sat Mar 10 17:42:07 2012 +0100
@@ -175,7 +175,7 @@
 </dd>
 </dl><a NAME="FtpSyncHandler.__downloadFile" ID="FtpSyncHandler.__downloadFile"></a>
 <h4>FtpSyncHandler.__downloadFile</h4>
-<b>__downloadFile</b>(<i>type_, fileName</i>)
+<b>__downloadFile</b>(<i>type_, fileName, timestamp</i>)
 <p>
         Private method to downlaod the given file.
 </p><dl>
@@ -186,6 +186,9 @@
 </dd><dt><i>fileName</i></dt>
 <dd>
 name of the file to be downloaded (string)
+</dd><dt><i>timestamp</i></dt>
+<dd>
+time stamp in seconds of the file to be downloaded (int)
 </dd>
 </dl><a NAME="FtpSyncHandler.__idleTimeout" ID="FtpSyncHandler.__idleTimeout"></a>
 <h4>FtpSyncHandler.__idleTimeout</h4>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html	Sat Mar 10 17:42:07 2012 +0100
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.Sync.SyncDirectorySettingsPage</title>
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.Helpviewer.Sync.SyncDirectorySettingsPage</h1>
+<p>
+Module implementing the synchronization shared directory settings wizard page.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#SyncDirectorySettingsPage">SyncDirectorySettingsPage</a></td>
+<td>Class implementing the shared directory host settings wizard page.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="SyncDirectorySettingsPage" ID="SyncDirectorySettingsPage"></a>
+<h2>SyncDirectorySettingsPage</h2>
+<p>
+    Class implementing the shared directory host settings wizard page.
+</p>
+<h3>Derived from</h3>
+QWizardPage, Ui_SyncDirectorySettingsPage
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#SyncDirectorySettingsPage.__init__">SyncDirectorySettingsPage</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#SyncDirectorySettingsPage.isComplete">isComplete</a></td>
+<td>Public method to check the completeness of the page.</td>
+</tr><tr>
+<td><a href="#SyncDirectorySettingsPage.nextId">nextId</a></td>
+<td>Public method returning the ID of the next wizard page.</td>
+</tr><tr>
+<td><a href="#SyncDirectorySettingsPage.on_directoryButton_clicked">on_directoryButton_clicked</a></td>
+<td>Private slot to select the shared directory via a directory selection dialog.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="SyncDirectorySettingsPage.__init__" ID="SyncDirectorySettingsPage.__init__"></a>
+<h4>SyncDirectorySettingsPage (Constructor)</h4>
+<b>SyncDirectorySettingsPage</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="SyncDirectorySettingsPage.isComplete" ID="SyncDirectorySettingsPage.isComplete"></a>
+<h4>SyncDirectorySettingsPage.isComplete</h4>
+<b>isComplete</b>(<i></i>)
+<p>
+        Public method to check the completeness of the page.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating completeness (boolean)
+</dd>
+</dl><a NAME="SyncDirectorySettingsPage.nextId" ID="SyncDirectorySettingsPage.nextId"></a>
+<h4>SyncDirectorySettingsPage.nextId</h4>
+<b>nextId</b>(<i></i>)
+<p>
+        Public method returning the ID of the next wizard page.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+next wizard page ID (integer)
+</dd>
+</dl><a NAME="SyncDirectorySettingsPage.on_directoryButton_clicked" ID="SyncDirectorySettingsPage.on_directoryButton_clicked"></a>
+<h4>SyncDirectorySettingsPage.on_directoryButton_clicked</h4>
+<b>on_directoryButton_clicked</b>(<i></i>)
+<p>
+        Private slot to select the shared directory via a directory selection dialog.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Helpviewer.Sync.SyncGlobals.html	Sat Mar 10 15:17:52 2012 +0100
+++ b/Documentation/Source/eric5.Helpviewer.Sync.SyncGlobals.html	Sat Mar 10 17:42:07 2012 +0100
@@ -26,7 +26,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>PageCheck</td></tr><tr><td>PageData</td></tr><tr><td>PageEncryption</td></tr><tr><td>PageFTPSettings</td></tr><tr><td>PageType</td></tr>
+<tr><td>PageCheck</td></tr><tr><td>PageData</td></tr><tr><td>PageDirectorySettings</td></tr><tr><td>PageEncryption</td></tr><tr><td>PageFTPSettings</td></tr><tr><td>PageType</td></tr><tr><td>SyncTypeDirectory</td></tr><tr><td>SyncTypeFtp</td></tr><tr><td>SyncTypeNone</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Helpviewer.Sync.SyncHandler.html	Sat Mar 10 15:17:52 2012 +0100
+++ b/Documentation/Source/eric5.Helpviewer.Sync.SyncHandler.html	Sat Mar 10 17:42:07 2012 +0100
@@ -174,7 +174,7 @@
         Public method to synchronize the user agents.
 </p><a NAME="SyncHandler.writeFile" ID="SyncHandler.writeFile"></a>
 <h4>SyncHandler.writeFile</h4>
-<b>writeFile</b>(<i>data, fileName</i>)
+<b>writeFile</b>(<i>data, fileName, timestamp=0</i>)
 <p>
         Public method to write the data to a file.
 </p><p>
@@ -187,6 +187,9 @@
 </dd><dt><i>fileName</i></dt>
 <dd>
 name of the file the data is to be written to (string)
+</dd><dt><i>timestamp</i></dt>
+<dd>
+timestamp to be given to the file (int)
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
--- a/Documentation/Source/eric5.Helpviewer.Sync.SyncManager.html	Sat Mar 10 15:17:52 2012 +0100
+++ b/Documentation/Source/eric5.Helpviewer.Sync.SyncManager.html	Sat Mar 10 17:42:07 2012 +0100
@@ -50,10 +50,20 @@
 <dd>
 emitted for a general error with the error
         message (string)
+</dd><dt>syncFinished(type_, done, download)</dt>
+<dd>
+emitted after a synchronization has
+        finished (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, boolean)
 </dd><dt>syncMessage(message)</dt>
 <dd>
 emitted to give status info about the sync
         process (string)
+</dd><dt>syncStatus(type_, done, message)</dt>
+<dd>
+emitted to indicate the synchronization
+        status (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, string)
 </dd>
 </dl>
 <h3>Derived from</h3>
--- a/Documentation/Source/index-eric5.Helpviewer.Sync.html	Sat Mar 10 15:17:52 2012 +0100
+++ b/Documentation/Source/index-eric5.Helpviewer.Sync.html	Sat Mar 10 17:42:07 2012 +0100
@@ -29,6 +29,9 @@
 <h3>Modules</h3>
 <table>
 <tr>
+<td><a href="eric5.Helpviewer.Sync.DirectorySyncHandler.html">DirectorySyncHandler</a></td>
+<td>Module implementing a synchronization handler using a shared directory.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Sync.FtpSyncHandler.html">FtpSyncHandler</a></td>
 <td>Module implementing a synchronization handler using FTP.</td>
 </tr><tr>
@@ -41,6 +44,9 @@
 <td><a href="eric5.Helpviewer.Sync.SyncDataPage.html">SyncDataPage</a></td>
 <td>Module implementing the synchronization data wizard page.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.Sync.SyncDirectorySettingsPage.html">SyncDirectorySettingsPage</a></td>
+<td>Module implementing the synchronization shared directory settings wizard page.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Sync.SyncEncryptionPage.html">SyncEncryptionPage</a></td>
 <td>Module implementing encryption settings wizard page.</td>
 </tr><tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Sync/DirectorySyncHandler.py	Sat Mar 10 17:42:07 2012 +0100
@@ -0,0 +1,225 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a synchronization handler using a shared directory.
+"""
+
+import os
+
+from PyQt4.QtCore import pyqtSignal, QByteArray, QFileInfo
+
+from .SyncHandler import SyncHandler
+
+import Helpviewer.HelpWindow
+
+import Preferences
+
+
+class DirectorySyncHandler(SyncHandler):
+    """
+    Class implementing a synchronization handler using a shared directory.
+    
+    @signal syncStatus(type_, done, message) emitted to indicate the synchronization
+        status (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, string)
+    @signal syncError(message) emitted for a general error with the error message (string)
+    @signal syncMessage(message) emitted to send a message about synchronization (string)
+    @signal syncFinished(type_, done, download) emitted after a synchronization has
+        finished (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, boolean)
+    """
+    syncStatus = pyqtSignal(str, bool, str)
+    syncError = pyqtSignal(str)
+    syncMessage = pyqtSignal(str)
+    syncFinished = pyqtSignal(str, bool, bool)
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        self.__forceUpload = False
+        
+        self.__remoteFilesFound = []
+    
+    def initialLoadAndCheck(self, forceUpload):
+        """
+        Public method to do the initial check.
+        
+        @keyparam forceUpload flag indicating a forced upload of the files (boolean)
+        """
+        if not Preferences.getHelp("SyncEnabled"):
+            return
+        
+        self.__forceUpload = forceUpload
+        
+        self.__remoteFilesFound = []
+        
+        # check the existence of the shared directory; create it, if it is not there
+        if not os.path.exists(Preferences.getHelp("SyncDirectoryPath")):
+            try:
+                os.makedirs(Preferences.getHelp("SyncDirectoryPath"))
+            except OSError as err:
+                self.syncError.emit(
+                    self.trUtf8("Error creating the shared directory.\n{0}")
+                    .format(str(err)))
+                return
+        
+        self.__initialSync()
+    
+    def __downloadFile(self, type_, fileName):
+        """
+        Private method to downlaod the given file.
+        
+        @param type_ type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+        @param fileName name of the file to be downloaded (string)
+        """
+        try:
+            f = open(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
+                                  self._remoteFiles[type_]), "rb")
+            data = f.read()
+            f.close()
+        except IOError as err:
+            self.syncStatus.emit(type_, False,
+                self.trUtf8("Cannot read remote file.\n{0}").format(str(err)))
+            self.syncFinished(type_, False, True)
+            return
+        
+        ok, error = self.writeFile(QByteArray(data), fileName)
+        if ok:
+            self.syncStatus.emit(type_, True, self._messages[type_]["RemoteExists"])
+        else:
+            self.syncStatus.emit(type_, False, error)
+        self.syncFinished.emit(type_, True, True)
+    
+    def __uploadFile(self, type_, fileName):
+        """
+        Private method to upload the given file.
+        
+        @param type_ type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+        @param fileName name of the file to be uploaded (string)
+        """
+        data = self.readFile(fileName)
+        if data.isEmpty():
+            self.syncStatus.emit(type_, True,
+                self._messages[type_]["LocalMissing"])
+        else:
+            try:
+                f = open(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
+                                      self._remoteFiles[type_]), "wb")
+                f.write(bytes(data))
+                f.close()
+            except IOError as err:
+                self.syncStatus.emit(type_, False,
+                    self.trUtf8("Cannot write remote file.\n{0}").format(str(err)))
+                self.syncFinished(type_, False, False)
+                return
+            
+        self.syncFinished.emit(type_, True, False)
+    
+    def __initialSyncFile(self, type_, fileName):
+        """
+        Private method to do the initial synchronization of the given file.
+        
+        @param type_ type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+        @param fileName name of the file to be synchronized (string)
+        """
+        if not self.__forceUpload and \
+           os.path.exists(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
+                                       self._remoteFiles[type_])) and \
+           QFileInfo(fileName).lastModified() <= \
+                QFileInfo(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
+                                       self._remoteFiles[type_]).lastModified()):
+            self.__downloadFile(type_, fileName,
+                QFileInfo(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
+                    self._remoteFiles[type_]).lastModified()).toTime_t())
+        else:
+            if os.path.exists(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
+                                           self._remoteFiles[type_])):
+                self.syncStatus.emit(type_, True,
+                    self._messages[type_]["RemoteMissing"])
+            else:
+                self.syncStatus.emit(type_, True,
+                    self._messages[type_]["LocalNewer"])
+            self.__uploadFile(type_, fileName)
+    
+    def __initialSync(self):
+        """
+        Private slot to do the initial synchronization.
+        """
+        # Bookmarks
+        if Preferences.getHelp("SyncBookmarks"):
+            self.__initialSyncFile("bookmarks",
+                Helpviewer.HelpWindow.HelpWindow.bookmarksManager().getFileName())
+        
+        # History
+        if Preferences.getHelp("SyncHistory"):
+            self.__initialSyncFile("history",
+                Helpviewer.HelpWindow.HelpWindow.historyManager().getFileName())
+        
+        # Passwords
+        if Preferences.getHelp("SyncPasswords"):
+            self.__initialSyncFile("passwords",
+                Helpviewer.HelpWindow.HelpWindow.passwordManager().getFileName())
+        
+        # User Agent Settings
+        if Preferences.getHelp("SyncUserAgents"):
+            self.__initialSyncFile("useragents",
+                Helpviewer.HelpWindow.HelpWindow.userAgentsManager().getFileName())
+        
+        self.__forceUpload = False
+        self.syncMessage.emit(self.trUtf8("Synchronization finished"))
+    
+    def __syncFile(self, type_, fileName):
+        """
+        Private method to synchronize the given file.
+        
+        @param type_ type of the synchronization event (string one
+            of "bookmarks", "history", "passwords" or "useragents")
+        @param fileName name of the file to be synchronized (string)
+        """
+        self.syncStatus.emit(type_, True, self._messages[type_]["Uploading"])
+        self.__uploadFile(type_, fileName)
+    
+    def syncBookmarks(self):
+        """
+        Public method to synchronize the bookmarks.
+        """
+        self.__syncFile("bookmarks",
+            Helpviewer.HelpWindow.HelpWindow.bookmarksManager().getFileName())
+    
+    def syncHistory(self):
+        """
+        Public method to synchronize the history.
+        """
+        self.__syncFile("history",
+            Helpviewer.HelpWindow.HelpWindow.historyManager().getFileName())
+    
+    def syncPasswords(self):
+        """
+        Public method to synchronize the passwords.
+        """
+        self.__syncFile("passwords",
+            Helpviewer.HelpWindow.HelpWindow.passwordManager().getFileName())
+    
+    def syncUserAgents(self):
+        """
+        Public method to synchronize the user agents.
+        """
+        self.__syncFile("useragents",
+            Helpviewer.HelpWindow.HelpWindow.userAgentsManager().getFileName())
+    
+    def shutdown(self):
+        """
+        Public method to shut down the handler.
+        """
+        # nothing to do
+        return
--- a/Helpviewer/Sync/FtpSyncHandler.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/FtpSyncHandler.py	Sat Mar 10 17:42:07 2012 +0100
@@ -7,7 +7,8 @@
 Module implementing a synchronization handler using FTP.
 """
 
-from PyQt4.QtCore import pyqtSignal, QUrl, QIODevice, QTime, QThread, QTimer, QBuffer
+from PyQt4.QtCore import pyqtSignal, QUrl, QIODevice, QTime, QThread, QTimer, QBuffer, \
+    QFileInfo
 from PyQt4.QtNetwork import QFtp, QNetworkProxyQuery, QNetworkProxy, QNetworkProxyFactory
 
 from .SyncHandler import SyncHandler
@@ -46,54 +47,7 @@
         self.__state = "idle"
         self.__forceUpload = False
         
-        self.__remoteFiles = {
-            "bookmarks": "Bookmarks",
-            "history": "History",
-            "passwords": "Logins",
-            "useragents": "UserAgentSettings"
-        }
-        self.__remoteFilesFound = []
-        
-        self.__messages = {
-            "bookmarks": {
-                "RemoteExists": self.trUtf8(
-                    "Remote bookmarks file exists! Syncing local copy..."),
-                "RemoteMissing": self.trUtf8(
-                    "Remote bookmarks file does NOT exists. Exporting local copy..."),
-                "LocalMissing": self.trUtf8(
-                    "Local bookmarks file does NOT exist. Skipping synchronization!"),
-                "Uploading": self.trUtf8("Uploading local bookmarks file..."),
-            },
-            "history": {
-                "RemoteExists": self.trUtf8(
-                    "Remote history file exists! Syncing local copy..."),
-                "RemoteMissing": self.trUtf8(
-                    "Remote history file does NOT exists. Exporting local copy..."),
-                "LocalMissing": self.trUtf8(
-                    "Local history file does NOT exist. Skipping synchronization!"),
-                "Uploading": self.trUtf8("Uploading local history file..."),
-            },
-            "passwords": {
-                "RemoteExists": self.trUtf8(
-                    "Remote logins file exists! Syncing local copy..."),
-                "RemoteMissing": self.trUtf8(
-                    "Remote logins file does NOT exists. Exporting local copy..."),
-                "LocalMissing": self.trUtf8(
-                    "Local logins file does NOT exist. Skipping synchronization!"),
-                "Uploading": self.trUtf8("Uploading local logins file..."),
-            },
-            "useragents": {
-                "RemoteExists": self.trUtf8(
-                    "Remote user agent settings file exists! Syncing local copy..."),
-                "RemoteMissing": self.trUtf8(
-                    "Remote user agent settings file does NOT exists."
-                    " Exporting local copy..."),
-                "LocalMissing": self.trUtf8(
-                    "Local user agent settings file does NOT exist."
-                    " Skipping synchronization!"),
-                "Uploading": self.trUtf8("Uploading local user agent settings file..."),
-            },
-        }
+        self.__remoteFilesFound = {}
     
     def initialLoadAndCheck(self, forceUpload):
         """
@@ -107,7 +61,7 @@
         self.__state = "initializing"
         self.__forceUpload = forceUpload
         
-        self.__remoteFilesFound = []
+        self.__remoteFilesFound = {}
         self.__syncIDs = {}
         
         self.__idleTimer = QTimer(self)
@@ -196,10 +150,11 @@
                     if self.__ftp.currentCommand() == QFtp.Get:
                         self.__syncIDs[id][1].close()
                         ok, error = self.writeFile(self.__syncIDs[id][1].buffer(),
-                                                   self.__syncIDs[id][3])
+                                                   self.__syncIDs[id][3],
+                                                   self.__syncIDs[id][4])
                         if ok:
                             self.syncStatus.emit(self.__syncIDs[id][0], True,
-                                self.__messages[self.__syncIDs[id][0]]["RemoteExists"])
+                                self._messages[self.__syncIDs[id][0]]["RemoteExists"])
                         else:
                             self.syncStatus.emit(self.__syncIDs[id][0], False,
                                 error)
@@ -225,21 +180,22 @@
         @param info info about the entry (QUrlInfo)
         """
         if info.isValid() and info.isFile():
-            if info.name() in self.__remoteFiles.values():
-                self.__remoteFilesFound.append(info.name())
+            if info.name() in self._remoteFiles.values():
+                self.__remoteFilesFound[info.name()] = info.lastModified()
     
-    def __downloadFile(self, type_, fileName):
+    def __downloadFile(self, type_, fileName, timestamp):
         """
         Private method to downlaod the given file.
         
         @param type_ type of the synchronization event (string one
             of "bookmarks", "history", "passwords" or "useragents")
         @param fileName name of the file to be downloaded (string)
+        @param timestamp time stamp in seconds of the file to be downloaded (int)
         """
         buffer = QBuffer(self)
         buffer.open(QIODevice.WriteOnly)
-        id = self.__ftp.get(self.__remoteFiles[type_], buffer)
-        self.__syncIDs[id] = (type_, buffer, True, fileName)
+        id = self.__ftp.get(self._remoteFiles[type_], buffer)
+        self.__syncIDs[id] = (type_, buffer, True, fileName, timestamp)
     
     def __uploadFile(self, type_, fileName):
         """
@@ -252,9 +208,9 @@
         data = self.readFile(fileName)
         if data.isEmpty():
             self.syncStatus.emit(type_, True,
-                self.__messages[type_]["LocalMissing"])
+                self._messages[type_]["LocalMissing"])
         else:
-            id = self.__ftp.put(data, self.__remoteFiles[type_])
+            id = self.__ftp.put(data, self._remoteFiles[type_])
             self.__syncIDs[id] = (type_, data, False)
     
     def __initialSyncFile(self, type_, fileName):
@@ -266,11 +222,18 @@
         @param fileName name of the file to be synchronized (string)
         """
         if not self.__forceUpload and \
-           self.__remoteFiles[type_] in self.__remoteFilesFound:
-            self.__downloadFile(type_, fileName)
+           self._remoteFiles[type_] in self.__remoteFilesFound and \
+           QFileInfo(fileName).lastModified() <= \
+                self.__remoteFilesFound[self._remoteFiles[type_]]:
+            self.__downloadFile(type_, fileName,
+                self.__remoteFilesFound[self._remoteFiles[type_]].toTime_t())
         else:
-            self.syncStatus.emit(type_, True,
-                self.__messages[type_]["RemoteMissing"])
+            if self._remoteFiles[type_] not in self.__remoteFilesFound:
+                self.syncStatus.emit(type_, True,
+                    self._messages[type_]["RemoteMissing"])
+            else:
+                self.syncStatus.emit(type_, True,
+                    self._messages[type_]["LocalNewer"])
             self.__uploadFile(type_, fileName)
     
     def __initialSync(self):
@@ -311,7 +274,7 @@
             return
         
         self.__state = "uploading"
-        self.syncStatus.emit(type_, True, self.__messages[type_]["Uploading"])
+        self.syncStatus.emit(type_, True, self._messages[type_]["Uploading"])
         self.__uploadFile(type_, fileName)
     
     def syncBookmarks(self):
--- a/Helpviewer/Sync/SyncAssistantDialog.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncAssistantDialog.py	Sat Mar 10 17:42:07 2012 +0100
@@ -13,6 +13,7 @@
 from .SyncEncryptionPage import SyncEncryptionPage
 from .SyncHostTypePage import SyncHostTypePage
 from .SyncFtpSettingsPage import SyncFtpSettingsPage
+from .SyncDirectorySettingsPage import SyncDirectorySettingsPage
 from .SyncCheckPage import SyncCheckPage
 
 from . import SyncGlobals
@@ -36,6 +37,7 @@
         self.setPage(SyncGlobals.PageEncryption, SyncEncryptionPage(self))
         self.setPage(SyncGlobals.PageType, SyncHostTypePage(self))
         self.setPage(SyncGlobals.PageFTPSettings, SyncFtpSettingsPage(self))
+        self.setPage(SyncGlobals.PageDirectorySettings, SyncDirectorySettingsPage(self))
         self.setPage(SyncGlobals.PageCheck, SyncCheckPage(self))
         
         self.setPixmap(QWizard.LogoPixmap, UI.PixmapCache.getPixmap("ericWeb48.png"))
--- a/Helpviewer/Sync/SyncCheckPage.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncCheckPage.py	Sat Mar 10 17:42:07 2012 +0100
@@ -12,6 +12,8 @@
 from PyQt4.QtCore import QByteArray
 from PyQt4.QtGui import QWizardPage, QMovie
 
+from . import SyncGlobals
+
 from .Ui_SyncCheckPage import Ui_SyncCheckPage
 
 import Preferences
@@ -45,11 +47,14 @@
         
         syncMgr = Helpviewer.HelpWindow.HelpWindow.syncManager()
         syncMgr.syncError.connect(self.__syncError)
-        syncMgr.loadSettings(forceUpload=forceUpload)
+        syncMgr.syncStatus.connect(self.__updatePage)
         
-        if Preferences.getHelp("SyncType") == 0:
+        if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
             self.handlerLabel.setText(self.trUtf8("FTP"))
             self.hostLabel.setText(Preferences.getHelp("SyncFtpServer"))
+        elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
+            self.handlerLabel.setText(self.trUtf8("Shared Directory"))
+            self.hostLabel.setText(Preferences.getHelp("SyncDirectoryPath"))
         else:
             self.handlerLabel.setText(self.trUtf8("No Synchronization"))
             self.hostLabel.setText("")
@@ -92,8 +97,7 @@
         else:
             self.userAgentsLabel.setPixmap(UI.PixmapCache.getPixmap("syncNo.png"))
         
-        handler = syncMgr.handler()
-        handler.syncStatus.connect(self.__updatePage)
+        syncMgr.loadSettings(forceUpload=forceUpload)
     
     def __makeAnimatedLabel(self, fileName, label):
         """
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Sync/SyncDirectorySettingsPage.py	Sat Mar 10 17:42:07 2012 +0100
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the synchronization shared directory settings wizard page.
+"""
+
+from PyQt4.QtCore import pyqtSlot
+from PyQt4.QtGui import QWizardPage, QFileDialog
+
+from E5Gui import E5FileDialog
+
+from . import SyncGlobals
+
+from .Ui_SyncDirectorySettingsPage import Ui_SyncDirectorySettingsPage
+
+import Preferences
+import Utilities
+
+
+class SyncDirectorySettingsPage(QWizardPage, Ui_SyncDirectorySettingsPage):
+    """
+    Class implementing the shared directory host settings wizard page.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.directoryEdit.setText(Preferences.getHelp("SyncDirectoryPath"))
+        
+        self.directoryEdit.textChanged.connect(self.completeChanged)
+    
+    def nextId(self):
+        """
+        Public method returning the ID of the next wizard page.
+        
+        @return next wizard page ID (integer)
+        """
+        # save the settings
+        Preferences.setHelp("SyncDirectoryPath",
+            Utilities.toNativeSeparators(self.directoryEdit.text()))
+        
+        return SyncGlobals.PageCheck
+    
+    def isComplete(self):
+        """
+        Public method to check the completeness of the page.
+        
+        @return flag indicating completeness (boolean)
+        """
+        return self.directoryEdit.text() != ""
+    
+    @pyqtSlot()
+    def on_directoryButton_clicked(self):
+        """
+        Private slot to select the shared directory via a directory selection dialog.
+        """
+        directory = E5FileDialog.getExistingDirectory(
+            self,
+            self.trUtf8("Shared Directory"),
+            self.directoryEdit.text(),
+            QFileDialog.Options(QFileDialog.Option(0)))
+        
+        if directory:
+            self.directoryEdit.setText(Utilities.toNativeSeparators(directory))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Sync/SyncDirectorySettingsPage.ui	Sat Mar 10 17:42:07 2012 +0100
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SyncDirectorySettingsPage</class>
+ <widget class="QWizardPage" name="SyncDirectorySettingsPage">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>650</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string/>
+  </property>
+  <property name="title">
+   <string>Synchronize to a shared directory</string>
+  </property>
+  <property name="subTitle">
+   <string>Please enter the data for synchronization via a shared directory. All fields must be filled.</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Shared Directory Settings</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Directory Name:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="directoryEdit">
+        <property name="toolTip">
+         <string>Enter the full path of the shared directory</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPushButton" name="directoryButton">
+        <property name="toolTip">
+         <string>Select the shared directory via a directory selection dialog</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>317</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
--- a/Helpviewer/Sync/SyncGlobals.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncGlobals.py	Sat Mar 10 17:42:07 2012 +0100
@@ -7,8 +7,15 @@
 Module implementing some global definitions.
 """
 
+# Page IDs for the sync wizard
 PageData = 0
 PageEncryption = 1
 PageType = 2
 PageFTPSettings = 3
-PageCheck = 4
+PageDirectorySettings = 4
+PageCheck = 5
+
+# Sync types
+SyncTypeNone = -1
+SyncTypeFtp = 0
+SyncTypeDirectory = 1
--- a/Helpviewer/Sync/SyncHandler.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncHandler.py	Sat Mar 10 17:42:07 2012 +0100
@@ -43,6 +43,62 @@
         super().__init__(parent)
         
         self._firstTimeSynced = False
+        
+        self._remoteFiles = {
+            "bookmarks": "Bookmarks",
+            "history": "History",
+            "passwords": "Logins",
+            "useragents": "UserAgentSettings"
+        }
+        
+        self._messages = {
+            "bookmarks": {
+                "RemoteExists": self.trUtf8(
+                    "Remote bookmarks file exists! Syncing local copy..."),
+                "RemoteMissing": self.trUtf8(
+                    "Remote bookmarks file does NOT exists. Exporting local copy..."),
+                "LocalNewer": self.trUtf8(
+                    "Local bookmarks file is NEWER. Exporting local copy..."),
+                "LocalMissing": self.trUtf8(
+                    "Local bookmarks file does NOT exist. Skipping synchronization!"),
+                "Uploading": self.trUtf8("Uploading local bookmarks file..."),
+            },
+            "history": {
+                "RemoteExists": self.trUtf8(
+                    "Remote history file exists! Syncing local copy..."),
+                "RemoteMissing": self.trUtf8(
+                    "Remote history file does NOT exists. Exporting local copy..."),
+                "LocalNewer": self.trUtf8(
+                    "Local history file is NEWER. Exporting local copy..."),
+                "LocalMissing": self.trUtf8(
+                    "Local history file does NOT exist. Skipping synchronization!"),
+                "Uploading": self.trUtf8("Uploading local history file..."),
+            },
+            "passwords": {
+                "RemoteExists": self.trUtf8(
+                    "Remote logins file exists! Syncing local copy..."),
+                "RemoteMissing": self.trUtf8(
+                    "Remote logins file does NOT exists. Exporting local copy..."),
+                "LocalNewer": self.trUtf8(
+                    "Local logins file is NEWER. Exporting local copy..."),
+                "LocalMissing": self.trUtf8(
+                    "Local logins file does NOT exist. Skipping synchronization!"),
+                "Uploading": self.trUtf8("Uploading local logins file..."),
+            },
+            "useragents": {
+                "RemoteExists": self.trUtf8(
+                    "Remote user agent settings file exists! Syncing local copy..."),
+                "RemoteMissing": self.trUtf8(
+                    "Remote user agent settings file does NOT exists."
+                    " Exporting local copy..."),
+                "LocalNewer": self.trUtf8(
+                    "Local user agent settings file is NEWER. Exporting local copy..."),
+                "LocalMissing": self.trUtf8(
+                    "Local user agent settings file does NOT exist."
+                    " Skipping synchronization!"),
+                "Uploading": self.trUtf8("Uploading local user agent settings file..."),
+            },
+        }
     
     def syncBookmarks(self):
         """
@@ -115,7 +171,7 @@
         
         return QByteArray()
     
-    def writeFile(self, data, fileName):
+    def writeFile(self, data, fileName, timestamp=0):
         """
         Public method to write the data to a file.
         
@@ -124,6 +180,7 @@
         
         @param data data to be written and optionally decrypted (QByteArray)
         @param fileName name of the file the data is to be written to (string)
+        @param timestamp timestamp to be given to the file (int)
         @return tuple giving a success flag and an error string (boolean, string)
         """
         data = bytes(data)
@@ -142,6 +199,8 @@
             outputFile = open(fileName, "wb")
             outputFile.write(data)
             outputFile.close()
+            if timestamp > 0:
+                os.utime(fileName, (timestamp, timestamp))
             return True, ""
         except IOError as error:
             return False, str(error)
--- a/Helpviewer/Sync/SyncHostTypePage.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncHostTypePage.py	Sat Mar 10 17:42:07 2012 +0100
@@ -29,8 +29,10 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        if Preferences.getHelp("SyncType") == 0:
+        if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
             self.ftpRadioButton.setChecked(True)
+        elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
+            self.directoryRadioButton.setChecked(True)
         else:
             self.noneRadioButton.setChecked(True)
     
@@ -42,8 +44,11 @@
         """
         # save the settings
         if self.ftpRadioButton.isChecked():
-            Preferences.setHelp("SyncType", 0)
+            Preferences.setHelp("SyncType", SyncGlobals.SyncTypeFtp)
             return SyncGlobals.PageFTPSettings
+        elif self.directoryRadioButton.isChecked():
+            Preferences.setHelp("SyncType", SyncGlobals.SyncTypeDirectory)
+            return SyncGlobals.PageDirectorySettings
         else:
-            Preferences.setHelp("SyncType", -1)
+            Preferences.setHelp("SyncType", SyncGlobals.SyncTypeNone)
             return SyncGlobals.PageCheck
--- a/Helpviewer/Sync/SyncHostTypePage.ui	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncHostTypePage.ui	Sat Mar 10 17:42:07 2012 +0100
@@ -34,6 +34,16 @@
        </widget>
       </item>
       <item>
+       <widget class="QRadioButton" name="directoryRadioButton">
+        <property name="toolTip">
+         <string>Select to use a shared directory</string>
+        </property>
+        <property name="text">
+         <string>Shared Directory</string>
+        </property>
+       </widget>
+      </item>
+      <item>
        <widget class="QRadioButton" name="noneRadioButton">
         <property name="toolTip">
          <string>Select to use no particular host type</string>
@@ -61,6 +71,11 @@
    </item>
   </layout>
  </widget>
+ <tabstops>
+  <tabstop>ftpRadioButton</tabstop>
+  <tabstop>directoryRadioButton</tabstop>
+  <tabstop>noneRadioButton</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
 </ui>
--- a/Helpviewer/Sync/SyncManager.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Helpviewer/Sync/SyncManager.py	Sat Mar 10 17:42:07 2012 +0100
@@ -10,7 +10,9 @@
 from PyQt4.QtCore import QObject, pyqtSignal
 
 from .FtpSyncHandler import FtpSyncHandler
+from .DirectorySyncHandler import DirectorySyncHandler
 from .SyncAssistantDialog import SyncAssistantDialog
+from . import SyncGlobals
 
 import Preferences
 
@@ -25,9 +27,17 @@
         message (string)
     @signal syncMessage(message) emitted to give status info about the sync
         process (string)
+    @signal syncStatus(type_, done, message) emitted to indicate the synchronization
+        status (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, string)
+    @signal syncFinished(type_, done, download) emitted after a synchronization has
+        finished (string one of "bookmarks", "history", "passwords" or "useragents",
+        boolean, boolean)
     """
     syncError = pyqtSignal(str)
     syncMessage = pyqtSignal(str)
+    syncStatus = pyqtSignal(str, bool, str)
+    syncFinished = pyqtSignal(str, bool, bool)
     
     def __init__(self, parent=None):
         """
@@ -62,19 +72,22 @@
         
         @keyparam forceUpload flag indicating a forced upload of the files (boolean)
         """
+        if self.__handler is not None:
+            self.__handler.syncError.disconnect(self.__syncError)
+            self.__handler.syncFinished.disconnect(self.__syncFinished)
+            self.__handler.syncStatus.disconnect(self.__syncStatus)
+            self.__handler.syncMessage.disconnect(self.syncMessage)
+            self.__handler.shutdown()
+        
         if self.syncEnabled():
-            if Preferences.getHelp("SyncType") == 0:
-                if self.__handler is not None:
-                    self.__handler.syncError.disconnect(self.__syncError)
-                    self.__handler.syncFinished.disconnect(self.__syncFinished)
-                    self.__handler.syncStatus.disconnect(self.__syncStatus)
-                    self.__handler.syncMessage.disconnect(self.syncMessage)
-                    self.__handler.shutdown()
+            if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
                 self.__handler = FtpSyncHandler(self)
-                self.__handler.syncError.connect(self.__syncError)
-                self.__handler.syncFinished.connect(self.__syncFinished)
-                self.__handler.syncStatus.connect(self.__syncStatus)
-                self.__handler.syncMessage.connect(self.syncMessage)
+            elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
+                self.__handler = DirectorySyncHandler(self)
+            self.__handler.syncError.connect(self.__syncError)
+            self.__handler.syncFinished.connect(self.__syncFinished)
+            self.__handler.syncStatus.connect(self.__syncStatus)
+            self.__handler.syncMessage.connect(self.syncMessage)
             
             self.__handler.initialLoadAndCheck(forceUpload=forceUpload)
             
@@ -122,12 +135,6 @@
                 except TypeError:
                     pass
         else:
-            if self.__handler is not None:
-                self.__handler.syncError.disconnect(self.__syncError)
-                self.__handler.syncFinished.disconnect(self.__syncFinished)
-                self.__handler.syncStatus.disconnect(self.__syncStatus)
-                self.__handler.syncMessage.disconnect(self.syncMessage)
-                self.__handler.shutdown()
             self.__handler = None
             
             try:
@@ -158,7 +165,7 @@
         @return flag indicating enabled synchronization
         """
         return Preferences.getHelp("SyncEnabled") and \
-               Preferences.getHelp("SyncType") > -1
+               Preferences.getHelp("SyncType") != SyncGlobals.SyncTypeNone
     
     def __syncBookmarks(self):
         """
@@ -214,6 +221,7 @@
                 Helpviewer.HelpWindow.HelpWindow.passwordManager().reload()
             elif type_ == "useragents":
                 Helpviewer.HelpWindow.HelpWindow.userAgentsManager().reload()
+        self.syncFinished.emit(type_, status, download)
     
     def __syncStatus(self, type_, status, message):
         """
@@ -225,6 +233,7 @@
         @param message status message for the event (string)
         """
         self.syncMessage.emit(message)
+        self.syncStatus.emit(type_, status, message)
     
     def close(self):
         """
--- a/Preferences/__init__.py	Sat Mar 10 15:17:52 2012 +0100
+++ b/Preferences/__init__.py	Sat Mar 10 17:42:07 2012 +0100
@@ -667,6 +667,7 @@
         "SyncFtpPath": "",
         "SyncFtpPort": 21,
         "SyncFtpIdleTimeout": 30,
+        "SyncDirectoryPath": "",
         "WarnOnMultipleClose": True,
         "ClickToFlashEnabled": False,
         "ClickToFlashWhitelist": [],
--- a/changelog	Sat Mar 10 15:17:52 2012 +0100
+++ b/changelog	Sat Mar 10 17:42:07 2012 +0100
@@ -25,7 +25,7 @@
      (next to the global user agent string)
   -- added code to save the current page as a screen shot
   -- added capability to synchronize bookmarks, history, passwords and user agent
-     settings via an FTP server
+     settings via an FTP server or a shared directory
   -- added the ClickToFlash plug-in to (temporarily) block Flash and related content
   -- added capability to suppress Referer Headers (configurable via eric4 Web Browser
      configuration page)
--- a/eric5.e4p	Sat Mar 10 15:17:52 2012 +0100
+++ b/eric5.e4p	Sat Mar 10 17:42:07 2012 +0100
@@ -975,6 +975,8 @@
     <Source>Helpviewer/UserAgent/UserAgentWriter.py</Source>
     <Source>Helpviewer/UserAgent/UserAgentReader.py</Source>
     <Source>Helpviewer/ClosedTabsManager.py</Source>
+    <Source>Helpviewer/Sync/SyncDirectorySettingsPage.py</Source>
+    <Source>Helpviewer/Sync/DirectorySyncHandler.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
@@ -1258,6 +1260,7 @@
     <Form>Plugins/VcsPlugins/vcsMercurial/HgGraftDialog.ui</Form>
     <Form>Helpviewer/UrlBar/BookmarkActionSelectionDialog.ui</Form>
     <Form>Helpviewer/Sync/SyncEncryptionPage.ui</Form>
+    <Form>Helpviewer/Sync/SyncDirectorySettingsPage.ui</Form>
   </Forms>
   <Translations>
     <Translation>i18n/eric5_cs.qm</Translation>
--- a/i18n/eric5_cs.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_cs.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -5823,6 +5823,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -13088,92 +13114,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -29061,27 +29007,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Předvolby exportu</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Předvolby importu</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -42044,20 +41990,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -42128,6 +42079,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -42311,15 +42305,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -42349,13 +42443,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
+        <source>Shared Directory</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_de.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="de">
+<!DOCTYPE TS><TS version="2.0" language="de" sourcelanguage="">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -1661,8 +1660,8 @@
     </message>
     <message>
         <location filename="Helpviewer/Bookmarks/BookmarksMenu.py" line="142"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
-        <translation>In neuem &amp;Register öffnen	Strg+LMK</translation>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>In neuem &amp;Register öffnen<byte value="x9"/>Strg+LMK</translation>
     </message>
     <message>
         <location filename="Helpviewer/Bookmarks/BookmarksMenu.py" line="148"/>
@@ -1898,7 +1897,7 @@
     </message>
     <message>
         <location filename="Helpviewer/Bookmarks/BookmarksToolBar.py" line="90"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>In neuem &amp;Register öffnen\tStrg+LMK</translation>
     </message>
 </context>
@@ -5778,6 +5777,35 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation>Fehler beim Anlegen des gemeinsamen Verzeichnisses.
+{0}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation>Entfernte Datei kann nicht gelesen werden.
+{0}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation>Entfernte Datei kann nicht geschrieben werden.
+{0}</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation>Synchronisation beendet</translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -12850,92 +12878,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation>Entfernte Lesezeichendatei existiert! Synchronisiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation>Entfernte Lesezeichendatei existiert NICHT. Exportiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation>Lokale Lesezeichendatei existiert NICHT. Synchronisation wird übersprungen!</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation>Entfernte Chronikdatei existiert! Synchronisiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation>Entfernte Chronikdatei existiert NICHT. Exportiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation>Lokale Chronikdatei existiert NICHT. Synchronisation wird übersprungen!</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation>Entfernte Kennwörterdatei existiert! Synchronisiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation>Entfernte Kennwörterdatei existiert NICHT. Exportiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation>Lokale Kennwörterdatei existiert NICHT. Synchronisation wird übersprungen!</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation>Entfernte Datei mit User Agent Daten existiert! Synchronisiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation>Entfernte Datei mit User Agent Daten existiert NICHT. Exportiere lokale Kopie...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation>Lokale Datei mit User Agent Daten existiert NICHT. Synchronisation wird übersprungen!</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation>Kein geeigneter Proxy gefunden.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation>Lade lokale Lesezeichendatei hoch...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation>Lade lokale Chronikdatei hoch...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation>Lade lokale Kennwörterdatei hoch...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation>Lade lokale Datei mit User Agent Daten hoch...</translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation>Synchronisation beendet</translation>
     </message>
@@ -13186,7 +13134,7 @@
     </message>
     <message>
         <location filename="Helpviewer/HelpBrowserWV.py" line="899"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>Link in neuem Fenster öffnen\tStrg+LMK</translation>
     </message>
     <message>
@@ -26961,11 +26909,6 @@
         <translation>Anmeldedaten speichern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Passwords/PasswordManager.py" line="207"/>
-        <source>&lt;p&gt;Login data could not be saved to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Die Anmeldedaten konnten nicht in die Datei &lt;b&gt;{0}&lt;/b&gt; gespeichert werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/Passwords/PasswordManager.py" line="209"/>
         <source>Loading login data</source>
         <translation>Anmeldedaten laden</translation>
@@ -28236,27 +28179,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Einstellungen exportieren</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Einstellungen importieren</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Properties Dateien (*.ini);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation>Wähle den Python2 Interpreter</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation>Wähle den zu verwendenden Python2 Interpreter aus:</translation>
     </message>
@@ -41162,20 +41105,25 @@
         <translation>User Agent Einstellungen:</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation>FTP</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation>keine Synchronisation</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Fehler:&lt;/b&gt; {0}&lt;/font&gt;</translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation>Gemeinsames Verzeichnis</translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -41246,6 +41194,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation>Synchronisiere in ein gemeinsames Verzeichnis</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation>Bitte geben sie die Daten für eine Synchronisation über ein gemeinsames Verzeichnis ein. Alle Felder müssen ausgefüllt werden.</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation>Einstellungen für gemeinsames Verzeichnis</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation>Verzeichnisname:</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation>Gib den vollständigen Pfad des gemeinsamen Verzeichnisses ein</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation>Wähle das gemeinsame Verzeichnis über einen Verzeichnisauswahldialog</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation>Gemeinsames Verzeichnis</translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -41429,15 +41420,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation>Ungültiger Schlüssel angegeben.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation>Daten können nicht entschlüsselt werden.</translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation>Entfernte Lesezeichendatei existiert! Synchronisiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation>Entfernte Lesezeichendatei existiert NICHT. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation>Lokale Lesezeichendatei ist JÜNGER. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation>Lokale Lesezeichendatei existiert NICHT. Synchronisation wird übersprungen!</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation>Lade lokale Lesezeichendatei hoch...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation>Entfernte Chronikdatei existiert! Synchronisiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation>Entfernte Chronikdatei existiert NICHT. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation>Lokale Chronikdatei ist JÜNGER. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation>Lokale Chronikdatei existiert NICHT. Synchronisation wird übersprungen!</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation>Lade lokale Chronikdatei hoch...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation>Entfernte Kennwörterdatei existiert! Synchronisiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation>Entfernte Kennwörterdatei existiert NICHT. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation>Lokale Kennwörterdatei ist JÜNGER. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation>Lokale Kennwörterdatei existiert NICHT. Synchronisation wird übersprungen!</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation>Lade lokale Kennwörterdatei hoch...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation>Entfernte Datei mit User Agent Daten existiert! Synchronisiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation>Entfernte Datei mit User Agent Daten existiert NICHT. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation>Lokale Datei mit User Agent Daten ist JÜNGER. Exportiere lokale Kopie...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation>Lokale Datei mit User Agent Daten existiert NICHT. Synchronisation wird übersprungen!</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation>Lade lokale Datei mit User Agent Daten hoch...</translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -41467,14 +41558,24 @@
         <translation>FTP</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
         <source>Select to use no particular host type</source>
         <translation>Auswählen, um keinen bestimmten Servertyp zu verwenden</translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation>keinen</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
+        <source>Select to use a shared directory</source>
+        <translation>Auswählen, um ein gemeinsames Verzeichnis zu verwenden</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
-        <translation>keinen</translation>
+        <source>Shared Directory</source>
+        <translation>Gemeinsames Verzeichnis</translation>
     </message>
 </context>
 <context>
@@ -44943,11 +45044,6 @@
         <translation>User Agent Daten speichern</translation>
     </message>
     <message>
-        <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="67"/>
-        <source>&lt;p&gt;User agent data could not be saved to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Die User Agent Daten konnten nicht in die Datei &lt;b&gt;{0}&lt;/b&gt; gespeichert werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
-    </message>
-    <message>
         <location filename="Helpviewer/UserAgent/UserAgentManager.py" line="108"/>
         <source>Loading user agent data</source>
         <translation>User Agent Daten laden</translation>
--- a/i18n/eric5_en.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_en.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -5724,6 +5724,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -12767,92 +12793,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -28074,27 +28020,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -40759,20 +40705,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -40843,6 +40794,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -41026,15 +41020,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -41064,13 +41158,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
+        <source>Shared Directory</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
--- a/i18n/eric5_es.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_es.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -5815,6 +5815,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -12984,92 +13010,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished">No se ha encontrado ningún proxy adecuado.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -28764,27 +28710,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Exportar Preferencias</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Importar Preferencias</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Archivo de Propiedades (*.ini);;Todos los archivos (*)</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation>Seleccionar Intérprete de Python2</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation>Seleccionar el intérprete de Python2 a utilizar:</translation>
     </message>
@@ -41792,20 +41738,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished">&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -41876,6 +41827,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -42064,15 +42058,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -42102,13 +42196,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
+        <source>Shared Directory</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
--- a/i18n/eric5_fr.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_fr.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -6215,6 +6215,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -13985,92 +14011,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -30633,27 +30579,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Export des préférences</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Import des préférences</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45101,20 +45047,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -45185,6 +45136,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -45368,15 +45362,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -45406,13 +45500,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
+        <source>Shared Directory</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
--- a/i18n/eric5_it.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_it.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -5810,6 +5810,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -12923,92 +12949,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished">Nessun proxy utilizzabile trovato.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -28660,27 +28606,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Esporta Preferenze</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Importa Preferenze</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>File proprietà (*.ini);;Tutti i file(*)</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -41639,20 +41585,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -41723,6 +41674,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -41906,15 +41900,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -41944,14 +42038,24 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished">Nessuno</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
-        <translation type="unfinished">Nessuno</translation>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
--- a/i18n/eric5_ru.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_ru.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -5842,6 +5842,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -13021,92 +13047,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished">Не найдено подходящего прокси.</translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -28795,27 +28741,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Экспорт предпочтений</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Импорт предпочтений</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Файлы свойств (*.ini);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -41804,20 +41750,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -41888,6 +41839,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -42071,15 +42065,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -42109,13 +42203,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
+        <source>Shared Directory</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
--- a/i18n/eric5_tr.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_tr.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -5826,6 +5826,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -13100,92 +13126,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -28960,27 +28906,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>Seçenekleri Dışa Aktar</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>Seçenekleri İçe Aktar</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -41824,20 +41770,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -41908,6 +41859,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -42091,15 +42085,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -42129,14 +42223,24 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished">Yok</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
-        <translation type="unfinished">Yok</translation>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
--- a/i18n/eric5_zh_CN.GB2312.ts	Sat Mar 10 15:17:52 2012 +0100
+++ b/i18n/eric5_zh_CN.GB2312.ts	Sat Mar 10 17:42:07 2012 +0100
@@ -6209,6 +6209,32 @@
     </message>
 </context>
 <context>
+    <name>DirectorySyncHandler</name>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="68"/>
+        <source>Error creating the shared directory.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="89"/>
+        <source>Cannot read remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="120"/>
+        <source>Cannot write remote file.
+{0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/DirectorySyncHandler.py" line="179"/>
+        <source>Synchronization finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DownloadAskActionDialog</name>
     <message>
         <location filename="Helpviewer/Download/DownloadAskActionDialog.ui" line="14"/>
@@ -13932,92 +13958,12 @@
 <context>
     <name>FtpSyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="59"/>
-        <source>Remote bookmarks file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="61"/>
-        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="63"/>
-        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="68"/>
-        <source>Remote history file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="70"/>
-        <source>Remote history file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="72"/>
-        <source>Local history file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="77"/>
-        <source>Remote logins file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="79"/>
-        <source>Remote logins file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="81"/>
-        <source>Local logins file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="86"/>
-        <source>Remote user agent settings file exists! Syncing local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="88"/>
-        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="91"/>
-        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="135"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="89"/>
         <source>No suitable proxy found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="65"/>
-        <source>Uploading local bookmarks file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="74"/>
-        <source>Uploading local history file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="83"/>
-        <source>Uploading local logins file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="94"/>
-        <source>Uploading local user agent settings file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="211"/>
+        <location filename="Helpviewer/Sync/FtpSyncHandler.py" line="166"/>
         <source>Synchronization finished</source>
         <translation type="unfinished"></translation>
     </message>
@@ -30594,27 +30540,27 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="Preferences/__init__.py" line="996"/>
+        <location filename="Preferences/__init__.py" line="997"/>
         <source>Export Preferences</source>
         <translation>导出首选项</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Import Preferences</source>
         <translation>导入首选项</translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1023"/>
+        <location filename="Preferences/__init__.py" line="1024"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select Python2 Interpreter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Preferences/__init__.py" line="1116"/>
+        <location filename="Preferences/__init__.py" line="1117"/>
         <source>Select the Python2 interpreter to be used:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45070,20 +45016,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="51"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="53"/>
         <source>FTP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="54"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="59"/>
         <source>No Synchronization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="153"/>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="157"/>
         <source>&lt;font color=&quot;#FF0000&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; {0}&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncCheckPage.py" line="56"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncDataPage</name>
@@ -45154,6 +45105,49 @@
     </message>
 </context>
 <context>
+    <name>SyncDirectorySettingsPage</name>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="17"/>
+        <source>Synchronize to a shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="20"/>
+        <source>Please enter the data for synchronization via a shared directory. All fields must be filled.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="26"/>
+        <source>Shared Directory Settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="32"/>
+        <source>Directory Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="39"/>
+        <source>Enter the full path of the shared directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="46"/>
+        <source>Select the shared directory via a directory selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished">……</translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncDirectorySettingsPage.py" line="65"/>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SyncEncryptionPage</name>
     <message>
         <location filename="Helpviewer/Sync/SyncEncryptionPage.ui" line="14"/>
@@ -45337,15 +45331,115 @@
 <context>
     <name>SyncHandler</name>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="134"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="191"/>
         <source>Invalid encryption key given.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Helpviewer/Sync/SyncHandler.py" line="139"/>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="196"/>
         <source>Data cannot be decrypted.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="56"/>
+        <source>Remote bookmarks file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="58"/>
+        <source>Remote bookmarks file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="60"/>
+        <source>Local bookmarks file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="62"/>
+        <source>Local bookmarks file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="64"/>
+        <source>Uploading local bookmarks file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="67"/>
+        <source>Remote history file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="69"/>
+        <source>Remote history file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="71"/>
+        <source>Local history file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="73"/>
+        <source>Local history file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="75"/>
+        <source>Uploading local history file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="78"/>
+        <source>Remote logins file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="80"/>
+        <source>Remote logins file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="82"/>
+        <source>Local logins file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="84"/>
+        <source>Local logins file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="86"/>
+        <source>Uploading local logins file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="89"/>
+        <source>Remote user agent settings file exists! Syncing local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="91"/>
+        <source>Remote user agent settings file does NOT exists. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="94"/>
+        <source>Local user agent settings file is NEWER. Exporting local copy...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="96"/>
+        <source>Local user agent settings file does NOT exist. Skipping synchronization!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHandler.py" line="99"/>
+        <source>Uploading local user agent settings file...</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SyncHostTypePage</name>
@@ -45375,14 +45469,24 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="49"/>
+        <source>Select to use no particular host type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="52"/>
+        <source>None</source>
+        <translation type="unfinished">无</translation>
+    </message>
+    <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="39"/>
-        <source>Select to use no particular host type</source>
+        <source>Select to use a shared directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Helpviewer/Sync/SyncHostTypePage.ui" line="42"/>
-        <source>None</source>
-        <translation type="unfinished">无</translation>
+        <source>Shared Directory</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>

eric ide

mercurial