From 14bc9f2dfca9ca0efc1fcda95c8a9319dd909bb6 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 20 Sep 2019 18:45:36 +0300 Subject: [PATCH] - work on ShapeCollectionLegacy --- FlatCAMApp.py | 6 ++++++ FlatCAMObj.py | 11 ++++++++--- flatcamGUI/PlotCanvasLegacy.py | 16 +--------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 826eb60c..a586a76f 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1595,6 +1595,9 @@ class App(QtCore.QObject): else: self.is_legacy = True + # Matplotlib axis + self.axes = None + if show_splash: self.splash.showMessage(_("FlatCAM is initializing ...\n" "Canvas initialization started."), @@ -1604,7 +1607,9 @@ class App(QtCore.QObject): self.plotcanvas = None self.app_cursor = None self.hover_shapes = None + self.on_plotcanvas_setup() + end_plot_time = time.time() self.used_time = end_plot_time - start_plot_time self.log.debug("Finished Canvas initialization in %s seconds." % str(self.used_time)) @@ -10971,6 +10976,7 @@ class App(QtCore.QObject): if self.is_legacy is False: self.hover_shapes = ShapeCollection(parent=self.plotcanvas.view.scene, layers=1) else: + # will use the default Matplotlib axes self.hover_shapes = ShapeCollectionLegacy() def on_zoom_fit(self, event): diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 6d8a55c6..44eb3c34 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -12,6 +12,7 @@ from datetime import datetime from flatcamGUI.ObjectUI import * from FlatCAMCommon import LoudDict +from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy from camlib import * import itertools @@ -74,13 +75,17 @@ class FlatCAMObj(QtCore.QObject): # store here the default data for Geometry Data self.default_data = {} - if self.app.is_legacy: - self.axes = None # Matplotlib axes; usefull only in Legacy Mode + # 2D mode + # Axes must exist and be attached to canvas. + self.axes = None self.kind = None # Override with proper name # self.shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene) - self.shapes = self.app.plotcanvas.new_shape_group() + if self.app.is_legacy is False: + self.shapes = self.app.plotcanvas.new_shape_group() + else: + self.shapes = ShapeCollectionLegacy() # self.mark_shapes = self.app.plotcanvas.new_shape_collection(layers=2) self.mark_shapes = {} diff --git a/flatcamGUI/PlotCanvasLegacy.py b/flatcamGUI/PlotCanvasLegacy.py index e427fe94..395b833a 100644 --- a/flatcamGUI/PlotCanvasLegacy.py +++ b/flatcamGUI/PlotCanvasLegacy.py @@ -648,9 +648,8 @@ class MplCursor(Cursor): class ShapeCollectionLegacy(): - def __init__(self, obj): + def __init__(self): self._shapes = [] - self.setup_axes(obj=obj) def add(self, shape): try: @@ -668,17 +667,4 @@ class ShapeCollectionLegacy(): def redraw(self): pass - def setup_axes(self, obj): - # Axes must exist and be attached to canvas. - if obj.axes is None or obj.axes not in obj.app.plotcanvas.figure.axes: - obj.axes = obj.app.plotcanvas.new_axes(obj.options['name']) - - if not obj.options["plot"]: - obj.axes.cla() - obj.app.plotcanvas.auto_adjust_axes() - return False - - # Clear axes or we will plot on top of them. - obj.axes.cla() # TODO: Thread safe? - return True