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