eric7/HelpViewer/OpenPagesWidget.py

branch
eric7
changeset 8696
7e88f292b1b1
parent 8691
5dfa59f73de3
child 8741
54546929c371
diff -r 8a5179bced9e -r 7e88f292b1b1 eric7/HelpViewer/OpenPagesWidget.py
--- a/eric7/HelpViewer/OpenPagesWidget.py	Sun Oct 17 15:26:01 2021 +0200
+++ b/eric7/HelpViewer/OpenPagesWidget.py	Sun Oct 17 15:26:31 2021 +0200
@@ -19,6 +19,9 @@
 class OpenPagesWidget(QWidget):
     """
     Class implementing a widget showing the list of open pages.
+    
+    @signal currentChanged(index) emitted to signal a change of the current
+        page index
     """
     currentChanged = pyqtSignal(int)
     
@@ -134,7 +137,7 @@
             (defaults to False)
         @type bool (optional)
         """
-        self.__openPagesList.addItem(viewer.title())
+        self.__openPagesList.addItem(viewer.pageTitle())
         viewer.titleChanged.connect(
             lambda: self.__viewerTitleChanged(viewer))
         
@@ -157,7 +160,7 @@
         @type bool (optional)
         """
         currentRow = self.__openPagesList.currentRow()
-        self.__openPagesList.insertItem(index, viewer.title())
+        self.__openPagesList.insertItem(index, viewer.pageTitle())
         viewer.titleChanged.connect(
             lambda: self.__viewerTitleChanged(viewer))
         
@@ -175,7 +178,7 @@
         """
         index = self.__stack.indexOf(viewer)
         itm = self.__openPagesList.item(index)
-        itm.setText(viewer.title())
+        itm.setText(viewer.pageTitle())
         self.currentChanged.emit(index)
     
     #######################################################################
@@ -185,32 +188,23 @@
     @pyqtSlot()
     def __contextMenuClose(self):
         """
-        Private slot to close a page.
+        Private slot to close a page via the context menu.
         """
-        row = self.__openPagesList.currentRow()
-        self.__removeViewer(row)
-        
-        if self.__openPagesList.count() == 0:
-            self.__helpViewer.addPage()
+        self.closeCurrentPage()
     
     @pyqtSlot()
     def __contextMenuCloseOthers(self):
         """
-        Private slot to close all other pages.
+        Private slot to close all other pages via the context menu.
         """
-        currentRow = self.__openPagesList.currentRow()
-        for row in range(self.__openPagesList.count() - 1, -1, -1):
-            if row != currentRow:
-                self.__removeViewer(row)
+        self.closeOtherPages()
     
     @pyqtSlot()
     def __contextMenuCloseAll(self):
         """
-        Private slot to close all pages.
+        Private slot to close all pages via the context menu.
         """
-        while self.__openPagesList.count() != 0:
-            self.__removeViewer(0)
-        self.__helpViewer.addPage()
+        self.closeAllPages()
     
     @pyqtSlot()
     def __contextMenuCopyUrlToClipboard(self):
@@ -219,7 +213,7 @@
         """
         row = self.__openPagesList.currentRow()
         viewer = self.__stack.widget(row)
-        url = viewer.url()
+        url = viewer.link()
         if url.isValid():
             urlStr = url.toString()
             
@@ -242,3 +236,37 @@
         
         itm = self.__openPagesList.takeItem(row)
         del itm
+    
+    #######################################################################
+    ## Slots for external access below
+    #######################################################################
+    
+    @pyqtSlot()
+    def closeCurrentPage(self):
+        """
+        Public slot to close the current page.
+        """
+        row = self.__openPagesList.currentRow()
+        self.__removeViewer(row)
+        
+        if self.__openPagesList.count() == 0:
+            self.__helpViewer.addPage()
+    
+    @pyqtSlot()
+    def closeOtherPages(self):
+        """
+        Public slot to close all other pages.
+        """
+        currentRow = self.__openPagesList.currentRow()
+        for row in range(self.__openPagesList.count() - 1, -1, -1):
+            if row != currentRow:
+                self.__removeViewer(row)
+    
+    @pyqtSlot()
+    def closeAllPages(self):
+        """
+        Public slot to close all pages.
+        """
+        while self.__openPagesList.count() != 0:
+            self.__removeViewer(0)
+        self.__helpViewer.addPage()

eric ide

mercurial