eric6/Graphics/SvgDiagram.py

changeset 8143
2c730d5fd177
parent 7923
91e843545d9a
child 8218
7c09585bd960
equal deleted inserted replaced
8141:27f636beebad 8143:2c730d5fd177
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(
80 81
81 self.__initActions() 82 self.__initActions()
82 self.__initContextMenu() 83 self.__initContextMenu()
83 self.__initToolBars() 84 self.__initToolBars()
84 85
85 self.grabGesture(Qt.PinchGesture) 86 self.grabGesture(Qt.GestureType.PinchGesture)
86 87
87 def __initActions(self): 88 def __initActions(self):
88 """ 89 """
89 Private method to initialize the view actions. 90 Private method to initialize the view actions.
90 """ 91 """
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
152 """ 153 """
153 Protected method to handle wheel events. 154 Protected method to handle wheel events.
154 155
155 @param evt reference to the wheel event (QWheelEvent) 156 @param evt reference to the wheel event (QWheelEvent)
156 """ 157 """
157 if evt.modifiers() & Qt.ControlModifier: 158 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
158 delta = evt.angleDelta().y() 159 delta = evt.angleDelta().y()
159 if delta < 0: 160 if delta < 0:
160 self.__zoomOut() 161 self.__zoomOut()
161 elif delta > 0: 162 elif delta > 0:
162 self.__zoomIn() 163 self.__zoomIn()
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()

eric ide

mercurial