Helpviewer/Sync/SyncManager.py

changeset 1695
7b115f986d48
parent 1680
28e57079dab5
child 1700
40c911b8c0dd
--- 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):
         """

eric ide

mercurial