Helpviewer/Sync/SyncManager.py

changeset 1695
7b115f986d48
parent 1680
28e57079dab5
child 1700
40c911b8c0dd
equal deleted inserted replaced
1694:648466a9451b 1695:7b115f986d48
8 """ 8 """
9 9
10 from PyQt4.QtCore import QObject, pyqtSignal 10 from PyQt4.QtCore import QObject, pyqtSignal
11 11
12 from .FtpSyncHandler import FtpSyncHandler 12 from .FtpSyncHandler import FtpSyncHandler
13 from .DirectorySyncHandler import DirectorySyncHandler
13 from .SyncAssistantDialog import SyncAssistantDialog 14 from .SyncAssistantDialog import SyncAssistantDialog
15 from . import SyncGlobals
14 16
15 import Preferences 17 import Preferences
16 18
17 import Helpviewer.HelpWindow 19 import Helpviewer.HelpWindow
18 20
23 25
24 @signal syncError(message) emitted for a general error with the error 26 @signal syncError(message) emitted for a general error with the error
25 message (string) 27 message (string)
26 @signal syncMessage(message) emitted to give status info about the sync 28 @signal syncMessage(message) emitted to give status info about the sync
27 process (string) 29 process (string)
30 @signal syncStatus(type_, done, message) emitted to indicate the synchronization
31 status (string one of "bookmarks", "history", "passwords" or "useragents",
32 boolean, string)
33 @signal syncFinished(type_, done, download) emitted after a synchronization has
34 finished (string one of "bookmarks", "history", "passwords" or "useragents",
35 boolean, boolean)
28 """ 36 """
29 syncError = pyqtSignal(str) 37 syncError = pyqtSignal(str)
30 syncMessage = pyqtSignal(str) 38 syncMessage = pyqtSignal(str)
39 syncStatus = pyqtSignal(str, bool, str)
40 syncFinished = pyqtSignal(str, bool, bool)
31 41
32 def __init__(self, parent=None): 42 def __init__(self, parent=None):
33 """ 43 """
34 Constructor 44 Constructor
35 45
60 """ 70 """
61 Public method to load the settings. 71 Public method to load the settings.
62 72
63 @keyparam forceUpload flag indicating a forced upload of the files (boolean) 73 @keyparam forceUpload flag indicating a forced upload of the files (boolean)
64 """ 74 """
75 if self.__handler is not None:
76 self.__handler.syncError.disconnect(self.__syncError)
77 self.__handler.syncFinished.disconnect(self.__syncFinished)
78 self.__handler.syncStatus.disconnect(self.__syncStatus)
79 self.__handler.syncMessage.disconnect(self.syncMessage)
80 self.__handler.shutdown()
81
65 if self.syncEnabled(): 82 if self.syncEnabled():
66 if Preferences.getHelp("SyncType") == 0: 83 if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
67 if self.__handler is not None:
68 self.__handler.syncError.disconnect(self.__syncError)
69 self.__handler.syncFinished.disconnect(self.__syncFinished)
70 self.__handler.syncStatus.disconnect(self.__syncStatus)
71 self.__handler.syncMessage.disconnect(self.syncMessage)
72 self.__handler.shutdown()
73 self.__handler = FtpSyncHandler(self) 84 self.__handler = FtpSyncHandler(self)
74 self.__handler.syncError.connect(self.__syncError) 85 elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
75 self.__handler.syncFinished.connect(self.__syncFinished) 86 self.__handler = DirectorySyncHandler(self)
76 self.__handler.syncStatus.connect(self.__syncStatus) 87 self.__handler.syncError.connect(self.__syncError)
77 self.__handler.syncMessage.connect(self.syncMessage) 88 self.__handler.syncFinished.connect(self.__syncFinished)
89 self.__handler.syncStatus.connect(self.__syncStatus)
90 self.__handler.syncMessage.connect(self.syncMessage)
78 91
79 self.__handler.initialLoadAndCheck(forceUpload=forceUpload) 92 self.__handler.initialLoadAndCheck(forceUpload=forceUpload)
80 93
81 # connect sync manager to bookmarks manager 94 # connect sync manager to bookmarks manager
82 if Preferences.getHelp("SyncBookmarks"): 95 if Preferences.getHelp("SyncBookmarks"):
120 Helpviewer.HelpWindow.HelpWindow.userAgentsManager()\ 133 Helpviewer.HelpWindow.HelpWindow.userAgentsManager()\
121 .userAgentSettingsSaved.disconnect(self.__syncUserAgents) 134 .userAgentSettingsSaved.disconnect(self.__syncUserAgents)
122 except TypeError: 135 except TypeError:
123 pass 136 pass
124 else: 137 else:
125 if self.__handler is not None:
126 self.__handler.syncError.disconnect(self.__syncError)
127 self.__handler.syncFinished.disconnect(self.__syncFinished)
128 self.__handler.syncStatus.disconnect(self.__syncStatus)
129 self.__handler.syncMessage.disconnect(self.syncMessage)
130 self.__handler.shutdown()
131 self.__handler = None 138 self.__handler = None
132 139
133 try: 140 try:
134 Helpviewer.HelpWindow.HelpWindow.bookmarksManager().bookmarksSaved\ 141 Helpviewer.HelpWindow.HelpWindow.bookmarksManager().bookmarksSaved\
135 .disconnect(self.__syncBookmarks) 142 .disconnect(self.__syncBookmarks)
156 Public method to check, if synchronization is enabled. 163 Public method to check, if synchronization is enabled.
157 164
158 @return flag indicating enabled synchronization 165 @return flag indicating enabled synchronization
159 """ 166 """
160 return Preferences.getHelp("SyncEnabled") and \ 167 return Preferences.getHelp("SyncEnabled") and \
161 Preferences.getHelp("SyncType") > -1 168 Preferences.getHelp("SyncType") != SyncGlobals.SyncTypeNone
162 169
163 def __syncBookmarks(self): 170 def __syncBookmarks(self):
164 """ 171 """
165 Private slot to synchronize the bookmarks. 172 Private slot to synchronize the bookmarks.
166 """ 173 """
212 Helpviewer.HelpWindow.HelpWindow.historyManager().reload() 219 Helpviewer.HelpWindow.HelpWindow.historyManager().reload()
213 elif type_ == "passwords": 220 elif type_ == "passwords":
214 Helpviewer.HelpWindow.HelpWindow.passwordManager().reload() 221 Helpviewer.HelpWindow.HelpWindow.passwordManager().reload()
215 elif type_ == "useragents": 222 elif type_ == "useragents":
216 Helpviewer.HelpWindow.HelpWindow.userAgentsManager().reload() 223 Helpviewer.HelpWindow.HelpWindow.userAgentsManager().reload()
224 self.syncFinished.emit(type_, status, download)
217 225
218 def __syncStatus(self, type_, status, message): 226 def __syncStatus(self, type_, status, message):
219 """ 227 """
220 Private slot to handle a status update of a synchronization event. 228 Private slot to handle a status update of a synchronization event.
221 229
223 of "bookmarks", "history", "passwords" or "useragents") 231 of "bookmarks", "history", "passwords" or "useragents")
224 @param status flag indicating success (boolean) 232 @param status flag indicating success (boolean)
225 @param message status message for the event (string) 233 @param message status message for the event (string)
226 """ 234 """
227 self.syncMessage.emit(message) 235 self.syncMessage.emit(message)
236 self.syncStatus.emit(type_, status, message)
228 237
229 def close(self): 238 def close(self):
230 """ 239 """
231 Public slot to shut down the synchronization manager. 240 Public slot to shut down the synchronization manager.
232 """ 241 """

eric ide

mercurial