eric7/HelpViewer/OpenPagesWidget.py

branch
eric7
changeset 8680
85503ff2fce9
parent 8679
fd172973428e
child 8683
e8a907801549
--- 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)

eric ide

mercurial