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