36 |
36 |
37 def __init__(self, svgFile, parent=None, name=None): |
37 def __init__(self, svgFile, parent=None, name=None): |
38 """ |
38 """ |
39 Constructor |
39 Constructor |
40 |
40 |
41 @param svgFile filename of a SVG graphics file to show (string) |
41 @param svgFile filename of a SVG graphics file to show |
42 @param parent parent widget of the view (QWidget) |
42 @type str |
43 @param name name of the view widget (string) |
43 @param parent parent widget of the view |
|
44 @type QWidget |
|
45 @param name name of the view widget |
|
46 @type str |
44 """ |
47 """ |
45 super().__init__(parent) |
48 super().__init__(parent) |
46 if name: |
49 if name: |
47 self.setObjectName(name) |
50 self.setObjectName(name) |
48 else: |
51 else: |
119 |
122 |
120 def __showContextMenu(self, coord): |
123 def __showContextMenu(self, coord): |
121 """ |
124 """ |
122 Private slot to show the context menu of the listview. |
125 Private slot to show the context menu of the listview. |
123 |
126 |
124 @param coord the position of the mouse pointer (QPoint) |
127 @param coord the position of the mouse pointer |
|
128 @type QPoint |
125 """ |
129 """ |
126 self.__menu.popup(self.mapToGlobal(coord)) |
130 self.__menu.popup(self.mapToGlobal(coord)) |
127 |
131 |
128 def __initToolBars(self): |
132 def __initToolBars(self): |
129 """ |
133 """ |
144 def getDiagramName(self): |
148 def getDiagramName(self): |
145 """ |
149 """ |
146 Public method to retrieve a name for the diagram. |
150 Public method to retrieve a name for the diagram. |
147 |
151 |
148 @return name for the diagram |
152 @return name for the diagram |
|
153 @rtype str |
149 """ |
154 """ |
150 return self.svgFile |
155 return self.svgFile |
151 |
156 |
152 def wheelEvent(self, evt): |
157 def wheelEvent(self, evt): |
153 """ |
158 """ |
154 Protected method to handle wheel events. |
159 Protected method to handle wheel events. |
155 |
160 |
156 @param evt reference to the wheel event (QWheelEvent) |
161 @param evt reference to the wheel event |
|
162 @type QWheelEvent |
157 """ |
163 """ |
158 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier: |
164 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier: |
159 delta = evt.angleDelta().y() |
165 delta = evt.angleDelta().y() |
160 if delta < 0: |
166 if delta < 0: |
161 self.__zoomOut() |
167 self.__zoomOut() |
168 |
174 |
169 def event(self, evt): |
175 def event(self, evt): |
170 """ |
176 """ |
171 Public method handling events. |
177 Public method handling events. |
172 |
178 |
173 @param evt reference to the event (QEvent) |
179 @param evt reference to the event |
174 @return flag indicating, if the event was handled (boolean) |
180 @type QEvent |
|
181 @return flag indicating, if the event was handled |
|
182 @rtype bool |
175 """ |
183 """ |
176 if evt.type() == QEvent.Type.Gesture: |
184 if evt.type() == QEvent.Type.Gesture: |
177 self.gestureEvent(evt) |
185 self.gestureEvent(evt) |
178 return True |
186 return True |
179 |
187 |
181 |
189 |
182 def gestureEvent(self, evt): |
190 def gestureEvent(self, evt): |
183 """ |
191 """ |
184 Protected method handling gesture events. |
192 Protected method handling gesture events. |
185 |
193 |
186 @param evt reference to the gesture event (QGestureEvent |
194 @param evt reference to the gesture event |
|
195 @type QGestureEvent |
187 """ |
196 """ |
188 pinch = evt.gesture(Qt.GestureType.PinchGesture) |
197 pinch = evt.gesture(Qt.GestureType.PinchGesture) |
189 if pinch: |
198 if pinch: |
190 if pinch.state() == Qt.GestureState.GestureStarted: |
199 if pinch.state() == Qt.GestureState.GestureStarted: |
191 pinch.setTotalScaleFactor(self.__zoom() / 100) |
200 pinch.setTotalScaleFactor(self.__zoom() / 100) |
199 |
208 |
200 def __adjustScrollBar(self, scrollBar, factor): |
209 def __adjustScrollBar(self, scrollBar, factor): |
201 """ |
210 """ |
202 Private method to adjust a scrollbar by a certain factor. |
211 Private method to adjust a scrollbar by a certain factor. |
203 |
212 |
204 @param scrollBar reference to the scrollbar object (QScrollBar) |
213 @param scrollBar reference to the scrollbar object |
205 @param factor factor to adjust by (float) |
214 @type QScrollBar |
|
215 @param factor factor to adjust by |
|
216 @type float |
206 """ |
217 """ |
207 scrollBar.setValue( |
218 scrollBar.setValue( |
208 int(factor * scrollBar.value() + |
219 int(factor * scrollBar.value() + |
209 ((factor - 1) * scrollBar.pageStep() / 2))) |
220 ((factor - 1) * scrollBar.pageStep() / 2))) |
210 |
221 |
211 def __levelForZoom(self, zoom): |
222 def __levelForZoom(self, zoom): |
212 """ |
223 """ |
213 Private method determining the zoom level index given a zoom factor. |
224 Private method determining the zoom level index given a zoom factor. |
214 |
225 |
215 @param zoom zoom factor (integer) |
226 @param zoom zoom factor |
216 @return index of zoom factor (integer) |
227 @type int |
|
228 @return index of zoom factor |
|
229 @rtype int |
217 """ |
230 """ |
218 try: |
231 try: |
219 index = SvgDiagram.ZoomLevels.index(zoom) |
232 index = SvgDiagram.ZoomLevels.index(zoom) |
220 except ValueError: |
233 except ValueError: |
221 for index in range(len(SvgDiagram.ZoomLevels)): |
234 for index in range(len(SvgDiagram.ZoomLevels)): |
225 |
238 |
226 def __doZoom(self, value): |
239 def __doZoom(self, value): |
227 """ |
240 """ |
228 Private method to set the zoom value in percent. |
241 Private method to set the zoom value in percent. |
229 |
242 |
230 @param value zoom value in percent (integer) |
243 @param value zoom value in percent |
|
244 @type int |
231 """ |
245 """ |
232 oldValue = self.__zoom() |
246 oldValue = self.__zoom() |
233 if value != oldValue: |
247 if value != oldValue: |
234 self.svgWidget.resize(value / 100 * self.svgWidget.sizeHint()) |
248 self.svgWidget.resize(value / 100 * self.svgWidget.sizeHint()) |
235 |
249 |
263 |
277 |
264 def __zoom(self): |
278 def __zoom(self): |
265 """ |
279 """ |
266 Private method to get the current zoom factor in percent. |
280 Private method to get the current zoom factor in percent. |
267 |
281 |
268 @return current zoom factor in percent (integer) |
282 @return current zoom factor in percent |
|
283 @rtype int |
269 """ |
284 """ |
270 return int(self.svgWidget.width() / |
285 return int(self.svgWidget.width() / |
271 self.svgWidget.sizeHint().width() * 100.0) |
286 self.svgWidget.sizeHint().width() * 100.0) |
272 |
287 |
273 def __printDiagram(self): |
288 def __printDiagram(self): |
325 |
340 |
326 def __print(self, printer): |
341 def __print(self, printer): |
327 """ |
342 """ |
328 Private slot to the actual printing. |
343 Private slot to the actual printing. |
329 |
344 |
330 @param printer reference to the printer object (QPrinter) |
345 @param printer reference to the printer object |
|
346 @type QPrinter |
331 """ |
347 """ |
332 painter = QPainter() |
348 painter = QPainter() |
333 painter.begin(printer) |
349 painter.begin(printer) |
334 |
350 |
335 # calculate margin and width of printout |
351 # calculate margin and width of printout |