Sat, 23 Dec 2023 15:48:12 +0100
Updated copyright for 2024.
9699 | 1 | # -*- coding: utf-8 -*- |
2 | ||
10439
21c28b0f9e41
Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9722
diff
changeset
|
3 | # Copyright (c) 2023 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
9699 | 4 | # |
5 | ||
6 | """ | |
9722
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
7 | Module implementing a dialog to enter a PDF page number to jump to. |
9699 | 8 | """ |
9 | ||
10 | from PyQt6.QtCore import Qt | |
11 | from PyQt6.QtWidgets import ( | |
9722
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
12 | QDialog, |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
13 | QDialogButtonBox, |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
14 | QHBoxLayout, |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
15 | QSlider, |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
16 | QSpinBox, |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
17 | QVBoxLayout, |
9699 | 18 | ) |
19 | ||
9722
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
20 | |
9699 | 21 | class PdfGoToDialog(QDialog): |
9722
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
22 | """ |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
23 | Class implementing a dialog to enter a PDF page number to jump to. |
63135ab601e7
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9699
diff
changeset
|
24 | """ |
9699 | 25 | |
26 | def __init__(self, curPage, pageCount, parent=None): | |
27 | """ | |
28 | Constructor | |
29 | ||
30 | @param curPage current page number (0 based) | |
31 | @type int | |
32 | @param pageCount number of pages in the document | |
33 | @type int | |
34 | @param parent reference to the parent widget (defaults to None) | |
35 | @type QWidget (optional) | |
36 | """ | |
37 | super().__init__(parent) | |
38 | ||
39 | self.__layout = QVBoxLayout() | |
40 | self.setLayout(self.__layout) | |
41 | ||
42 | self.__hLayout = QHBoxLayout() | |
43 | self.__valueSlider = QSlider(Qt.Orientation.Horizontal) | |
44 | self.__valueSlider.setTickPosition(QSlider.TickPosition.TicksBothSides) | |
45 | self.__valueSlider.setSingleStep(1) | |
46 | self.__valueSlider.setPageStep(10) | |
47 | self.__valueSlider.setMinimum(1) | |
48 | self.__valueSlider.setMaximum(pageCount) | |
49 | self.__valueSlider.setValue(curPage + 1) | |
50 | self.__hLayout.addWidget(self.__valueSlider) | |
51 | self.__valueSpinBox = QSpinBox() | |
52 | self.__valueSpinBox.setMinimum(1) | |
53 | self.__valueSpinBox.setMaximum(pageCount) | |
54 | self.__valueSpinBox.setValue(curPage + 1) | |
55 | self.__valueSpinBox.setAlignment(Qt.AlignmentFlag.AlignCenter) | |
56 | self.__hLayout.addWidget(self.__valueSpinBox) | |
57 | self.__layout.addLayout(self.__hLayout) | |
58 | ||
59 | self.__buttonBox = QDialogButtonBox( | |
60 | QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel, | |
61 | Qt.Orientation.Horizontal, | |
62 | ) | |
63 | self.__layout.addWidget(self.__buttonBox) | |
64 | ||
65 | self.__valueSpinBox.setFocus(Qt.FocusReason.OtherFocusReason) | |
66 | ||
67 | # connect signals and slots | |
68 | self.__buttonBox.accepted.connect(self.accept) | |
69 | self.__buttonBox.rejected.connect(self.reject) | |
70 | self.__valueSlider.valueChanged.connect(self.__valueSpinBox.setValue) | |
71 | self.__valueSpinBox.valueChanged.connect(self.__valueSlider.setValue) | |
72 | ||
73 | def getPage(self): | |
74 | """ | |
75 | Public method to get the selected page. | |
76 | ||
77 | @return selected page (0 based) | |
78 | @rtype int | |
79 | """ | |
80 | return self.__valueSpinBox.value() - 1 |