src/eric7/PdfViewer/PdfGoToDialog.py

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

eric ide

mercurial