From 7e50cc7c7a850d3af8b839fa5a85b42e91c64337 Mon Sep 17 00:00:00 2001 From: carlopav Date: Mon, 30 Dec 2019 22:51:28 +0100 Subject: [PATCH] [Draft] Edit: context menu for Bezcurve editing --- src/Mod/Draft/DraftEdit.py | 18 ++++++++++++------ src/Mod/Draft/DraftTrackers.py | 5 +++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Mod/Draft/DraftEdit.py b/src/Mod/Draft/DraftEdit.py index 5188084644..25ccbc8082 100644 --- a/src/Mod/Draft/DraftEdit.py +++ b/src/Mod/Draft/DraftEdit.py @@ -1734,12 +1734,18 @@ class Edit(): def evaluate_menu_action(self,labelname): action_label = str(labelname.text()) - if action_label == "make sharp": - pass - elif action_label == "make tangent": - pass - elif action_label == "make symmetric": - pass + # Bezier curve menu + if action_label in ["make sharp", "make tangent", "make symmetric"]: + doc = self.overNode.getDocName() + obj = FreeCAD.getDocument(doc).getObject(self.overNode.getObjName()) + idx = self.overNode.getSubelementIndex() + if action_label == "make sharp": + self.smoothBezPoint(obj, idx, 'Sharp') + elif action_label == "make tangent": + self.smoothBezPoint(obj, idx, 'Tangent') + elif action_label == "make symmetric": + self.smoothBezPoint(obj, idx, 'Symmetric') + # addPoint and deletePoint menu elif action_label == "delete point": self.delPoint(self.event) elif action_label == "add point": diff --git a/src/Mod/Draft/DraftTrackers.py b/src/Mod/Draft/DraftTrackers.py index c7643a47d8..2565a92a46 100644 --- a/src/Mod/Draft/DraftTrackers.py +++ b/src/Mod/Draft/DraftTrackers.py @@ -749,6 +749,11 @@ class editTracker(Tracker): def getSubelementName(self): return str(self.selnode.subElementName.getValue()) + + def getSubelementIndex(self): + subElement = self.getSubelementName() + idx = int(subElement[8:]) + return idx def move(self,delta): self.set(self.get().add(delta))