54 """ |
54 """ |
55 menu = BookmarksMenu(self) |
55 menu = BookmarksMenu(self) |
56 menu.openUrl.connect(self.openUrl) |
56 menu.openUrl.connect(self.openUrl) |
57 menu.newUrl.connect(self.newUrl) |
57 menu.newUrl.connect(self.newUrl) |
58 return menu |
58 return menu |
|
59 |
|
60 def __updateVisitCount(self, idx): |
|
61 """ |
|
62 Private method to update the visit count of a bookmark. |
|
63 |
|
64 @param idx index of the bookmark item (QModelIndex) |
|
65 """ |
|
66 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
|
67 |
|
68 bookmarkNode = self.model().node(idx) |
|
69 manager = WebBrowserWindow.bookmarksManager() |
|
70 manager.incVisitCount(bookmarkNode) |
59 |
71 |
60 def __activated(self, idx): |
72 def __activated(self, idx): |
61 """ |
73 """ |
62 Private slot handling the activated signal. |
74 Private slot handling the activated signal. |
63 |
75 |
69 idx.data(Qt.DisplayRole)) |
81 idx.data(Qt.DisplayRole)) |
70 else: |
82 else: |
71 self.openUrl.emit( |
83 self.openUrl.emit( |
72 idx.data(BookmarksModel.UrlRole), |
84 idx.data(BookmarksModel.UrlRole), |
73 idx.data(Qt.DisplayRole)) |
85 idx.data(Qt.DisplayRole)) |
|
86 self.__updateVisitCount(idx) |
74 self.resetFlags() |
87 self.resetFlags() |
75 |
88 |
76 def postPopulated(self): |
89 def postPopulated(self): |
77 """ |
90 """ |
78 Public method to add any actions after the tree. |
91 Public method to add any actions after the tree. |
122 child.data(Qt.DisplayRole)) |
135 child.data(Qt.DisplayRole)) |
123 else: |
136 else: |
124 self.newUrl.emit( |
137 self.newUrl.emit( |
125 child.data(BookmarksModel.UrlRole), |
138 child.data(BookmarksModel.UrlRole), |
126 child.data(Qt.DisplayRole)) |
139 child.data(Qt.DisplayRole)) |
|
140 self.__updateVisitCount(child) |
127 |
141 |
128 def __contextMenuRequested(self, pos): |
142 def __contextMenuRequested(self, pos): |
129 """ |
143 """ |
130 Private slot to handle the context menu request. |
144 Private slot to handle the context menu request. |
131 |
145 |
177 idx = self.index(self.sender()) |
191 idx = self.index(self.sender()) |
178 |
192 |
179 self.openUrl.emit( |
193 self.openUrl.emit( |
180 idx.data(BookmarksModel.UrlRole), |
194 idx.data(BookmarksModel.UrlRole), |
181 idx.data(Qt.DisplayRole)) |
195 idx.data(Qt.DisplayRole)) |
|
196 self.__updateVisitCount(idx) |
182 |
197 |
183 def __openBookmarkInNewTab(self): |
198 def __openBookmarkInNewTab(self): |
184 """ |
199 """ |
185 Private slot to open a bookmark in a new browser tab. |
200 Private slot to open a bookmark in a new browser tab. |
186 """ |
201 """ |
187 idx = self.index(self.sender()) |
202 idx = self.index(self.sender()) |
188 |
203 |
189 self.newUrl.emit( |
204 self.newUrl.emit( |
190 idx.data(BookmarksModel.UrlRole), |
205 idx.data(BookmarksModel.UrlRole), |
191 idx.data(Qt.DisplayRole)) |
206 idx.data(Qt.DisplayRole)) |
|
207 self.__updateVisitCount(idx) |
192 |
208 |
193 def __openBookmarkInNewWindow(self): |
209 def __openBookmarkInNewWindow(self): |
194 """ |
210 """ |
195 Private slot to open a bookmark in a new window. |
211 Private slot to open a bookmark in a new window. |
196 """ |
212 """ |
197 idx = self.index(self.sender()) |
213 idx = self.index(self.sender()) |
198 url = idx.data(BookmarksModel.UrlRole) |
214 url = idx.data(BookmarksModel.UrlRole) |
199 |
215 |
200 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
216 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
201 WebBrowserWindow.mainWindow().newWindow(url) |
217 WebBrowserWindow.mainWindow().newWindow(url) |
|
218 self.__updateVisitCount(idx) |
202 |
219 |
203 def __openBookmarkInPrivateWindow(self): |
220 def __openBookmarkInPrivateWindow(self): |
204 """ |
221 """ |
205 Private slot to open a bookmark in a new private window. |
222 Private slot to open a bookmark in a new private window. |
206 """ |
223 """ |
207 idx = self.index(self.sender()) |
224 idx = self.index(self.sender()) |
208 url = idx.data(BookmarksModel.UrlRole) |
225 url = idx.data(BookmarksModel.UrlRole) |
209 |
226 |
210 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
227 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
211 WebBrowserWindow.mainWindow().newPrivateWindow(url) |
228 WebBrowserWindow.mainWindow().newPrivateWindow(url) |
|
229 self.__updateVisitCount(idx) |
212 |
230 |
213 def __removeBookmark(self): |
231 def __removeBookmark(self): |
214 """ |
232 """ |
215 Private slot to remove a bookmark. |
233 Private slot to remove a bookmark. |
216 """ |
234 """ |
246 |
264 |
247 @param parent reference to the parent widget (QWidget) |
265 @param parent reference to the parent widget (QWidget) |
248 """ |
266 """ |
249 BookmarksMenu.__init__(self, parent) |
267 BookmarksMenu.__init__(self, parent) |
250 |
268 |
251 self.__bookmarksManager = None |
269 ## self.__bookmarksManager = None |
252 self.__initialActions = [] |
270 self.__initialActions = [] |
253 |
271 |
254 def prePopulated(self): |
272 def prePopulated(self): |
255 """ |
273 """ |
256 Public method to add any actions before the tree. |
274 Public method to add any actions before the tree. |
257 |
275 |
258 @return flag indicating if any actions were added (boolean) |
276 @return flag indicating if any actions were added (boolean) |
259 """ |
277 """ |
260 import WebBrowser.WebBrowserWindow |
278 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
261 |
279 |
262 self.__bookmarksManager = WebBrowser.WebBrowserWindow.WebBrowserWindow\ |
280 manager = WebBrowserWindow.bookmarksManager() |
263 .bookmarksManager() |
281 self.setModel(manager.bookmarksModel()) |
264 self.setModel(self.__bookmarksManager.bookmarksModel()) |
282 self.setRootIndex(manager.bookmarksModel().nodeIndex(manager.menu())) |
265 self.setRootIndex(self.__bookmarksManager.bookmarksModel() |
|
266 .nodeIndex(self.__bookmarksManager.menu())) |
|
267 |
283 |
268 # initial actions |
284 # initial actions |
269 for act in self.__initialActions: |
285 for act in self.__initialActions: |
270 if act == "--SEPARATOR--": |
286 if act == "--SEPARATOR--": |
271 self.addSeparator() |
287 self.addSeparator() |