src/eric7/QScintilla/Printer.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
17 17
18 class Printer(QsciPrinter): 18 class Printer(QsciPrinter):
19 """ 19 """
20 Class implementing the QsciPrinter with a header. 20 Class implementing the QsciPrinter with a header.
21 """ 21 """
22
22 def __init__(self, mode=QPrinter.PrinterMode.ScreenResolution): 23 def __init__(self, mode=QPrinter.PrinterMode.ScreenResolution):
23 """ 24 """
24 Constructor 25 Constructor
25 26
26 @param mode mode of the printer (QPrinter.PrinterMode) 27 @param mode mode of the printer (QPrinter.PrinterMode)
27 """ 28 """
28 super().__init__(mode) 29 super().__init__(mode)
29 30
30 self.setMagnification(Preferences.getPrinter("Magnification")) 31 self.setMagnification(Preferences.getPrinter("Magnification"))
31 if Preferences.getPrinter("ColorMode"): 32 if Preferences.getPrinter("ColorMode"):
32 self.setColorMode(QPrinter.ColorMode.Color) 33 self.setColorMode(QPrinter.ColorMode.Color)
33 else: 34 else:
34 self.setColorMode(QPrinter.ColorMode.GrayScale) 35 self.setColorMode(QPrinter.ColorMode.GrayScale)
35 if Preferences.getPrinter("FirstPageFirst"): 36 if Preferences.getPrinter("FirstPageFirst"):
36 self.setPageOrder(QPrinter.PageOrder.FirstPageFirst) 37 self.setPageOrder(QPrinter.PageOrder.FirstPageFirst)
37 else: 38 else:
38 self.setPageOrder(QPrinter.PageOrder.LastPageFirst) 39 self.setPageOrder(QPrinter.PageOrder.LastPageFirst)
39 self.setPageMargins(QMarginsF( 40 self.setPageMargins(
40 Preferences.getPrinter("LeftMargin") * 10, 41 QMarginsF(
41 Preferences.getPrinter("TopMargin") * 10, 42 Preferences.getPrinter("LeftMargin") * 10,
42 Preferences.getPrinter("RightMargin") * 10, 43 Preferences.getPrinter("TopMargin") * 10,
43 Preferences.getPrinter("BottomMargin") * 10), 44 Preferences.getPrinter("RightMargin") * 10,
44 QPageLayout.Unit.Millimeter 45 Preferences.getPrinter("BottomMargin") * 10,
46 ),
47 QPageLayout.Unit.Millimeter,
45 ) 48 )
46 printerName = Preferences.getPrinter("PrinterName") 49 printerName = Preferences.getPrinter("PrinterName")
47 if printerName: 50 if printerName:
48 self.setPrinterName(printerName) 51 self.setPrinterName(printerName)
49 self.time = QTime.currentTime().toString(Qt.DateFormat.RFC2822Date) 52 self.time = QTime.currentTime().toString(Qt.DateFormat.RFC2822Date)
50 self.date = QDate.currentDate().toString(Qt.DateFormat.RFC2822Date) 53 self.date = QDate.currentDate().toString(Qt.DateFormat.RFC2822Date)
51 self.headerFont = Preferences.getPrinter("HeaderFont") 54 self.headerFont = Preferences.getPrinter("HeaderFont")
52 55
53 def formatPage(self, painter, drawing, area, pagenr): 56 def formatPage(self, painter, drawing, area, pagenr):
54 """ 57 """
55 Public method to generate a header line. 58 Public method to generate a header line.
56 59
57 @param painter the paint canvas (QPainter) 60 @param painter the paint canvas (QPainter)
58 @param drawing flag indicating that something should be drawn 61 @param drawing flag indicating that something should be drawn
59 @param area the drawing area (QRect) 62 @param area the drawing area (QRect)
60 @param pagenr the page number (int) 63 @param pagenr the page number (int)
61 """ 64 """
62 fn = self.docName() 65 fn = self.docName()
63 66
64 header = QCoreApplication.translate( 67 header = QCoreApplication.translate(
65 'Printer', '{0} - Printed on {1}, {2} - Page {3}' 68 "Printer", "{0} - Printed on {1}, {2} - Page {3}"
66 ).format(fn, self.date, self.time, pagenr) 69 ).format(fn, self.date, self.time, pagenr)
67 70
68 painter.save() 71 painter.save()
69 painter.setFont(self.headerFont) # set our header font 72 painter.setFont(self.headerFont) # set our header font
70 painter.setPen(QColor(Qt.GlobalColor.black)) # set color 73 painter.setPen(QColor(Qt.GlobalColor.black)) # set color
71 if drawing: 74 if drawing:
72 fm = painter.fontMetrics() 75 fm = painter.fontMetrics()
73 try: 76 try:
74 fmWidth = fm.horizontalAdvance(header) 77 fmWidth = fm.horizontalAdvance(header)
75 except AttributeError: 78 except AttributeError:
76 fmWidth = fm.width(header) 79 fmWidth = fm.width(header)
77 painter.drawText( 80 painter.drawText(
78 area.right() - fmWidth, 81 area.right() - fmWidth,
79 area.top() + painter.fontMetrics().ascent(), header) 82 area.top() + painter.fontMetrics().ascent(),
83 header,
84 )
80 area.setTop(area.top() + painter.fontMetrics().height() + 5) 85 area.setTop(area.top() + painter.fontMetrics().height() + 5)
81 painter.restore() 86 painter.restore()

eric ide

mercurial