Helpviewer/History/HistoryManager.py

changeset 488
4174c2707dba
parent 323
75182cd9b2c5
child 501
5c615a85241a
equal deleted inserted replaced
487:4d41d03d3d00 488:4174c2707dba
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 """

eric ide

mercurial