49 self.setObjectName("SvgDiagram") |
49 self.setObjectName("SvgDiagram") |
50 self.setWindowTitle(self.tr("SVG-Viewer")) |
50 self.setWindowTitle(self.tr("SVG-Viewer")) |
51 |
51 |
52 self.svgWidget = QSvgWidget() |
52 self.svgWidget = QSvgWidget() |
53 self.svgWidget.setObjectName("svgWidget") |
53 self.svgWidget.setObjectName("svgWidget") |
54 self.svgWidget.setBackgroundRole(QPalette.Base) |
54 self.svgWidget.setBackgroundRole(QPalette.ColorRole.Base) |
55 self.svgWidget.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored) |
55 self.svgWidget.setSizePolicy( |
|
56 QSizePolicy.Policy.Ignored, QSizePolicy.Policy.Ignored) |
56 |
57 |
57 self.svgView = QScrollArea() |
58 self.svgView = QScrollArea() |
58 self.svgView.setObjectName("svgView") |
59 self.svgView.setObjectName("svgView") |
59 self.svgView.setBackgroundRole(QPalette.Dark) |
60 self.svgView.setBackgroundRole(QPalette.ColorRole.Dark) |
60 self.svgView.setWidget(self.svgWidget) |
61 self.svgView.setWidget(self.svgWidget) |
61 |
62 |
62 self.setCentralWidget(self.svgView) |
63 self.setCentralWidget(self.svgView) |
63 |
64 |
64 self.__zoomWidget = E5ZoomWidget( |
65 self.__zoomWidget = E5ZoomWidget( |
111 self.__menu.addAction(self.closeAct) |
112 self.__menu.addAction(self.closeAct) |
112 self.__menu.addSeparator() |
113 self.__menu.addSeparator() |
113 self.__menu.addAction(self.printPreviewAct) |
114 self.__menu.addAction(self.printPreviewAct) |
114 self.__menu.addAction(self.printAct) |
115 self.__menu.addAction(self.printAct) |
115 |
116 |
116 self.setContextMenuPolicy(Qt.CustomContextMenu) |
117 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) |
117 self.customContextMenuRequested.connect(self.__showContextMenu) |
118 self.customContextMenuRequested.connect(self.__showContextMenu) |
118 |
119 |
119 def __showContextMenu(self, coord): |
120 def __showContextMenu(self, coord): |
120 """ |
121 """ |
121 Private slot to show the context menu of the listview. |
122 Private slot to show the context menu of the listview. |
135 self.graphicsToolBar = QToolBar(self.tr("Graphics"), self) |
136 self.graphicsToolBar = QToolBar(self.tr("Graphics"), self) |
136 self.graphicsToolBar.setIconSize(UI.Config.ToolBarIconSize) |
137 self.graphicsToolBar.setIconSize(UI.Config.ToolBarIconSize) |
137 self.graphicsToolBar.addAction(self.printPreviewAct) |
138 self.graphicsToolBar.addAction(self.printPreviewAct) |
138 self.graphicsToolBar.addAction(self.printAct) |
139 self.graphicsToolBar.addAction(self.printAct) |
139 |
140 |
140 self.addToolBar(Qt.TopToolBarArea, self.windowToolBar) |
141 self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.windowToolBar) |
141 self.addToolBar(Qt.TopToolBarArea, self.graphicsToolBar) |
142 self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.graphicsToolBar) |
142 |
143 |
143 def getDiagramName(self): |
144 def getDiagramName(self): |
144 """ |
145 """ |
145 Public method to retrieve a name for the diagram. |
146 Public method to retrieve a name for the diagram. |
146 |
147 |
170 Public method handling events. |
171 Public method handling events. |
171 |
172 |
172 @param evt reference to the event (QEvent) |
173 @param evt reference to the event (QEvent) |
173 @return flag indicating, if the event was handled (boolean) |
174 @return flag indicating, if the event was handled (boolean) |
174 """ |
175 """ |
175 if evt.type() == QEvent.Gesture: |
176 if evt.type() == QEvent.Type.Gesture: |
176 self.gestureEvent(evt) |
177 self.gestureEvent(evt) |
177 return True |
178 return True |
178 |
179 |
179 return super(SvgDiagram, self).event(evt) |
180 return super(SvgDiagram, self).event(evt) |
180 |
181 |
182 """ |
183 """ |
183 Protected method handling gesture events. |
184 Protected method handling gesture events. |
184 |
185 |
185 @param evt reference to the gesture event (QGestureEvent |
186 @param evt reference to the gesture event (QGestureEvent |
186 """ |
187 """ |
187 pinch = evt.gesture(Qt.PinchGesture) |
188 pinch = evt.gesture(Qt.GestureType.PinchGesture) |
188 if pinch: |
189 if pinch: |
189 if pinch.state() == Qt.GestureStarted: |
190 if pinch.state() == Qt.GestureState.GestureStarted: |
190 pinch.setTotalScaleFactor(self.__zoom() / 100) |
191 pinch.setTotalScaleFactor(self.__zoom() / 100) |
191 elif pinch.state() == Qt.GestureUpdated: |
192 elif pinch.state() == Qt.GestureState.GestureUpdated: |
192 self.__doZoom(int(pinch.totalScaleFactor() * 100)) |
193 self.__doZoom(int(pinch.totalScaleFactor() * 100)) |
193 evt.accept() |
194 evt.accept() |
194 |
195 |
195 ########################################################################### |
196 ########################################################################### |
196 ## Private menu handling methods below. |
197 ## Private menu handling methods below. |
271 |
272 |
272 def __printDiagram(self): |
273 def __printDiagram(self): |
273 """ |
274 """ |
274 Private slot called to print the diagram. |
275 Private slot called to print the diagram. |
275 """ |
276 """ |
276 printer = QPrinter(mode=QPrinter.ScreenResolution) |
277 printer = QPrinter(mode=QPrinter.PrinterMode.ScreenResolution) |
277 printer.setFullPage(True) |
278 printer.setFullPage(True) |
278 if Preferences.getPrinter("ColorMode"): |
279 if Preferences.getPrinter("ColorMode"): |
279 printer.setColorMode(QPrinter.Color) |
280 printer.setColorMode(QPrinter.ColorMode.Color) |
280 else: |
281 else: |
281 printer.setColorMode(QPrinter.GrayScale) |
282 printer.setColorMode(QPrinter.ColorMode.GrayScale) |
282 if Preferences.getPrinter("FirstPageFirst"): |
283 if Preferences.getPrinter("FirstPageFirst"): |
283 printer.setPageOrder(QPrinter.FirstPageFirst) |
284 printer.setPageOrder(QPrinter.PageOrder.FirstPageFirst) |
284 else: |
285 else: |
285 printer.setPageOrder(QPrinter.LastPageFirst) |
286 printer.setPageOrder(QPrinter.PageOrder.LastPageFirst) |
286 printerName = Preferences.getPrinter("PrinterName") |
287 printerName = Preferences.getPrinter("PrinterName") |
287 if printerName: |
288 if printerName: |
288 printer.setPrinterName(printerName) |
289 printer.setPrinterName(printerName) |
289 |
290 |
290 printDialog = QPrintDialog(printer, self) |
291 printDialog = QPrintDialog(printer, self) |
295 """ |
296 """ |
296 Private slot called to show a print preview of the diagram. |
297 Private slot called to show a print preview of the diagram. |
297 """ |
298 """ |
298 from PyQt5.QtPrintSupport import QPrintPreviewDialog |
299 from PyQt5.QtPrintSupport import QPrintPreviewDialog |
299 |
300 |
300 printer = QPrinter(mode=QPrinter.ScreenResolution) |
301 printer = QPrinter(mode=QPrinter.PrinterMode.ScreenResolution) |
301 printer.setFullPage(True) |
302 printer.setFullPage(True) |
302 if Preferences.getPrinter("ColorMode"): |
303 if Preferences.getPrinter("ColorMode"): |
303 printer.setColorMode(QPrinter.Color) |
304 printer.setColorMode(QPrinter.ColorMode.Color) |
304 else: |
305 else: |
305 printer.setColorMode(QPrinter.GrayScale) |
306 printer.setColorMode(QPrinter.ColorMode.GrayScale) |
306 if Preferences.getPrinter("FirstPageFirst"): |
307 if Preferences.getPrinter("FirstPageFirst"): |
307 printer.setPageOrder(QPrinter.FirstPageFirst) |
308 printer.setPageOrder(QPrinter.PageOrder.FirstPageFirst) |
308 else: |
309 else: |
309 printer.setPageOrder(QPrinter.LastPageFirst) |
310 printer.setPageOrder(QPrinter.PageOrder.LastPageFirst) |
310 printer.setPageMargins( |
311 printer.setPageMargins( |
311 Preferences.getPrinter("LeftMargin") * 10, |
312 Preferences.getPrinter("LeftMargin") * 10, |
312 Preferences.getPrinter("TopMargin") * 10, |
313 Preferences.getPrinter("TopMargin") * 10, |
313 Preferences.getPrinter("RightMargin") * 10, |
314 Preferences.getPrinter("RightMargin") * 10, |
314 Preferences.getPrinter("BottomMargin") * 10, |
315 Preferences.getPrinter("BottomMargin") * 10, |
315 QPrinter.Millimeter |
316 QPrinter.Unit.Millimeter |
316 ) |
317 ) |
317 printerName = Preferences.getPrinter("PrinterName") |
318 printerName = Preferences.getPrinter("PrinterName") |
318 if printerName: |
319 if printerName: |
319 printer.setPrinterName(printerName) |
320 printer.setPrinterName(printerName) |
320 |
321 |
365 painter.drawRect(marginX, marginY, width, height) |
366 painter.drawRect(marginX, marginY, width, height) |
366 painter.drawLine(marginX, marginY + height + 2, |
367 painter.drawLine(marginX, marginY + height + 2, |
367 marginX + width, marginY + height + 2) |
368 marginX + width, marginY + height + 2) |
368 painter.setFont(font) |
369 painter.setFont(font) |
369 painter.drawText(marginX, marginY + height + 4, width, |
370 painter.drawText(marginX, marginY + height + 4, width, |
370 fontHeight, Qt.AlignRight, s) |
371 fontHeight, Qt.AlignmentFlag.AlignRight, s) |
371 |
372 |
372 # render the diagram |
373 # render the diagram |
373 painter.setViewport(marginX, marginY, width, height) |
374 painter.setViewport(marginX, marginY, width, height) |
374 self.svgWidget.renderer().render(painter) |
375 self.svgWidget.renderer().render(painter) |
375 painter.end() |
376 painter.end() |