20 class UserAgentManager(QObject): |
20 class UserAgentManager(QObject): |
21 """ |
21 """ |
22 Class implementing a user agent manager. |
22 Class implementing a user agent manager. |
23 |
23 |
24 @signal changed() emitted to indicate a change |
24 @signal changed() emitted to indicate a change |
25 @signal userAgentSettingsSaved() emitted after the user agent settings were saved |
25 @signal userAgentSettingsSaved() emitted after the user agent settings |
|
26 were saved |
26 """ |
27 """ |
27 changed = pyqtSignal() |
28 changed = pyqtSignal() |
28 userAgentSettingsSaved = pyqtSignal() |
29 userAgentSettingsSaved = pyqtSignal() |
29 |
30 |
30 def __init__(self, parent=None): |
31 def __init__(self, parent=None): |
33 |
34 |
34 @param parent reference to the parent object (QObject) |
35 @param parent reference to the parent object (QObject) |
35 """ |
36 """ |
36 super().__init__(parent) |
37 super().__init__(parent) |
37 |
38 |
38 self.__agents = {} # dictionary with agent strings indexed by host name |
39 self.__agents = {} # dictionary with agent strings indexed |
|
40 # by host name |
39 self.__loaded = False |
41 self.__loaded = False |
40 self.__saveTimer = AutoSaver(self, self.save) |
42 self.__saveTimer = AutoSaver(self, self.save) |
41 |
43 |
42 self.changed.connect(self.__saveTimer.changeOccurred) |
44 self.changed.connect(self.__saveTimer.changeOccurred) |
43 |
45 |
45 """ |
47 """ |
46 Public method to get the file name of the user agents file. |
48 Public method to get the file name of the user agents file. |
47 |
49 |
48 @return name of the user agents file (string) |
50 @return name of the user agents file (string) |
49 """ |
51 """ |
50 return os.path.join(Utilities.getConfigDir(), "browser", "userAgentSettings.xml") |
52 return os.path.join( |
|
53 Utilities.getConfigDir(), "browser", "userAgentSettings.xml") |
51 |
54 |
52 def save(self): |
55 def save(self): |
53 """ |
56 """ |
54 Public slot to save the user agent entries to disk. |
57 Public slot to save the user agent entries to disk. |
55 """ |
58 """ |
60 agentFile = self.getFileName() |
63 agentFile = self.getFileName() |
61 writer = UserAgentWriter() |
64 writer = UserAgentWriter() |
62 if not writer.write(agentFile, self.__agents): |
65 if not writer.write(agentFile, self.__agents): |
63 E5MessageBox.critical(None, |
66 E5MessageBox.critical(None, |
64 self.trUtf8("Saving user agent data"), |
67 self.trUtf8("Saving user agent data"), |
65 self.trUtf8("""<p>User agent data could not be saved to <b>{0}</b></p>""" |
68 self.trUtf8( |
66 ).format(agentFile)) |
69 """<p>User agent data could not be saved to""" |
|
70 """ <b>{0}</b></p>""").format(agentFile)) |
67 else: |
71 else: |
68 self.userAgentSettingsSaved.emit() |
72 self.userAgentSettingsSaved.emit() |
69 |
73 |
70 def __load(self): |
74 def __load(self): |
71 """ |
75 """ |
154 del self.__agents[host] |
158 del self.__agents[host] |
155 self.changed.emit() |
159 self.changed.emit() |
156 |
160 |
157 def allHostNames(self): |
161 def allHostNames(self): |
158 """ |
162 """ |
159 Public method to get a list of all host names we a user agent setting for. |
163 Public method to get a list of all host names we a user agent setting |
|
164 for. |
160 |
165 |
161 @return sorted list of all host names (list of strings) |
166 @return sorted list of all host names (list of strings) |
162 """ |
167 """ |
163 if not self.__loaded: |
168 if not self.__loaded: |
164 self.__load() |
169 self.__load() |