From 545ec31adf3aaa3a87d8743f9bb804c1503d4671 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 21 May 2018 14:31:59 +0200 Subject: [PATCH] FEM: gmsh mesh obj, implement drag and drop for its childs --- .../femguiobjects/_ViewProviderFemMeshGmsh.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py index 0408a30204..f501f8648b 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py @@ -155,6 +155,54 @@ class _ViewProviderFemMeshGmsh: FreeCAD.Console.PrintError("Error in onDelete: " + err.message) return True + def canDragObjects(self): + return True + + def canDropObjects(self): + return True + + def canDragObject(self, dragged_object): + if hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshBoundaryLayer": + return True + elif hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshGroup": + return True + elif hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshRegion": + return True + else: + return False + + def canDropObject(self, incoming_object): + return True + + def dragObject(self, selfvp, dragged_object): + if hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshBoundaryLayer": + objs = self.Object.MeshBoundaryLayerList + objs.remove(dragged_object) + self.Object.MeshBoundaryLayerList = objs + elif hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshGroup": + objs = self.Object.MeshGroupList + objs.remove(dragged_object) + self.Object.MeshGroupList = objs + elif hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshRegion": + objs = self.Object.MeshRegionList + objs.remove(dragged_object) + self.Object.MeshRegionList = objs + + def dropObject(self, selfvp, incoming_object): + if hasattr(incoming_object, "Proxy") and incoming_object.Proxy.Type == "Fem::FemMeshBoundaryLayer": + objs = self.Object.MeshBoundaryLayerList + objs.append(incoming_object) + self.Object.MeshBoundaryLayerList = objs + elif hasattr(incoming_object, "Proxy") and incoming_object.Proxy.Type == "Fem::FemMeshGroup": + objs = self.Object.MeshGroupList + objs.append(incoming_object) + self.Object.MeshGroupList = objs + elif hasattr(incoming_object, "Proxy") and incoming_object.Proxy.Type == "Fem::FemMeshRegion": + objs = self.Object.MeshRegionList + objs.append(incoming_object) + self.Object.MeshRegionList = objs + FreeCAD.ActiveDocument.recompute() + class _TaskPanelFemMeshGmsh: '''The TaskPanel for editing References property of FemMeshGmsh objects and creation of new FEM mesh'''