51 self.setObjectName("PixmapDiagram") |
51 self.setObjectName("PixmapDiagram") |
52 self.setWindowTitle(self.tr("Pixmap-Viewer")) |
52 self.setWindowTitle(self.tr("Pixmap-Viewer")) |
53 |
53 |
54 self.pixmapLabel = QLabel() |
54 self.pixmapLabel = QLabel() |
55 self.pixmapLabel.setObjectName("pixmapLabel") |
55 self.pixmapLabel.setObjectName("pixmapLabel") |
56 self.pixmapLabel.setBackgroundRole(QPalette.Base) |
56 self.pixmapLabel.setBackgroundRole(QPalette.ColorRole.Base) |
57 self.pixmapLabel.setSizePolicy( |
57 self.pixmapLabel.setSizePolicy( |
58 QSizePolicy.Ignored, QSizePolicy.Ignored) |
58 QSizePolicy.Policy.Ignored, QSizePolicy.Policy.Ignored) |
59 self.pixmapLabel.setScaledContents(True) |
59 self.pixmapLabel.setScaledContents(True) |
60 |
60 |
61 self.pixmapView = QScrollArea() |
61 self.pixmapView = QScrollArea() |
62 self.pixmapView.setObjectName("pixmapView") |
62 self.pixmapView.setObjectName("pixmapView") |
63 self.pixmapView.setBackgroundRole(QPalette.Dark) |
63 self.pixmapView.setBackgroundRole(QPalette.ColorRole.Dark) |
64 self.pixmapView.setWidget(self.pixmapLabel) |
64 self.pixmapView.setWidget(self.pixmapLabel) |
65 |
65 |
66 self.setCentralWidget(self.pixmapView) |
66 self.setCentralWidget(self.pixmapView) |
67 |
67 |
68 self.__zoomWidget = E5ZoomWidget( |
68 self.__zoomWidget = E5ZoomWidget( |
113 self.__menu.addAction(self.closeAct) |
113 self.__menu.addAction(self.closeAct) |
114 self.__menu.addSeparator() |
114 self.__menu.addSeparator() |
115 self.__menu.addAction(self.printPreviewAct) |
115 self.__menu.addAction(self.printPreviewAct) |
116 self.__menu.addAction(self.printAct) |
116 self.__menu.addAction(self.printAct) |
117 |
117 |
118 self.setContextMenuPolicy(Qt.CustomContextMenu) |
118 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) |
119 self.customContextMenuRequested.connect(self.__showContextMenu) |
119 self.customContextMenuRequested.connect(self.__showContextMenu) |
120 |
120 |
121 def __showContextMenu(self, coord): |
121 def __showContextMenu(self, coord): |
122 """ |
122 """ |
123 Private slot to show the context menu of the listview. |
123 Private slot to show the context menu of the listview. |
137 self.graphicsToolBar = QToolBar(self.tr("Graphics"), self) |
137 self.graphicsToolBar = QToolBar(self.tr("Graphics"), self) |
138 self.graphicsToolBar.setIconSize(UI.Config.ToolBarIconSize) |
138 self.graphicsToolBar.setIconSize(UI.Config.ToolBarIconSize) |
139 self.graphicsToolBar.addAction(self.printPreviewAct) |
139 self.graphicsToolBar.addAction(self.printPreviewAct) |
140 self.graphicsToolBar.addAction(self.printAct) |
140 self.graphicsToolBar.addAction(self.printAct) |
141 |
141 |
142 self.addToolBar(Qt.TopToolBarArea, self.windowToolBar) |
142 self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.windowToolBar) |
143 self.addToolBar(Qt.TopToolBarArea, self.graphicsToolBar) |
143 self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.graphicsToolBar) |
144 |
144 |
145 def __showPixmap(self, filename): |
145 def __showPixmap(self, filename): |
146 """ |
146 """ |
147 Private method to show a file. |
147 Private method to show a file. |
148 |
148 |
201 Public method handling events. |
201 Public method handling events. |
202 |
202 |
203 @param evt reference to the event (QEvent) |
203 @param evt reference to the event (QEvent) |
204 @return flag indicating, if the event was handled (boolean) |
204 @return flag indicating, if the event was handled (boolean) |
205 """ |
205 """ |
206 if evt.type() == QEvent.Gesture: |
206 if evt.type() == QEvent.Type.Gesture: |
207 self.gestureEvent(evt) |
207 self.gestureEvent(evt) |
208 return True |
208 return True |
209 |
209 |
210 return super(PixmapDiagram, self).event(evt) |
210 return super(PixmapDiagram, self).event(evt) |
211 |
211 |
213 """ |
213 """ |
214 Protected method handling gesture events. |
214 Protected method handling gesture events. |
215 |
215 |
216 @param evt reference to the gesture event (QGestureEvent |
216 @param evt reference to the gesture event (QGestureEvent |
217 """ |
217 """ |
218 pinch = evt.gesture(Qt.PinchGesture) |
218 pinch = evt.gesture(Qt.GestureType.PinchGesture) |
219 if pinch: |
219 if pinch: |
220 if pinch.state() == Qt.GestureStarted: |
220 if pinch.state() == Qt.GestureState.GestureStarted: |
221 pinch.setTotalScaleFactor(self.__zoom() / 100) |
221 pinch.setTotalScaleFactor(self.__zoom() / 100) |
222 elif pinch.state() == Qt.GestureUpdated: |
222 elif pinch.state() == Qt.GestureState.GestureUpdated: |
223 self.__doZoom(int(pinch.totalScaleFactor() * 100)) |
223 self.__doZoom(int(pinch.totalScaleFactor() * 100)) |
224 evt.accept() |
224 evt.accept() |
225 |
225 |
226 ########################################################################### |
226 ########################################################################### |
227 ## Private menu handling methods below. |
227 ## Private menu handling methods below. |
304 |
304 |
305 def __printDiagram(self): |
305 def __printDiagram(self): |
306 """ |
306 """ |
307 Private slot called to print the diagram. |
307 Private slot called to print the diagram. |
308 """ |
308 """ |
309 printer = QPrinter(mode=QPrinter.ScreenResolution) |
309 printer = QPrinter(mode=QPrinter.PrinterMode.ScreenResolution) |
310 printer.setFullPage(True) |
310 printer.setFullPage(True) |
311 if Preferences.getPrinter("ColorMode"): |
311 if Preferences.getPrinter("ColorMode"): |
312 printer.setColorMode(QPrinter.Color) |
312 printer.setColorMode(QPrinter.ColorMode.Color) |
313 else: |
313 else: |
314 printer.setColorMode(QPrinter.GrayScale) |
314 printer.setColorMode(QPrinter.ColorMode.GrayScale) |
315 if Preferences.getPrinter("FirstPageFirst"): |
315 if Preferences.getPrinter("FirstPageFirst"): |
316 printer.setPageOrder(QPrinter.FirstPageFirst) |
316 printer.setPageOrder(QPrinter.PageOrder.FirstPageFirst) |
317 else: |
317 else: |
318 printer.setPageOrder(QPrinter.LastPageFirst) |
318 printer.setPageOrder(QPrinter.PageOrder.LastPageFirst) |
319 printer.setPrinterName(Preferences.getPrinter("PrinterName")) |
319 printer.setPrinterName(Preferences.getPrinter("PrinterName")) |
320 |
320 |
321 printDialog = QPrintDialog(printer, self) |
321 printDialog = QPrintDialog(printer, self) |
322 if printDialog.exec(): |
322 if printDialog.exec(): |
323 self.__print(printer) |
323 self.__print(printer) |
326 """ |
326 """ |
327 Private slot called to show a print preview of the diagram. |
327 Private slot called to show a print preview of the diagram. |
328 """ |
328 """ |
329 from PyQt5.QtPrintSupport import QPrintPreviewDialog |
329 from PyQt5.QtPrintSupport import QPrintPreviewDialog |
330 |
330 |
331 printer = QPrinter(mode=QPrinter.ScreenResolution) |
331 printer = QPrinter(mode=QPrinter.PrinterMode.ScreenResolution) |
332 printer.setFullPage(True) |
332 printer.setFullPage(True) |
333 if Preferences.getPrinter("ColorMode"): |
333 if Preferences.getPrinter("ColorMode"): |
334 printer.setColorMode(QPrinter.Color) |
334 printer.setColorMode(QPrinter.ColorMode.Color) |
335 else: |
335 else: |
336 printer.setColorMode(QPrinter.GrayScale) |
336 printer.setColorMode(QPrinter.ColorMode.GrayScale) |
337 if Preferences.getPrinter("FirstPageFirst"): |
337 if Preferences.getPrinter("FirstPageFirst"): |
338 printer.setPageOrder(QPrinter.FirstPageFirst) |
338 printer.setPageOrder(QPrinter.PageOrder.FirstPageFirst) |
339 else: |
339 else: |
340 printer.setPageOrder(QPrinter.LastPageFirst) |
340 printer.setPageOrder(QPrinter.PageOrder.LastPageFirst) |
341 printer.setPageMargins( |
341 printer.setPageMargins( |
342 Preferences.getPrinter("LeftMargin") * 10, |
342 Preferences.getPrinter("LeftMargin") * 10, |
343 Preferences.getPrinter("TopMargin") * 10, |
343 Preferences.getPrinter("TopMargin") * 10, |
344 Preferences.getPrinter("RightMargin") * 10, |
344 Preferences.getPrinter("RightMargin") * 10, |
345 Preferences.getPrinter("BottomMargin") * 10, |
345 Preferences.getPrinter("BottomMargin") * 10, |
346 QPrinter.Millimeter |
346 QPrinter.Unit.Millimeter |
347 ) |
347 ) |
348 printer.setPrinterName(Preferences.getPrinter("PrinterName")) |
348 printer.setPrinterName(Preferences.getPrinter("PrinterName")) |
349 |
349 |
350 preview = QPrintPreviewDialog(printer, self) |
350 preview = QPrintPreviewDialog(printer, self) |
351 preview.paintRequested[QPrinter].connect(self.__print) |
351 preview.paintRequested[QPrinter].connect(self.__print) |
394 painter.drawRect(marginX, marginY, width, height) |
394 painter.drawRect(marginX, marginY, width, height) |
395 painter.drawLine(marginX, marginY + height + 2, |
395 painter.drawLine(marginX, marginY + height + 2, |
396 marginX + width, marginY + height + 2) |
396 marginX + width, marginY + height + 2) |
397 painter.setFont(font) |
397 painter.setFont(font) |
398 painter.drawText(marginX, marginY + height + 4, width, |
398 painter.drawText(marginX, marginY + height + 4, width, |
399 fontHeight, Qt.AlignRight, s) |
399 fontHeight, Qt.AlignmentFlag.AlignRight, s) |
400 |
400 |
401 # render the diagram |
401 # render the diagram |
402 size = self.pixmapLabel.pixmap().size() |
402 size = self.pixmapLabel.pixmap().size() |
403 size.scale(QSize(width - 10, height - 10), # 5 px inner margin |
403 size.scale(QSize(width - 10, height - 10), # 5 px inner margin |
404 Qt.KeepAspectRatio) |
404 Qt.AspectRatioMode.KeepAspectRatio) |
405 painter.setViewport(marginX + 5, marginY + 5, |
405 painter.setViewport(marginX + 5, marginY + 5, |
406 size.width(), size.height()) |
406 size.width(), size.height()) |
407 painter.setWindow(self.pixmapLabel.pixmap().rect()) |
407 painter.setWindow(self.pixmapLabel.pixmap().rect()) |
408 painter.drawPixmap(0, 0, self.pixmapLabel.pixmap()) |
408 painter.drawPixmap(0, 0, self.pixmapLabel.pixmap()) |
409 painter.end() |
409 painter.end() |