src/eric7/Preferences/ConfigurationPages/PrinterPage.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
equal deleted inserted replaced
9208:3fc8dfeb6ebe 9209:b99e7fd55fd3
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2006 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the Printer configuration page.
8 """
9
10 from PyQt6.QtCore import pyqtSlot
11
12 from .ConfigurationPageBase import ConfigurationPageBase
13 from .Ui_PrinterPage import Ui_PrinterPage
14
15 import Preferences
16
17
18 class PrinterPage(ConfigurationPageBase, Ui_PrinterPage):
19 """
20 Class implementing the Printer configuration page.
21 """
22 def __init__(self):
23 """
24 Constructor
25 """
26 super().__init__()
27 self.setupUi(self)
28 self.setObjectName("PrinterPage")
29
30 # set initial values
31 self.printerNameEdit.setText(
32 Preferences.getPrinter("PrinterName"))
33 if Preferences.getPrinter("ColorMode"):
34 self.printerColorButton.setChecked(True)
35 else:
36 self.printerGrayscaleButton.setChecked(True)
37 if Preferences.getPrinter("FirstPageFirst"):
38 self.printFirstPageFirstButton.setChecked(True)
39 else:
40 self.printFirstPageLastButton.setChecked(True)
41 self.printMagnificationSpinBox.setValue(
42 Preferences.getPrinter("Magnification"))
43 self.printheaderFont = Preferences.getPrinter("HeaderFont")
44 self.printheaderFontSample.setFont(self.printheaderFont)
45 self.leftMarginSpinBox.setValue(
46 Preferences.getPrinter("LeftMargin"))
47 self.rightMarginSpinBox.setValue(
48 Preferences.getPrinter("RightMargin"))
49 self.topMarginSpinBox.setValue(
50 Preferences.getPrinter("TopMargin"))
51 self.bottomMarginSpinBox.setValue(
52 Preferences.getPrinter("BottomMargin"))
53 self.resolutionSpinBox.setValue(
54 Preferences.getPrinter("Resolution"))
55
56 def save(self):
57 """
58 Public slot to save the Printer configuration.
59 """
60 Preferences.setPrinter(
61 "PrinterName",
62 self.printerNameEdit.text())
63 if self.printerColorButton.isChecked():
64 Preferences.setPrinter("ColorMode", 1)
65 else:
66 Preferences.setPrinter("ColorMode", 0)
67 if self.printFirstPageFirstButton.isChecked():
68 Preferences.setPrinter("FirstPageFirst", 1)
69 else:
70 Preferences.setPrinter("FirstPageFirst", 0)
71 Preferences.setPrinter(
72 "Magnification",
73 self.printMagnificationSpinBox.value())
74 Preferences.setPrinter("HeaderFont", self.printheaderFont)
75 Preferences.setPrinter(
76 "LeftMargin",
77 self.leftMarginSpinBox.value())
78 Preferences.setPrinter(
79 "RightMargin",
80 self.rightMarginSpinBox.value())
81 Preferences.setPrinter(
82 "TopMargin",
83 self.topMarginSpinBox.value())
84 Preferences.setPrinter(
85 "BottomMargin",
86 self.bottomMarginSpinBox.value())
87 Preferences.setPrinter(
88 "Resolution",
89 self.resolutionSpinBox.value())
90
91 @pyqtSlot()
92 def on_printheaderFontButton_clicked(self):
93 """
94 Private method used to select the font for the page header.
95 """
96 self.printheaderFont = self.selectFont(self.printheaderFontSample,
97 self.printheaderFont)
98
99 def polishPage(self):
100 """
101 Public slot to perform some polishing actions.
102 """
103 self.printheaderFontSample.setFont(self.printheaderFont)
104
105
106 def create(dlg):
107 """
108 Module function to create the configuration page.
109
110 @param dlg reference to the configuration dialog
111 @return reference to the instantiated page (ConfigurationPageBase)
112 """
113 page = PrinterPage()
114 return page

eric ide

mercurial