10 from PyQt6.QtCore import QModelIndex, Qt, QUrl, pyqtSignal |
10 from PyQt6.QtCore import QModelIndex, Qt, QUrl, pyqtSignal |
11 from PyQt6.QtGui import QCursor, QFontMetrics |
11 from PyQt6.QtGui import QCursor, QFontMetrics |
12 from PyQt6.QtWidgets import QApplication, QDialog, QInputDialog, QLineEdit, QMenu |
12 from PyQt6.QtWidgets import QApplication, QDialog, QInputDialog, QLineEdit, QMenu |
13 |
13 |
14 from eric7.EricCore.EricTreeSortFilterProxyModel import EricTreeSortFilterProxyModel |
14 from eric7.EricCore.EricTreeSortFilterProxyModel import EricTreeSortFilterProxyModel |
|
15 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
15 |
16 |
16 from .Ui_BookmarksDialog import Ui_BookmarksDialog |
17 from .Ui_BookmarksDialog import Ui_BookmarksDialog |
17 |
18 |
18 |
19 |
19 class BookmarksDialog(QDialog, Ui_BookmarksDialog): |
20 class BookmarksDialog(QDialog, Ui_BookmarksDialog): |
44 self.setupUi(self) |
45 self.setupUi(self) |
45 self.setWindowFlags(Qt.WindowType.Window) |
46 self.setWindowFlags(Qt.WindowType.Window) |
46 |
47 |
47 self.__bookmarksManager = manager |
48 self.__bookmarksManager = manager |
48 if self.__bookmarksManager is None: |
49 if self.__bookmarksManager is None: |
49 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
|
50 |
|
51 self.__bookmarksManager = WebBrowserWindow.bookmarksManager() |
50 self.__bookmarksManager = WebBrowserWindow.bookmarksManager() |
52 |
51 |
53 self.__bookmarksModel = self.__bookmarksManager.bookmarksModel() |
52 self.__bookmarksModel = self.__bookmarksManager.bookmarksModel() |
54 self.__proxyModel = EricTreeSortFilterProxyModel(self) |
53 self.__proxyModel = EricTreeSortFilterProxyModel(self) |
55 self.__proxyModel.setFilterKeyColumn(-1) |
54 self.__proxyModel.setFilterKeyColumn(-1) |
58 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString) |
57 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString) |
59 |
58 |
60 self.bookmarksTree.setModel(self.__proxyModel) |
59 self.bookmarksTree.setModel(self.__proxyModel) |
61 self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True) |
60 self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True) |
62 fm = QFontMetrics(self.font()) |
61 fm = QFontMetrics(self.font()) |
63 try: |
62 header = fm.horizontalAdvance("m") * 40 |
64 header = fm.horizontalAdvance("m") * 40 |
|
65 except AttributeError: |
|
66 header = fm.width("m") * 40 |
|
67 self.bookmarksTree.header().resizeSection(0, header) |
63 self.bookmarksTree.header().resizeSection(0, header) |
68 self.bookmarksTree.header().setStretchLastSection(True) |
64 self.bookmarksTree.header().setStretchLastSection(True) |
69 self.bookmarksTree.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) |
65 self.bookmarksTree.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) |
70 |
66 |
71 self.bookmarksTree.activated.connect(self.__activated) |
67 self.bookmarksTree.activated.connect(self.__activated) |
256 or node.type() == BookmarkNode.Folder |
252 or node.type() == BookmarkNode.Folder |
257 ): |
253 ): |
258 return |
254 return |
259 |
255 |
260 if newWindow: |
256 if newWindow: |
261 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
|
262 |
|
263 url = idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole) |
257 url = idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole) |
264 if privateWindow: |
258 if privateWindow: |
265 WebBrowserWindow.mainWindow().newPrivateWindow(url) |
259 WebBrowserWindow.mainWindow().newPrivateWindow(url) |
266 else: |
260 else: |
267 WebBrowserWindow.mainWindow().newWindow(url) |
261 WebBrowserWindow.mainWindow().newWindow(url) |