eric6/Graphics/SvgDiagram.py

changeset 8289
871b40c5a77a
parent 8218
7c09585bd960
child 8298
83ddb87b3bc1
equal deleted inserted replaced
8288:809d5d5ac2ba 8289:871b40c5a77a
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

eric ide

mercurial