15 import Helpviewer.HelpWindow |
15 import Helpviewer.HelpWindow |
16 |
16 |
17 from .BookmarksModel import BookmarksModel |
17 from .BookmarksModel import BookmarksModel |
18 from .BookmarkNode import BookmarkNode |
18 from .BookmarkNode import BookmarkNode |
19 |
19 |
|
20 |
20 class BookmarksMenu(E5ModelMenu): |
21 class BookmarksMenu(E5ModelMenu): |
21 """ |
22 """ |
22 Class implementing the bookmarks menu base class. |
23 Class implementing the bookmarks menu base class. |
23 |
24 |
24 @signal openUrl(QUrl, str) emitted to open a URL in the current tab |
25 @signal openUrl(QUrl, str) emitted to open a URL in the current tab |
25 @signal newUrl(QUrl, str) emitted to open a URL in a new tab |
26 @signal newUrl(QUrl, str) emitted to open a URL in a new tab |
26 """ |
27 """ |
27 openUrl = pyqtSignal(QUrl, str) |
28 openUrl = pyqtSignal(QUrl, str) |
28 newUrl = pyqtSignal(QUrl, str) |
29 newUrl = pyqtSignal(QUrl, str) |
29 |
30 |
30 def __init__(self, parent = None): |
31 def __init__(self, parent=None): |
31 """ |
32 """ |
32 Constructor |
33 Constructor |
33 |
34 |
34 @param parent reference to the parent widget (QWidget) |
35 @param parent reference to the parent widget (QWidget) |
35 """ |
36 """ |
59 |
60 |
60 @param idx index of the activated item (QModelIndex) |
61 @param idx index of the activated item (QModelIndex) |
61 """ |
62 """ |
62 if self._keyboardModifiers & Qt.ControlModifier: |
63 if self._keyboardModifiers & Qt.ControlModifier: |
63 self.newUrl.emit( |
64 self.newUrl.emit( |
64 idx.data(BookmarksModel.UrlRole), |
65 idx.data(BookmarksModel.UrlRole), |
65 idx.data(Qt.DisplayRole)) |
66 idx.data(Qt.DisplayRole)) |
66 else: |
67 else: |
67 self.openUrl.emit( |
68 self.openUrl.emit( |
68 idx.data(BookmarksModel.UrlRole), |
69 idx.data(BookmarksModel.UrlRole), |
69 idx.data(Qt.DisplayRole)) |
70 idx.data(Qt.DisplayRole)) |
70 self.resetFlags() |
71 self.resetFlags() |
71 |
72 |
72 def postPopulated(self): |
73 def postPopulated(self): |
73 """ |
74 """ |
112 if child.data(BookmarksModel.TypeRole) != BookmarkNode.Bookmark: |
113 if child.data(BookmarksModel.TypeRole) != BookmarkNode.Bookmark: |
113 continue |
114 continue |
114 |
115 |
115 if i == 0: |
116 if i == 0: |
116 self.openUrl.emit( |
117 self.openUrl.emit( |
117 child.data(BookmarksModel.UrlRole), |
118 child.data(BookmarksModel.UrlRole), |
118 child.data(Qt.DisplayRole)) |
119 child.data(Qt.DisplayRole)) |
119 else: |
120 else: |
120 self.newUrl.emit( |
121 self.newUrl.emit( |
121 child.data(BookmarksModel.UrlRole), |
122 child.data(BookmarksModel.UrlRole), |
122 child.data(Qt.DisplayRole)) |
123 child.data(Qt.DisplayRole)) |
123 |
124 |
124 def __contextMenuRequested(self, pos): |
125 def __contextMenuRequested(self, pos): |
125 """ |
126 """ |
126 Private slot to handle the context menu request. |
127 Private slot to handle the context menu request. |
134 v = act.data() |
135 v = act.data() |
135 |
136 |
136 menuAction = menu.addAction(self.trUtf8("&Open"), self.__openBookmark) |
137 menuAction = menu.addAction(self.trUtf8("&Open"), self.__openBookmark) |
137 menuAction.setData(v) |
138 menuAction.setData(v) |
138 |
139 |
139 menuAction = menu.addAction(self.trUtf8("Open in New &Tab\tCtrl+LMB"), |
140 menuAction = menu.addAction(self.trUtf8("Open in New &Tab\tCtrl+LMB"), |
140 self.__openBookmarkInNewTab) |
141 self.__openBookmarkInNewTab) |
141 menuAction.setData(v) |
142 menuAction.setData(v) |
142 |
143 |
143 menu.addSeparator() |
144 menu.addSeparator() |
144 |
145 |
158 Private slot to open a bookmark in the current browser tab. |
159 Private slot to open a bookmark in the current browser tab. |
159 """ |
160 """ |
160 idx = self.index(self.sender()) |
161 idx = self.index(self.sender()) |
161 |
162 |
162 self.openUrl.emit( |
163 self.openUrl.emit( |
163 idx.data(BookmarksModel.UrlRole), |
164 idx.data(BookmarksModel.UrlRole), |
164 idx.data(Qt.DisplayRole)) |
165 idx.data(Qt.DisplayRole)) |
165 |
166 |
166 def __openBookmarkInNewTab(self): |
167 def __openBookmarkInNewTab(self): |
167 """ |
168 """ |
168 Private slot to open a bookmark in a new browser tab. |
169 Private slot to open a bookmark in a new browser tab. |
169 """ |
170 """ |
170 idx = self.index(self.sender()) |
171 idx = self.index(self.sender()) |
171 |
172 |
172 self.newUrl.emit( |
173 self.newUrl.emit( |
173 idx.data(BookmarksModel.UrlRole), |
174 idx.data(BookmarksModel.UrlRole), |
174 idx.data(Qt.DisplayRole)) |
175 idx.data(Qt.DisplayRole)) |
175 |
176 |
176 def __removeBookmark(self): |
177 def __removeBookmark(self): |
177 """ |
178 """ |
178 Private slot to remove a bookmark. |
179 Private slot to remove a bookmark. |
180 idx = self.index(self.sender()) |
181 idx = self.index(self.sender()) |
181 self.removeEntry(idx) |
182 self.removeEntry(idx) |
182 |
183 |
183 ########################################################################################## |
184 ########################################################################################## |
184 |
185 |
|
186 |
185 class BookmarksMenuBarMenu(BookmarksMenu): |
187 class BookmarksMenuBarMenu(BookmarksMenu): |
186 """ |
188 """ |
187 Class implementing a dynamically populated menu for bookmarks. |
189 Class implementing a dynamically populated menu for bookmarks. |
188 """ |
190 """ |
189 def __init__(self, parent = None): |
191 def __init__(self, parent=None): |
190 """ |
192 """ |
191 Constructor |
193 Constructor |
192 |
194 |
193 @param parent reference to the parent widget (QWidget) |
195 @param parent reference to the parent widget (QWidget) |
194 """ |
196 """ |