diff -r 7a5d78f8b64b -r d66181594630 eric7/HelpViewer/OpenPagesWidget.py --- a/eric7/HelpViewer/OpenPagesWidget.py Sun Jan 02 18:26:03 2022 +0100 +++ b/eric7/HelpViewer/OpenPagesWidget.py Sun Jan 02 18:36:21 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, QVBoxLayout, 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): """ @@ -43,17 +41,15 @@ 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) @@ -62,8 +58,8 @@ 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 +90,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 +103,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 +118,7 @@ @type int """ self.__stack.setCurrentIndex(row) - self.currentChanged.emit(row) + self.currentPageChanged.emit(row) def addPage(self, viewer, background=False): """ @@ -134,14 +130,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 +152,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 +170,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 +204,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 +227,7 @@ self.__stack.removeWidget(viewer) viewer.deleteLater() - itm = self.__openPagesList.takeItem(row) + itm = self.takeItem(row) del itm ####################################################################### @@ -243,10 +239,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 +250,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 +260,6 @@ """ Public slot to close all pages. """ - while self.__openPagesList.count() != 0: + while self.count() != 0: self.__removeViewer(0) self.__helpViewer.addPage()