9 |
9 |
10 import pathlib |
10 import pathlib |
11 |
11 |
12 from PyQt6.QtCore import QEvent, QMarginsF, QRectF, QSignalMapper, Qt, pyqtSignal |
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.QtPrintSupport import QPrintDialog, QPrinter |
14 from PyQt6.QtPrintSupport import QPrintDialog, QPrinter, QPrintPreviewDialog |
15 from PyQt6.QtWidgets import QDialog, QGraphicsView, QToolBar |
15 from PyQt6.QtWidgets import QDialog, QGraphicsView, QToolBar |
16 |
16 |
17 from eric7 import Preferences |
17 from eric7 import Preferences |
18 from eric7.EricGraphics.EricGraphicsView import EricGraphicsView |
18 from eric7.EricGraphics.EricGraphicsView import EricGraphicsView |
19 from eric7.EricGui import EricPixmapCache |
19 from eric7.EricGui import EricPixmapCache |
20 from eric7.EricWidgets import EricFileDialog, EricMessageBox |
20 from eric7.EricWidgets import EricFileDialog, EricMessageBox |
21 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
21 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
22 from eric7.UI import Config |
22 from eric7.UI import Config |
23 |
23 |
|
24 from .AssociationItem import AssociationItem |
|
25 from .ClassItem import ClassItem |
|
26 from .ModuleItem import ModuleItem |
|
27 from .PackageItem import PackageItem |
24 from .UMLItem import UMLItem |
28 from .UMLItem import UMLItem |
25 |
29 |
26 |
30 |
27 class UMLGraphicsView(EricGraphicsView): |
31 class UMLGraphicsView(EricGraphicsView): |
28 """ |
32 """ |
464 |
468 |
465 def printPreviewDiagram(self): |
469 def printPreviewDiagram(self): |
466 """ |
470 """ |
467 Public slot called to show a print preview of the diagram. |
471 Public slot called to show a print preview of the diagram. |
468 """ |
472 """ |
469 from PyQt6.QtPrintSupport import QPrintPreviewDialog |
|
470 |
|
471 printer = QPrinter(mode=QPrinter.PrinterMode.PrinterResolution) |
473 printer = QPrinter(mode=QPrinter.PrinterMode.PrinterResolution) |
472 printer.setFullPage(True) |
474 printer.setFullPage(True) |
473 if Preferences.getPrinter("ColorMode"): |
475 if Preferences.getPrinter("ColorMode"): |
474 printer.setColorMode(QPrinter.ColorMode.Color) |
476 printer.setColorMode(QPrinter.ColorMode.Color) |
475 else: |
477 else: |
749 umlItems = {} |
751 umlItems = {} |
750 |
752 |
751 if not data[0].startswith("diagram_name:"): |
753 if not data[0].startswith("diagram_name:"): |
752 return False, 0 |
754 return False, 0 |
753 self.diagramName = data[0].split(": ", 1)[1].strip() |
755 self.diagramName = data[0].split(": ", 1)[1].strip() |
754 |
|
755 from .AssociationItem import AssociationItem |
|
756 from .ClassItem import ClassItem |
|
757 from .ModuleItem import ModuleItem |
|
758 from .PackageItem import PackageItem |
|
759 |
756 |
760 for linenum, line in enumerate(data[1:], start=1): |
757 for linenum, line in enumerate(data[1:], start=1): |
761 if not line.startswith(("item:", "association:")): |
758 if not line.startswith(("item:", "association:")): |
762 return False, linenum |
759 return False, linenum |
763 |
760 |