--- a/eric7/HelpViewer/OpenPagesWidget.py Tue Jan 04 15:38:11 2022 +0100 +++ b/eric7/HelpViewer/OpenPagesWidget.py Tue Feb 08 14:15:48 2022 +0100 @@ -9,21 +9,19 @@ from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QPoint from PyQt6.QtGui import QGuiApplication, QClipboard -from PyQt6.QtWidgets import ( - QWidget, QListWidget, QVBoxLayout, QAbstractItemView, QMenu -) +from PyQt6.QtWidgets import QListWidget, QAbstractItemView, QMenu import UI.PixmapCache -class OpenPagesWidget(QWidget): +class OpenPagesWidget(QListWidget): """ Class implementing a widget showing the list of open pages. - @signal currentChanged(index) emitted to signal a change of the current + @signal currentPageChanged(index) emitted to signal a change of the current page index """ - currentChanged = pyqtSignal(int) + currentPageChanged = pyqtSignal(int) def __init__(self, stack, parent=None): """ @@ -40,30 +38,23 @@ self.__helpViewer = parent - self.__layout = QVBoxLayout() - self.__layout.setContentsMargins(0, 0, 0, 0) - - self.__openPagesList = QListWidget(self) - self.__openPagesList.setAlternatingRowColors(True) - self.__openPagesList.setSelectionMode( + self.setAlternatingRowColors(True) + self.setSelectionMode( QAbstractItemView.SelectionMode.SingleSelection) - self.__openPagesList.setContextMenuPolicy( + self.setContextMenuPolicy( Qt.ContextMenuPolicy.CustomContextMenu) - self.__openPagesList.currentRowChanged.connect( + self.currentRowChanged.connect( self.__currentRowChanged) - self.__openPagesList.customContextMenuRequested.connect( + self.customContextMenuRequested.connect( self.__showContextMenu) - self.__layout.addWidget(self.__openPagesList) - - self.setLayout(self.__layout) self.__stack = stack self.__stack.currentChanged.connect(self.__currentPageChanged) self.__initContextMenu() - self.__defaultFont = self.__openPagesList.font() - self.__boldFont = self.__openPagesList.font() + self.__defaultFont = self.font() + self.__boldFont = self.font() self.__boldFont.setBold(True) def __initContextMenu(self): @@ -94,10 +85,10 @@ @param point position to open the menu at @type QPoint """ - itm = self.__openPagesList.itemAt(point) + itm = self.itemAt(point) self.__copyUrlAct.setEnabled(bool(itm) and itm.text() != "about:blank") - self.closeOthersMenuAct.setEnabled(self.__openPagesList.count() > 1) - self.__menu.popup(self.__openPagesList.mapToGlobal(point)) + self.closeOthersMenuAct.setEnabled(self.count() > 1) + self.__menu.popup(self.mapToGlobal(point)) @pyqtSlot(int) def __currentPageChanged(self, index): @@ -107,8 +98,8 @@ @param index index of the current page @type int """ - for row in range(self.__openPagesList.count()): - itm = self.__openPagesList.item(row) + for row in range(self.count()): + itm = self.item(row) itm.setFont( self.__boldFont if row == index else self.__defaultFont ) @@ -122,7 +113,7 @@ @type int """ self.__stack.setCurrentIndex(row) - self.currentChanged.emit(row) + self.currentPageChanged.emit(row) def addPage(self, viewer, background=False): """ @@ -134,14 +125,14 @@ (defaults to False) @type bool (optional) """ - self.__openPagesList.addItem(viewer.pageTitle()) + self.addItem(viewer.pageTitle()) viewer.titleChanged.connect( lambda: self.__viewerTitleChanged(viewer)) if not background: - self.__openPagesList.setCurrentRow( - self.__openPagesList.count() - 1) - if self.__openPagesList.count() == 1: + self.setCurrentRow( + self.count() - 1) + if self.count() == 1: self.__currentPageChanged(0) def insertPage(self, index, viewer, background=False): @@ -156,15 +147,15 @@ (defaults to False) @type bool (optional) """ - currentRow = self.__openPagesList.currentRow() - self.__openPagesList.insertItem(index, viewer.pageTitle()) + currentRow = self.currentRow() + self.insertItem(index, viewer.pageTitle()) viewer.titleChanged.connect( lambda: self.__viewerTitleChanged(viewer)) if not background: - self.__openPagesList.setCurrentRow(index) + self.setCurrentRow(index) else: - self.__openPagesList.setCurrentRow(currentRow) + self.setCurrentRow(currentRow) def __viewerTitleChanged(self, viewer): """ @@ -174,9 +165,9 @@ @type HelpViewerImpl """ index = self.__stack.indexOf(viewer) - itm = self.__openPagesList.item(index) + itm = self.item(index) itm.setText(viewer.pageTitle()) - self.currentChanged.emit(index) + self.currentPageChanged.emit(index) ####################################################################### ## Context menu action methods @@ -208,7 +199,7 @@ """ Private slot to copy the URL to the clipboard. """ - row = self.__openPagesList.currentRow() + row = self.currentRow() viewer = self.__stack.widget(row) url = viewer.link() if url.isValid(): @@ -231,7 +222,7 @@ self.__stack.removeWidget(viewer) viewer.deleteLater() - itm = self.__openPagesList.takeItem(row) + itm = self.takeItem(row) del itm ####################################################################### @@ -243,10 +234,10 @@ """ Public slot to close the current page. """ - row = self.__openPagesList.currentRow() + row = self.currentRow() self.__removeViewer(row) - if self.__openPagesList.count() == 0: + if self.count() == 0: self.__helpViewer.addPage() @pyqtSlot() @@ -254,8 +245,8 @@ """ Public slot to close all other pages. """ - currentRow = self.__openPagesList.currentRow() - for row in range(self.__openPagesList.count() - 1, -1, -1): + currentRow = self.currentRow() + for row in range(self.count() - 1, -1, -1): if row != currentRow: self.__removeViewer(row) @@ -264,6 +255,6 @@ """ Public slot to close all pages. """ - while self.__openPagesList.count() != 0: + while self.count() != 0: self.__removeViewer(0) self.__helpViewer.addPage()