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()