26 |
26 |
27 @signal openUrl(const QUrl&, const QString&) emitted to open a URL in the current |
27 @signal openUrl(const QUrl&, const QString&) emitted to open a URL in the current |
28 tab |
28 tab |
29 @signal newUrl(const QUrl&, const QString&) emitted to open a URL in a new tab |
29 @signal newUrl(const QUrl&, const QString&) emitted to open a URL in a new tab |
30 """ |
30 """ |
|
31 openUrl = pyqtSignal(QUrl, str) |
|
32 newUrl = pyqtSignal(QUrl, str) |
|
33 |
31 def __init__(self, parent = None, manager = None): |
34 def __init__(self, parent = None, manager = None): |
32 """ |
35 """ |
33 Constructor |
36 Constructor |
34 |
37 |
35 @param parent reference to the parent widget (QWidget |
38 @param parent reference to the parent widget (QWidget |
47 self.__bookmarksModel = self.__bookmarksManager.bookmarksModel() |
50 self.__bookmarksModel = self.__bookmarksManager.bookmarksModel() |
48 self.__proxyModel = E5TreeSortFilterProxyModel(self) |
51 self.__proxyModel = E5TreeSortFilterProxyModel(self) |
49 self.__proxyModel.setFilterKeyColumn(-1) |
52 self.__proxyModel.setFilterKeyColumn(-1) |
50 self.__proxyModel.setSourceModel(self.__bookmarksModel) |
53 self.__proxyModel.setSourceModel(self.__bookmarksModel) |
51 |
54 |
52 self.connect(self.searchEdit, SIGNAL("textChanged(QString)"), |
55 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString) |
53 self.__proxyModel.setFilterFixedString) |
|
54 |
56 |
55 self.bookmarksTree.setModel(self.__proxyModel) |
57 self.bookmarksTree.setModel(self.__proxyModel) |
56 self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True) |
58 self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True) |
57 fm = QFontMetrics(self.font()) |
59 fm = QFontMetrics(self.font()) |
58 header = fm.width("m") * 40 |
60 header = fm.width("m") * 40 |
59 self.bookmarksTree.header().resizeSection(0, header) |
61 self.bookmarksTree.header().resizeSection(0, header) |
60 self.bookmarksTree.header().setStretchLastSection(True) |
62 self.bookmarksTree.header().setStretchLastSection(True) |
61 self.bookmarksTree.setContextMenuPolicy(Qt.CustomContextMenu) |
63 self.bookmarksTree.setContextMenuPolicy(Qt.CustomContextMenu) |
62 |
64 |
63 self.connect(self.bookmarksTree, SIGNAL("activated(const QModelIndex&)"), |
65 self.bookmarksTree.activated.connect(self.__activated) |
64 self.__activated) |
|
65 self.bookmarksTree.customContextMenuRequested.connect( |
66 self.bookmarksTree.customContextMenuRequested.connect( |
66 self.__customContextMenuRequested) |
67 self.__customContextMenuRequested) |
67 |
68 |
68 self.removeButton.clicked[()].connect(self.bookmarksTree.removeSelected) |
69 self.removeButton.clicked[()].connect(self.bookmarksTree.removeSelected) |
69 self.addFolderButton.clicked[()].connect(self.__newFolder) |
70 self.addFolderButton.clicked[()].connect(self.__newFolder) |
183 if not idx.parent().isValid() or \ |
184 if not idx.parent().isValid() or \ |
184 node is None or \ |
185 node is None or \ |
185 node.type() == BookmarkNode.Folder: |
186 node.type() == BookmarkNode.Folder: |
186 return |
187 return |
187 if newTab: |
188 if newTab: |
188 self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), |
189 self.newUrl.emit( |
189 idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole), |
190 idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole), |
190 idx.sibling(idx.row(), 0).data(Qt.DisplayRole)) |
191 idx.sibling(idx.row(), 0).data(Qt.DisplayRole)) |
191 else: |
192 else: |
192 self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), |
193 self.openUrl.emit( |
193 idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole), |
194 idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole), |
194 idx.sibling(idx.row(), 0).data(Qt.DisplayRole)) |
195 idx.sibling(idx.row(), 0).data(Qt.DisplayRole)) |
195 |
196 |
196 def __editName(self): |
197 def __editName(self): |
197 """ |
198 """ |
198 Private slot to edit the name part of a bookmark. |
199 Private slot to edit the name part of a bookmark. |
199 """ |
200 """ |