5 |
5 |
6 """ |
6 """ |
7 Module implementing a Table of Contents viewer widget. |
7 Module implementing a Table of Contents viewer widget. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt, QModelIndex, QSortFilterProxyModel |
10 from PyQt6.QtCore import QModelIndex, QSortFilterProxyModel, Qt, pyqtSignal, pyqtSlot |
11 from PyQt6.QtPdf import QPdfBookmarkModel, QPdfDocument |
11 from PyQt6.QtPdf import QPdfBookmarkModel, QPdfDocument |
12 from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel, QTreeView, QLineEdit |
12 from PyQt6.QtWidgets import QLabel, QLineEdit, QTreeView, QVBoxLayout, QWidget |
13 |
13 |
14 |
14 |
15 class PdfToCModel(QPdfBookmarkModel): |
15 class PdfToCModel(QPdfBookmarkModel): |
16 """ |
16 """ |
17 Class implementing a TOC model with page numbers. |
17 Class implementing a TOC model with page numbers. |
47 @type Qt.ItemDataRole |
47 @type Qt.ItemDataRole |
48 @return requested data |
48 @return requested data |
49 @rtype Any |
49 @rtype Any |
50 """ |
50 """ |
51 if not index.isValid(): |
51 if not index.isValid(): |
52 return |
52 return None |
53 |
53 |
54 if index.column() == 1: |
54 if index.column() == 1: |
55 if role == Qt.ItemDataRole.DisplayRole: |
55 if role == Qt.ItemDataRole.DisplayRole: |
56 page = index.data(QPdfBookmarkModel.Role.Page.value) |
56 page = index.data(QPdfBookmarkModel.Role.Page.value) |
57 return self.document().pageLabel(page) |
57 return self.document().pageLabel(page) |