diff -r fd172973428e -r 85503ff2fce9 eric7/HelpViewer/OpenPagesWidget.py --- a/eric7/HelpViewer/OpenPagesWidget.py Thu Oct 07 20:22:02 2021 +0200 +++ b/eric7/HelpViewer/OpenPagesWidget.py Mon Oct 11 19:59:45 2021 +0200 @@ -7,9 +7,10 @@ Module implementing a widget showing the list of open pages. """ -from PyQt6.QtCore import pyqtSlot +from PyQt6.QtCore import pyqtSlot, pyqtSignal from PyQt6.QtWidgets import ( - QWidget, QLabel, QListWidget, QVBoxLayout, QAbstractItemView + QWidget, QLabel, QListWidget, QListWidgetItem, QVBoxLayout, + QAbstractItemView ) @@ -17,6 +18,8 @@ """ Class implementing a widget showing the list of open pages. """ + currentChanged = pyqtSignal(int) + def __init__(self, stack, parent=None): """ Constructor @@ -76,12 +79,29 @@ @type int """ self.__stack.setCurrentIndex(row) + self.currentChanged.emit(row) def addPage(self, viewer): """ Public method to add a viewer page to our list. - @param viewer DESCRIPTION - @type TYPE + @param viewer reference to the viewer object + @type HelpViewerImpl """ - # TODO: not yet implemented + QListWidgetItem(viewer.title(), self.__openPagesList) + viewer.titleChanged.connect( + lambda: self.__viewerTitleChanged(viewer)) + + self.__currentPageChanged(self.__openPagesList.count() - 1) + + def __viewerTitleChanged(self, viewer): + """ + Private method to handle the change of a viewer title. + + @param viewer reference to the viewer that change title + @type HelpViewerImpl + """ + index = self.__stack.indexOf(viewer) + itm = self.__openPagesList.item(index) + itm.setText(viewer.title()) + self.currentChanged.emit(index)