From 6173d48da7390c70f60c686c913eed17dfc1b85c Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Sun, 22 Jan 2023 20:03:58 +0100 Subject: [PATCH] Draft: housekeeping: remove temporary DraftFillet module (#8233) --- src/Mod/Draft/DraftFillet.py | 192 ----------------------------------- src/Mod/Draft/InitGui.py | 1 - 2 files changed, 193 deletions(-) delete mode 100644 src/Mod/Draft/DraftFillet.py diff --git a/src/Mod/Draft/DraftFillet.py b/src/Mod/Draft/DraftFillet.py deleted file mode 100644 index 39a7f4f94b..0000000000 --- a/src/Mod/Draft/DraftFillet.py +++ /dev/null @@ -1,192 +0,0 @@ -# *************************************************************************** -# * Copyright (c) 2020 Eliud Cabrera Castillo * -# * * -# * This program is free software; you can redistribute it and/or modify * -# * it under the terms of the GNU Lesser General Public License (LGPL) * -# * as published by the Free Software Foundation; either version 2 of * -# * the License, or (at your option) any later version. * -# * for detail see the LICENCE text file. * -# * * -# * This program is distributed in the hope that it will be useful, * -# * but WITHOUT ANY WARRANTY; without even the implied warranty of * -# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -# * GNU Library General Public License for more details. * -# * * -# * You should have received a copy of the GNU Library General Public * -# * License along with this program; if not, write to the Free Software * -# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -# * USA * -# * * -# *************************************************************************** -"""Provides the Fillet class for objects created with a prototype version. - -The original Fillet object and Gui Command was introduced -in the development cycle of 0.19, in commit d5ca09c77b, 2019-08-22. - -However, when this class was implemented, the reorganization -of the workbench was not advanced. - -When the reorganization was on its way it was clear that this tool -also needed to be broken into different modules; however, this was done -only at the end of the reorganization. - -In commit 01df7c0a63, 2020-02-10, the Gui Command was removed from -the graphical interface so that the user cannot create this object -graphically any more. The object class was still kept -so that previous objects created between August 2019 and February 2020 -would open correctly. - -Now in this module the older class is redirected to the new class -in order to migrate the object. - -A new Gui Command in `draftguitools` and new make function in `draftmake` -are now used to create `Fillet` objects. Therefore, this module -is only required to migrate old objects created in that time -with the 0.19 development version. - -Since this module is only used to migrate older objects, it is only temporary, -and will be removed after one year, that is, in January 2021. - -The explanation of the migration methods is in the wiki page: -https://wiki.freecadweb.org/Scripted_objects_migration -""" -## @package DraftFillet -# \ingroup DRAFT -# \brief Provides Fillet class for objects created with a prototype version. -# -# This module is only required to migrate old objects created -# from August 2019 to February 2020. It will be removed definitely -# in January 2021, as the new Fillet object should be available. - -import FreeCAD as App -import draftobjects.fillet -import draftobjects.base as base -from draftutils.messages import _wrn - -if App.GuiUp: - import draftviewproviders.view_fillet as view_fillet - -# ----------------------------------------------------------------------------- -# Removed definitions -# def _extract_edges(objs): - -# def makeFillet(objs, radius=100, chamfer=False, delete=False): - -# class Fillet(Draft._DraftObject): - -# class CommandFillet(DraftTools.Creator): -# ----------------------------------------------------------------------------- - - -class Fillet(base.DraftObject): - """The old Fillet object. DEPRECATED. - - This class is solely defined to migrate older objects. - - When an old object is opened it will reconstruct the object - by searching for this class. So we implement `onDocumentRestored` - to test that it is the old class and we migrate it, - by assigning the new proxy class, and the new viewprovider. - """ - - def onDocumentRestored(self, obj): - """Run when the document that is using this class is restored.""" - if hasattr(obj, "Proxy") and obj.Proxy.Type == "Fillet": - _module = str(obj.Proxy.__class__) - _module = _module.lstrip("") - - if _module == "DraftFillet.Fillet": - self._migrate(obj, _module) - - def _migrate(self, obj, _module): - """Migrate the object to the new object.""" - _wrn("v0.19, {0}, '{1}' object ".format(obj.Label, _module) - + "will be migrated to 'draftobjects.fillet.Fillet'") - - # Save the old properties and delete them - old_dict = _save_properties0_19_to_0_19(obj) - - # We assign the new class, which could have different properties - # from the older class. Since we removed the older properties - # we know the new properties will not collide with the old properties. - # The new class itself should handle some logic so that it does not - # add already existing properties of the same name and type. - draftobjects.fillet.Fillet(obj) - - # Assign the old properties - obj = _assign_properties0_19_to_0_19(obj, old_dict) - - # The same is done for the viewprovider. - if App.GuiUp: - vobj = obj.ViewObject - old_dict = _save_vproperties0_19_to_0_19(vobj) - view_fillet.ViewProviderFillet(vobj) - _assign_vproperties0_19_to_0_19(vobj, old_dict) - - -def _save_properties0_19_to_0_19(obj): - """Save the old property values and remove the old properties. - - Since we know the structure of the older Proxy class, - we can take its old values and store them before - we remove the property. - - We do not need to save the old properties if these - can be recalculated from the new data. - """ - _wrn("Old property values saved, old properties removed.") - old_dict = dict() - if hasattr(obj, "Length"): - old_dict["Length"] = obj.Length - obj.removeProperty("Length") - if hasattr(obj, "Start"): - old_dict["Start"] = obj.Start - obj.removeProperty("Start") - if hasattr(obj, "End"): - old_dict["End"] = obj.End - obj.removeProperty("End") - if hasattr(obj, "FilletRadius"): - old_dict["FilletRadius"] = obj.FilletRadius - obj.removeProperty("FilletRadius") - return old_dict - - -def _assign_properties0_19_to_0_19(obj, old_dict): - """Assign the new properties from the old properties. - - If new properties are named differently than the older properties - or if the old values need to be transformed because the class - now manages differently the data, this can be done here. - Otherwise simple assigning the old values is possible. - """ - _wrn("New property values added.") - if hasattr(obj, "Length"): - obj.Length = old_dict["Length"] - if hasattr(obj, "Start"): - obj.Start = old_dict["Start"] - if hasattr(obj, "End"): - obj.End = old_dict["End"] - if hasattr(obj, "FilletRadius"): - obj.FilletRadius = old_dict["FilletRadius"] - return obj - - -def _save_vproperties0_19_to_0_19(vobj): - """Save the old property values and remove the old properties. - - The view provider didn't add new properties so this just returns - an empty element. - """ - _wrn("Old view property values saved, old view properties removed. NONE.") - old_dict = dict() - return old_dict - - -def _assign_vproperties0_19_to_0_19(vobj, old_dict): - """Assign the new properties from the old properties. - - The view provider didn't add new properties so this just returns - the same viewprovider. - """ - _wrn("New view property values added. NONE.") - return vobj diff --git a/src/Mod/Draft/InitGui.py b/src/Mod/Draft/InitGui.py index c7c60cd25e..5aded43d32 100644 --- a/src/Mod/Draft/InitGui.py +++ b/src/Mod/Draft/InitGui.py @@ -81,7 +81,6 @@ class DraftWorkbench(FreeCADGui.Workbench): import Draft_rc import DraftTools import DraftGui - import DraftFillet FreeCADGui.addLanguagePath(":/translations") FreeCADGui.addIconPath(":/icons") except Exception as exc: