Graphics/UMLGraphicsView.py

branch
5_2_x
changeset 2029
51e8278f2c3d
parent 1589
9f0fef4a4fbe
child 2303
0ed4ed026c16
equal deleted inserted replaced
2022:674ef50b5004 2029:51e8278f2c3d
6 """ 6 """
7 Module implementing a subclass of E5GraphicsView for our diagrams. 7 Module implementing a subclass of E5GraphicsView for our diagrams.
8 """ 8 """
9 9
10 from PyQt4.QtCore import pyqtSignal, Qt, QSignalMapper, QFileInfo, QEvent 10 from PyQt4.QtCore import pyqtSignal, Qt, QSignalMapper, QFileInfo, QEvent
11 from PyQt4.QtGui import QAction, QToolBar, QDialog, QPrinter, QPrintDialog 11 from PyQt4.QtGui import QAction, QToolBar, QDialog, QPrinter, QPrintDialog, QGraphicsView
12 12
13 from E5Graphics.E5GraphicsView import E5GraphicsView 13 from E5Graphics.E5GraphicsView import E5GraphicsView
14 14
15 from E5Gui import E5MessageBox, E5FileDialog 15 from E5Gui import E5MessageBox, E5FileDialog
16 16
43 @param name name of the view widget (string) 43 @param name name of the view widget (string)
44 """ 44 """
45 E5GraphicsView.__init__(self, scene, parent) 45 E5GraphicsView.__init__(self, scene, parent)
46 if name: 46 if name:
47 self.setObjectName(name) 47 self.setObjectName(name)
48 self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate)
48 49
49 self.diagramName = diagramName 50 self.diagramName = diagramName
50 51
51 self.border = 10 52 self.border = 10
52 self.deltaSize = 100.0 53 self.deltaSize = 100.0
178 """ 179 """
179 Private slot to set the enabled state of the size actions. 180 Private slot to set the enabled state of the size actions.
180 """ 181 """
181 diagramSize = self._getDiagramSize(10) 182 diagramSize = self._getDiagramSize(10)
182 sceneRect = self.scene().sceneRect() 183 sceneRect = self.scene().sceneRect()
183 if (sceneRect.width() - self.deltaSize) <= diagramSize.width(): 184 if (sceneRect.width() - self.deltaSize) < diagramSize.width():
184 self.decWidthAct.setEnabled(False) 185 self.decWidthAct.setEnabled(False)
185 else: 186 else:
186 self.decWidthAct.setEnabled(True) 187 self.decWidthAct.setEnabled(True)
187 if (sceneRect.height() - self.deltaSize) <= diagramSize.height(): 188 if (sceneRect.height() - self.deltaSize) < diagramSize.height():
188 self.decHeightAct.setEnabled(False) 189 self.decHeightAct.setEnabled(False)
189 else: 190 else:
190 self.decHeightAct.setEnabled(True) 191 self.decHeightAct.setEnabled(True)
191 192
192 def __sceneChanged(self, areas): 193 def __sceneChanged(self, areas):
197 """ 198 """
198 if len(self.scene().selectedItems()) > 0: 199 if len(self.scene().selectedItems()) > 0:
199 self.deleteShapeAct.setEnabled(True) 200 self.deleteShapeAct.setEnabled(True)
200 else: 201 else:
201 self.deleteShapeAct.setEnabled(False) 202 self.deleteShapeAct.setEnabled(False)
203
204 sceneRect = self.scene().sceneRect()
205 newWidth = width = sceneRect.width()
206 newHeight = height = sceneRect.height()
207 rect = self._getDiagramRect(10)
208 if width < rect.width():
209 newWidth = rect.width()
210 if height < rect.height():
211 newHeight = rect.height()
212
213 if newHeight != height or newWidth != width:
214 self.setSceneSize(newWidth, newHeight)
215 self.__checkSizeActions()
202 216
203 def initToolBar(self): 217 def initToolBar(self):
204 """ 218 """
205 Public method to populate a toolbar with our actions. 219 Public method to populate a toolbar with our actions.
206 220
357 371
358 def __relayout(self): 372 def __relayout(self):
359 """ 373 """
360 Private method to handle the re-layout context menu entry. 374 Private method to handle the re-layout context menu entry.
361 """ 375 """
362 scene = self.scene() 376 self.scene().clear()
363 for itm in list(scene.items())[:]:
364 if itm.scene() == scene:
365 scene.removeItem(itm)
366 self.relayout.emit() 377 self.relayout.emit()
367 378
368 def __printDiagram(self): 379 def __printDiagram(self):
369 """ 380 """
370 Private slot called to print the diagram. 381 Private slot called to print the diagram.

eric ide

mercurial