5 |
5 |
6 """ |
6 """ |
7 Module implementing a widget showing the list of open pages. |
7 Module implementing a widget showing the list of open pages. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt6.QtCore import pyqtSlot |
10 from PyQt6.QtCore import pyqtSlot, pyqtSignal |
11 from PyQt6.QtWidgets import ( |
11 from PyQt6.QtWidgets import ( |
12 QWidget, QLabel, QListWidget, QVBoxLayout, QAbstractItemView |
12 QWidget, QLabel, QListWidget, QListWidgetItem, QVBoxLayout, |
|
13 QAbstractItemView |
13 ) |
14 ) |
14 |
15 |
15 |
16 |
16 class OpenPagesWidget(QWidget): |
17 class OpenPagesWidget(QWidget): |
17 """ |
18 """ |
18 Class implementing a widget showing the list of open pages. |
19 Class implementing a widget showing the list of open pages. |
19 """ |
20 """ |
|
21 currentChanged = pyqtSignal(int) |
|
22 |
20 def __init__(self, stack, parent=None): |
23 def __init__(self, stack, parent=None): |
21 """ |
24 """ |
22 Constructor |
25 Constructor |
23 |
26 |
24 @param stack reference to the stack widget containing the open |
27 @param stack reference to the stack widget containing the open |
74 |
77 |
75 @param row current row |
78 @param row current row |
76 @type int |
79 @type int |
77 """ |
80 """ |
78 self.__stack.setCurrentIndex(row) |
81 self.__stack.setCurrentIndex(row) |
|
82 self.currentChanged.emit(row) |
79 |
83 |
80 def addPage(self, viewer): |
84 def addPage(self, viewer): |
81 """ |
85 """ |
82 Public method to add a viewer page to our list. |
86 Public method to add a viewer page to our list. |
83 |
87 |
84 @param viewer DESCRIPTION |
88 @param viewer reference to the viewer object |
85 @type TYPE |
89 @type HelpViewerImpl |
86 """ |
90 """ |
87 # TODO: not yet implemented |
91 QListWidgetItem(viewer.title(), self.__openPagesList) |
|
92 viewer.titleChanged.connect( |
|
93 lambda: self.__viewerTitleChanged(viewer)) |
|
94 |
|
95 self.__currentPageChanged(self.__openPagesList.count() - 1) |
|
96 |
|
97 def __viewerTitleChanged(self, viewer): |
|
98 """ |
|
99 Private method to handle the change of a viewer title. |
|
100 |
|
101 @param viewer reference to the viewer that change title |
|
102 @type HelpViewerImpl |
|
103 """ |
|
104 index = self.__stack.indexOf(viewer) |
|
105 itm = self.__openPagesList.item(index) |
|
106 itm.setText(viewer.title()) |
|
107 self.currentChanged.emit(index) |