80 @signal historyReset() emitted after the history has been reset |
80 @signal historyReset() emitted after the history has been reset |
81 @signal entryAdded emitted after a history entry has been added |
81 @signal entryAdded emitted after a history entry has been added |
82 @signal entryRemoved emitted after a history entry has been removed |
82 @signal entryRemoved emitted after a history entry has been removed |
83 @signal entryUpdated(int) emitted after a history entry has been updated |
83 @signal entryUpdated(int) emitted after a history entry has been updated |
84 """ |
84 """ |
|
85 historyCleared = pyqtSignal() |
|
86 historyReset = pyqtSignal() |
|
87 entryAdded = pyqtSignal(HistoryEntry) |
|
88 entryRemoved = pyqtSignal(HistoryEntry) |
|
89 entryUpdated = pyqtSignal(int) |
|
90 |
85 def __init__(self, parent = None): |
91 def __init__(self, parent = None): |
86 """ |
92 """ |
87 Constructor |
93 Constructor |
88 |
94 |
89 @param parent reference to the parent object (QObject) |
95 @param parent reference to the parent object (QObject) |
95 self.__history = [] |
101 self.__history = [] |
96 self.__lastSavedUrl = "" |
102 self.__lastSavedUrl = "" |
97 |
103 |
98 self.__expiredTimer = QTimer(self) |
104 self.__expiredTimer = QTimer(self) |
99 self.__expiredTimer.setSingleShot(True) |
105 self.__expiredTimer.setSingleShot(True) |
100 self.connect(self.__expiredTimer, SIGNAL("timeout()"), |
106 self.__expiredTimer.timeout.connect(self.__checkForExpired) |
101 self.__checkForExpired) |
|
102 |
107 |
103 self.__frequencyTimer = QTimer(self) |
108 self.__frequencyTimer = QTimer(self) |
104 self.__frequencyTimer.setSingleShot(True) |
109 self.__frequencyTimer.setSingleShot(True) |
105 self.connect(self.__frequencyTimer, SIGNAL("timeout()"), |
110 self.__frequencyTimer.timeout.connect(self.__refreshFrequencies) |
106 self.__refreshFrequencies) |
111 |
107 |
112 self.entryAdded.connect(self.__saveTimer.changeOccurred) |
108 self.connect(self, SIGNAL("entryAdded"), |
113 self.entryRemoved.connect(self.__saveTimer.changeOccurred) |
109 self.__saveTimer.changeOccurred) |
|
110 self.connect(self, SIGNAL("entryRemoved"), |
|
111 self.__saveTimer.changeOccurred) |
|
112 |
114 |
113 self.__load() |
115 self.__load() |
114 |
116 |
115 self.__historyModel = HistoryModel(self, self) |
117 self.__historyModel = HistoryModel(self, self) |
116 self.__historyFilterModel = HistoryFilterModel(self.__historyModel, self) |
118 self.__historyFilterModel = HistoryFilterModel(self.__historyModel, self) |
156 except IndexError: |
158 except IndexError: |
157 self.__lastSavedUrl = "" |
159 self.__lastSavedUrl = "" |
158 else: |
160 else: |
159 self.__lastSavedUrl = "" |
161 self.__lastSavedUrl = "" |
160 self.__saveTimer.changeOccurred() |
162 self.__saveTimer.changeOccurred() |
161 self.emit(SIGNAL("historyReset()")) |
163 self.historyReset.emit() |
162 |
164 |
163 def historyContains(self, url): |
165 def historyContains(self, url): |
164 """ |
166 """ |
165 Public method to check the history for an entry. |
167 Public method to check the history for an entry. |
166 |
168 |
178 globalSettings = QWebSettings.globalSettings() |
180 globalSettings = QWebSettings.globalSettings() |
179 if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled): |
181 if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled): |
180 return |
182 return |
181 |
183 |
182 self.__history.insert(0, itm) |
184 self.__history.insert(0, itm) |
183 self.emit(SIGNAL("entryAdded"), itm) |
185 self.entryAdded.emit(itm) |
184 if len(self.__history) == 1: |
186 if len(self.__history) == 1: |
185 self.__checkForExpired() |
187 self.__checkForExpired() |
186 |
188 |
187 def _removeHistoryEntry(self, itm): |
189 def _removeHistoryEntry(self, itm): |
188 """ |
190 """ |
190 |
192 |
191 @param itm reference to the history item to remove (HistoryEntry) |
193 @param itm reference to the history item to remove (HistoryEntry) |
192 """ |
194 """ |
193 self.__lastSavedUrl = "" |
195 self.__lastSavedUrl = "" |
194 self.__history.remove(itm) |
196 self.__history.remove(itm) |
195 self.emit(SIGNAL("entryRemoved"), itm) |
197 self.entryRemoved.emit(itm) |
196 |
198 |
197 def addHistoryEntry(self, url): |
199 def addHistoryEntry(self, url): |
198 """ |
200 """ |
199 Public method to add a history entry. |
201 Public method to add a history entry. |
200 |
202 |
218 if url == self.__history[index].url: |
220 if url == self.__history[index].url: |
219 self.__history[index].title = title |
221 self.__history[index].title = title |
220 self.__saveTimer.changeOccurred() |
222 self.__saveTimer.changeOccurred() |
221 if not self.__lastSavedUrl: |
223 if not self.__lastSavedUrl: |
222 self.__lastSavedUrl = self.__history[index].url |
224 self.__lastSavedUrl = self.__history[index].url |
223 self.emit(SIGNAL("entryUpdated(int)"), index) |
225 self.entryUpdated.emit(index) |
224 break |
226 break |
225 |
227 |
226 def removeHistoryEntry(self, url, title = ""): |
228 def removeHistoryEntry(self, url, title = ""): |
227 """ |
229 """ |
228 Public method to remove a history entry. |
230 Public method to remove a history entry. |
280 if nextTimeout > 0: |
282 if nextTimeout > 0: |
281 break |
283 break |
282 |
284 |
283 itm = self.__history.pop(-1) |
285 itm = self.__history.pop(-1) |
284 self.__lastSavedUrl = "" |
286 self.__lastSavedUrl = "" |
285 self.emit(SIGNAL("entryRemoved"), itm) |
287 self.entryRemoved.emit(itm) |
286 self.__saveTimer.saveIfNeccessary() |
288 self.__saveTimer.saveIfNeccessary() |
287 |
289 |
288 if nextTimeout > 0: |
290 if nextTimeout > 0: |
289 self.__expiredTimer.start(nextTimeout * 1000) |
291 self.__expiredTimer.start(nextTimeout * 1000) |
290 |
292 |
321 """ |
323 """ |
322 self.__history = [] |
324 self.__history = [] |
323 self.__lastSavedUrl = "" |
325 self.__lastSavedUrl = "" |
324 self.__saveTimer.changeOccurred() |
326 self.__saveTimer.changeOccurred() |
325 self.__saveTimer.saveIfNeccessary() |
327 self.__saveTimer.saveIfNeccessary() |
326 self.emit(SIGNAL("historyReset()")) |
328 self.historyReset.emit() |
327 self.emit(SIGNAL("historyCleared()")) |
329 self.historyCleared.emit() |
328 |
330 |
329 def __load(self): |
331 def __load(self): |
330 """ |
332 """ |
331 Private method to load the saved history entries from disk. |
333 Private method to load the saved history entries from disk. |
332 """ |
334 """ |