7 Module implementing a subclass of EricGraphicsView for our diagrams. |
7 Module implementing a subclass of EricGraphicsView for our diagrams. |
8 """ |
8 """ |
9 |
9 |
10 import pathlib |
10 import pathlib |
11 |
11 |
12 from PyQt6.QtCore import pyqtSignal, Qt, QSignalMapper, QEvent, QRectF, QMarginsF |
12 from PyQt6.QtCore import QEvent, QMarginsF, QRectF, QSignalMapper, Qt, pyqtSignal |
13 from PyQt6.QtGui import QAction, QPageLayout |
13 from PyQt6.QtGui import QAction, QPageLayout |
14 from PyQt6.QtWidgets import QGraphicsView, QToolBar, QDialog |
14 from PyQt6.QtPrintSupport import QPrintDialog, QPrinter |
15 from PyQt6.QtPrintSupport import QPrinter, QPrintDialog |
15 from PyQt6.QtWidgets import QDialog, QGraphicsView, QToolBar |
16 |
16 |
|
17 from eric7 import Preferences |
17 from eric7.EricGraphics.EricGraphicsView import EricGraphicsView |
18 from eric7.EricGraphics.EricGraphicsView import EricGraphicsView |
18 |
19 from eric7.EricGui import EricPixmapCache |
19 from eric7.EricWidgets import EricMessageBox, EricFileDialog |
20 from eric7.EricWidgets import EricFileDialog, EricMessageBox |
20 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
21 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
|
22 from eric7.UI import Config |
21 |
23 |
22 from .UMLItem import UMLItem |
24 from .UMLItem import UMLItem |
23 |
|
24 from eric7.EricGui import EricPixmapCache |
|
25 from eric7.UI import Config |
|
26 |
|
27 from eric7 import Preferences |
|
28 |
25 |
29 |
26 |
30 class UMLGraphicsView(EricGraphicsView): |
27 class UMLGraphicsView(EricGraphicsView): |
31 """ |
28 """ |
32 Class implementing a specialized EricGraphicsView for our diagrams. |
29 Class implementing a specialized EricGraphicsView for our diagrams. |
753 |
750 |
754 if not data[0].startswith("diagram_name:"): |
751 if not data[0].startswith("diagram_name:"): |
755 return False, 0 |
752 return False, 0 |
756 self.diagramName = data[0].split(": ", 1)[1].strip() |
753 self.diagramName = data[0].split(": ", 1)[1].strip() |
757 |
754 |
|
755 from .AssociationItem import AssociationItem |
758 from .ClassItem import ClassItem |
756 from .ClassItem import ClassItem |
759 from .ModuleItem import ModuleItem |
757 from .ModuleItem import ModuleItem |
760 from .PackageItem import PackageItem |
758 from .PackageItem import PackageItem |
761 from .AssociationItem import AssociationItem |
|
762 |
759 |
763 for linenum, line in enumerate(data[1:], start=1): |
760 for linenum, line in enumerate(data[1:], start=1): |
764 if not line.startswith(("item:", "association:")): |
761 if not line.startswith(("item:", "association:")): |
765 return False, linenum |
762 return False, linenum |
766 |
763 |
840 @param data dictionary containing the persisted data |
837 @param data dictionary containing the persisted data |
841 @type dict |
838 @type dict |
842 @return flag indicating success |
839 @return flag indicating success |
843 @rtype bool |
840 @rtype bool |
844 """ |
841 """ |
845 from .UMLItem import UMLItem |
842 from .AssociationItem import AssociationItem |
846 from .ClassItem import ClassItem |
843 from .ClassItem import ClassItem |
847 from .ModuleItem import ModuleItem |
844 from .ModuleItem import ModuleItem |
848 from .PackageItem import PackageItem |
845 from .PackageItem import PackageItem |
849 from .AssociationItem import AssociationItem |
846 from .UMLItem import UMLItem |
850 |
847 |
851 umlItems = {} |
848 umlItems = {} |
852 |
849 |
853 try: |
850 try: |
854 self.diagramName = data["diagram_name"] |
851 self.diagramName = data["diagram_name"] |