28 def __init__(self, parent=None, manager=None): |
28 def __init__(self, parent=None, manager=None): |
29 """ |
29 """ |
30 Constructor |
30 Constructor |
31 |
31 |
32 @param parent reference to the parent widget (QWidget |
32 @param parent reference to the parent widget (QWidget |
33 @param manager reference to the bookmarks manager object (BookmarksManager) |
33 @param manager reference to the bookmarks manager object |
|
34 (BookmarksManager) |
34 """ |
35 """ |
35 super().__init__(parent) |
36 super().__init__(parent) |
36 self.setupUi(self) |
37 self.setupUi(self) |
37 |
38 |
38 self.__bookmarksManager = manager |
39 self.__bookmarksManager = manager |
39 if self.__bookmarksManager is None: |
40 if self.__bookmarksManager is None: |
40 import Helpviewer.HelpWindow |
41 import Helpviewer.HelpWindow |
41 self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager() |
42 self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow\ |
|
43 .bookmarksManager() |
42 |
44 |
43 self.__bookmarksModel = self.__bookmarksManager.bookmarksModel() |
45 self.__bookmarksModel = self.__bookmarksManager.bookmarksModel() |
44 self.__proxyModel = E5TreeSortFilterProxyModel(self) |
46 self.__proxyModel = E5TreeSortFilterProxyModel(self) |
45 self.__proxyModel.setFilterKeyColumn(-1) |
47 self.__proxyModel.setFilterKeyColumn(-1) |
46 self.__proxyModel.setSourceModel(self.__bookmarksModel) |
48 self.__proxyModel.setSourceModel(self.__bookmarksModel) |
47 |
49 |
48 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString) |
50 self.searchEdit.textChanged.connect( |
|
51 self.__proxyModel.setFilterFixedString) |
49 |
52 |
50 self.bookmarksTree.setModel(self.__proxyModel) |
53 self.bookmarksTree.setModel(self.__proxyModel) |
51 self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True) |
54 self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True) |
52 fm = QFontMetrics(self.font()) |
55 fm = QFontMetrics(self.font()) |
53 header = fm.width("m") * 40 |
56 header = fm.width("m") * 40 |
57 |
60 |
58 self.bookmarksTree.activated.connect(self.__activated) |
61 self.bookmarksTree.activated.connect(self.__activated) |
59 self.bookmarksTree.customContextMenuRequested.connect( |
62 self.bookmarksTree.customContextMenuRequested.connect( |
60 self.__customContextMenuRequested) |
63 self.__customContextMenuRequested) |
61 |
64 |
62 self.removeButton.clicked[()].connect(self.bookmarksTree.removeSelected) |
65 self.removeButton.clicked[()].connect( |
|
66 self.bookmarksTree.removeSelected) |
63 self.addFolderButton.clicked[()].connect(self.__newFolder) |
67 self.addFolderButton.clicked[()].connect(self.__newFolder) |
64 |
68 |
65 self.__expandNodes(self.__bookmarksManager.bookmarks()) |
69 self.__expandNodes(self.__bookmarksManager.bookmarks()) |
66 |
70 |
67 def closeEvent(self, evt): |
71 def closeEvent(self, evt): |
133 idx = self.bookmarksTree.indexAt(pos) |
137 idx = self.bookmarksTree.indexAt(pos) |
134 idx = idx.sibling(idx.row(), 0) |
138 idx = idx.sibling(idx.row(), 0) |
135 sourceIndex = self.__proxyModel.mapToSource(idx) |
139 sourceIndex = self.__proxyModel.mapToSource(idx) |
136 node = self.__bookmarksModel.node(sourceIndex) |
140 node = self.__bookmarksModel.node(sourceIndex) |
137 if idx.isValid() and node.type() != BookmarkNode.Folder: |
141 if idx.isValid() and node.type() != BookmarkNode.Folder: |
138 menu.addAction(self.trUtf8("&Open"), self.__openBookmarkInCurrentTab) |
142 menu.addAction( |
139 menu.addAction(self.trUtf8("Open in New &Tab"), self.__openBookmarkInNewTab) |
143 self.trUtf8("&Open"), self.__openBookmarkInCurrentTab) |
|
144 menu.addAction( |
|
145 self.trUtf8("Open in New &Tab"), self.__openBookmarkInNewTab) |
140 menu.addSeparator() |
146 menu.addSeparator() |
141 act = menu.addAction(self.trUtf8("Edit &Name"), self.__editName) |
147 act = menu.addAction(self.trUtf8("Edit &Name"), self.__editName) |
142 act.setEnabled(idx.flags() & Qt.ItemIsEditable) |
148 act.setEnabled(idx.flags() & Qt.ItemIsEditable) |
143 if idx.isValid() and node.type() != BookmarkNode.Folder: |
149 if idx.isValid() and node.type() != BookmarkNode.Folder: |
144 menu.addAction(self.trUtf8("Edit &Address"), self.__editAddress) |
150 menu.addAction(self.trUtf8("Edit &Address"), self.__editAddress) |
145 menu.addSeparator() |
151 menu.addSeparator() |
146 act = menu.addAction(self.trUtf8("&Delete"), self.bookmarksTree.removeSelected) |
152 act = menu.addAction( |
|
153 self.trUtf8("&Delete"), self.bookmarksTree.removeSelected) |
147 act.setEnabled(idx.flags() & Qt.ItemIsDragEnabled) |
154 act.setEnabled(idx.flags() & Qt.ItemIsDragEnabled) |
148 menu.addSeparator() |
155 menu.addSeparator() |
149 act = menu.addAction(self.trUtf8("&Properties..."), self.__edit) |
156 act = menu.addAction(self.trUtf8("&Properties..."), self.__edit) |
150 act.setEnabled(idx.flags() & Qt.ItemIsEditable) |
157 act.setEnabled(idx.flags() & Qt.ItemIsEditable) |
151 menu.exec_(QCursor.pos()) |
158 menu.exec_(QCursor.pos()) |
154 """ |
161 """ |
155 Private slot to handle the activation of an entry. |
162 Private slot to handle the activation of an entry. |
156 |
163 |
157 @param idx reference to the entry index (QModelIndex) |
164 @param idx reference to the entry index (QModelIndex) |
158 """ |
165 """ |
159 self.__openBookmark(QApplication.keyboardModifiers() & Qt.ControlModifier) |
166 self.__openBookmark( |
|
167 QApplication.keyboardModifiers() & Qt.ControlModifier) |
160 |
168 |
161 def __openBookmarkInCurrentTab(self): |
169 def __openBookmarkInCurrentTab(self): |
162 """ |
170 """ |
163 Private slot to open a bookmark in the current browser tab. |
171 Private slot to open a bookmark in the current browser tab. |
164 """ |
172 """ |
172 |
180 |
173 def __openBookmark(self, newTab): |
181 def __openBookmark(self, newTab): |
174 """ |
182 """ |
175 Private method to open a bookmark. |
183 Private method to open a bookmark. |
176 |
184 |
177 @param newTab flag indicating to open the bookmark in a new tab (boolean) |
185 @param newTab flag indicating to open the bookmark in a new tab |
|
186 (boolean) |
178 """ |
187 """ |
179 from .BookmarkNode import BookmarkNode |
188 from .BookmarkNode import BookmarkNode |
180 from .BookmarksModel import BookmarksModel |
189 from .BookmarksModel import BookmarksModel |
181 |
190 |
182 idx = self.bookmarksTree.currentIndex() |
191 idx = self.bookmarksTree.currentIndex() |