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 """ |