diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index bce3cf42a0f4..b1a93a1eb207 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -674,15 +674,17 @@ def Activated(self): if (FreeCAD.activeDraftCommand != None): if (FreeCAD.activeDraftCommand.featureName == "Line"): FreeCAD.activeDraftCommand.finish(False) + def GetResources(self): return {'Pixmap' : 'Draft_Finish', 'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_FinishLine", "Finish line"), 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_FinishLine", "Finishes a line without closing it")} + def IsActive(self): - if FreeCAD.activeDraftCommand: - if FreeCAD.activeDraftCommand.featureName == "Line": - return True - return False + if FreeCADGui.ActiveDocument: + return True + else: + return False class CloseLine: @@ -699,10 +701,10 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_CloseLine", "Closes the line being drawn")} def IsActive(self): - if FreeCAD.activeDraftCommand: - if FreeCAD.activeDraftCommand.featureName == "Line": - return True - return False + if FreeCADGui.ActiveDocument: + return True + else: + return False class UndoLine: @@ -719,10 +721,10 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_UndoLine", "Undoes the last drawn segment of the line being drawn")} def IsActive(self): - if FreeCAD.activeDraftCommand: - if FreeCAD.activeDraftCommand.featureName == "Line": - return True - return False + if FreeCADGui.ActiveDocument: + return True + else: + return False class Rectangle(Creator): @@ -1942,7 +1944,7 @@ def Activated(self): self.name = translate("draft","Move") Modifier.Activated(self,self.name) if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ghost = None self.ui.selectUi() msg(translate("draft", "Select an object to move\n")) @@ -1952,7 +1954,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - self.sel = Draft.getSelection() + self.sel = FreeCADGui.Selection.getSelection() # testing for special case: only Arch groups in selection onlyarchgroups = True for o in self.sel: @@ -2064,7 +2066,7 @@ def GetResources(self): 'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_ApplyStyle", "Applies current line width and color to selected objects")} def IsActive(self): - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): return True else: return False @@ -2072,7 +2074,7 @@ def IsActive(self): def Activated(self): Modifier.Activated(self) if self.ui: - self.sel = Draft.getSelection() + self.sel = FreeCADGui.Selection.getSelection() if (len(self.sel)>0): c = ['import Draft'] for ob in self.sel: @@ -2102,7 +2104,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self,"Rotate") if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ghost = None self.arctrack = None self.ui.selectUi() @@ -2113,7 +2115,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - self.sel = Draft.getSelection() + self.sel = FreeCADGui.Selection.getSelection() self.sel = Draft.getGroupContents(self.sel) self.step = 0 self.center = None @@ -2287,21 +2289,21 @@ def Activated(self): self.running = False Modifier.Activated(self,"Offset") if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ghost = None self.linetrack = None self.arctrack = None self.ui.selectUi() msg(translate("draft", "Select an object to offset\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) - elif len(Draft.getSelection()) > 1: + elif len(FreeCADGui.Selection.getSelection()) > 1: msg(translate("draft", "Offset only works on one object at a time\n"),"warning") else: self.proceed() def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - self.sel = Draft.getSelection()[0] + self.sel = FreeCADGui.Selection.getSelection()[0] if not self.sel.isDerivedFrom("Part::Feature"): msg(translate("draft", "Cannot offset this object type\n"),"warning") self.finish() @@ -2447,7 +2449,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self,"Upgrade") if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ui.selectUi() msg(translate("draft", "Select an object to upgrade\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -2457,7 +2459,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): self.commit(translate("draft","Upgrade"), ['import Draft', 'Draft.upgrade(FreeCADGui.Selection.getSelection(),delete=True)']) @@ -2476,7 +2478,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self,"Downgrade") if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ui.selectUi() msg(translate("draft", "Select an object to upgrade\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -2486,7 +2488,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): self.commit(translate("draft","Downgrade"), ['import Draft', 'Draft.downgrade(FreeCADGui.Selection.getSelection(),delete=True)']) @@ -2512,7 +2514,7 @@ def Activated(self): self.ghost = None self.linetrack = None if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ui.selectUi() msg(translate("draft", "Select an object to trim/extend\n")) self.call = self.view.addEventCallback("SoEvent",selectObject) @@ -2521,7 +2523,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - self.obj = Draft.getSelection()[0] + self.obj = FreeCADGui.Selection.getSelection()[0] self.ui.trimUi() self.linetrack = lineTracker() @@ -2831,7 +2833,7 @@ def Activated(self): self.name = translate("draft","Scale") Modifier.Activated(self,self.name) if self.ui: - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ghost = None self.ui.selectUi() msg(translate("draft", "Select an object to scale\n")) @@ -2841,7 +2843,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - self.sel = Draft.getSelection() + self.sel = FreeCADGui.Selection.getSelection() self.sel = Draft.getGroupContents(self.sel) self.ui.pointUi(self.name) self.ui.modUi() @@ -2976,7 +2978,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self,"Drawing") - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): self.ghost = None self.ui.selectUi() msg(translate("draft", "Select an object to project\n")) @@ -2987,7 +2989,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - sel = Draft.getSelection() + sel = FreeCADGui.Selection.getSelection() if not sel: self.page = self.createDefaultPage() else: @@ -3035,13 +3037,13 @@ def GetResources(self): 'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_ToggleDisplayMode", "Swaps display mode of selected objects between wireframe and flatlines")} def IsActive(self): - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): return True else: return False def Activated(self): - for obj in Draft.getSelection(): + for obj in FreeCADGui.Selection.getSelection(): if obj.ViewObject.DisplayMode == "Flat Lines": if "Wireframe" in obj.ViewObject.listDisplayModes(): obj.ViewObject.DisplayMode = "Wireframe" @@ -3068,8 +3070,8 @@ def Activated(self): self.finish() else: Modifier.Activated(self,"Edit") - if Draft.getSelection(): - self.selection = Draft.getSelection() + if FreeCADGui.Selection.getSelection(): + self.selection = FreeCADGui.Selection.getSelection() if "Proxy" in self.selection[0].PropertiesList: if hasattr(self.selection[0].Proxy,"Type"): self.proceed() @@ -3084,7 +3086,7 @@ def proceed(self): self.view.removeEventCallback("SoEvent",self.call) self.ui.editUi() if self.doc: - self.obj = Draft.getSelection() + self.obj = FreeCADGui.Selection.getSelection() if self.obj: self.obj = self.obj[0] # store selectable state of the object @@ -3368,7 +3370,7 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_AddToGroup", "Adds the selected object(s) to an existing group")} def IsActive(self): - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): return True else: return False @@ -3387,7 +3389,7 @@ def Activated(self): def proceed(self,labelname): self.ui.sourceCmd = None if labelname == "Ungroup": - for obj in Draft.getSelection(): + for obj in FreeCADGui.Selection.getSelection(): try: Draft.ungroup(obj) except: @@ -3396,7 +3398,7 @@ def proceed(self,labelname): if labelname in self.labels: i = self.labels.index(labelname) g = FreeCAD.ActiveDocument.getObject(self.groups[i]) - for obj in Draft.getSelection(): + for obj in FreeCADGui.Selection.getSelection(): try: g.addObject(obj) except: @@ -3415,15 +3417,17 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_AddPoint", "Adds a point to an existing wire/bspline")} def IsActive(self): - self.selection = Draft.getSelection() - if (Draft.getType(self.selection[0]) in ['Wire','BSpline']): + if FreeCADGui.Selection.getSelection(): return True else: return False def Activated(self): - FreeCADGui.draftToolBar.vertUi(True) - FreeCADGui.runCommand("Draft_Edit") + selection = FreeCADGui.Selection.getSelection() + if selection: + if (Draft.getType(selection[0]) in ['Wire','BSpline']): + FreeCADGui.draftToolBar.vertUi(True) + FreeCADGui.runCommand("Draft_Edit") class DelPoint(Modifier): @@ -3438,15 +3442,17 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_DelPoint", "Removes a point from an existing wire or bspline")} def IsActive(self): - self.selection = Draft.getSelection() - if (Draft.getType(self.selection[0]) in ['Wire','BSpline']): + if FreeCADGui.Selection.getSelection(): return True else: return False def Activated(self): - FreeCADGui.draftToolBar.vertUi(False) - FreeCADGui.runCommand("Draft_Edit") + selection = FreeCADGui.Selection.getSelection() + if selection: + if (Draft.getType(selection[0]) in ['Wire','BSpline']): + FreeCADGui.draftToolBar.vertUi(False) + FreeCADGui.runCommand("Draft_Edit") class WireToBSpline(Modifier): @@ -3461,8 +3467,7 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_WireToBSpline", "Converts between Wire and BSpline")} def IsActive(self): - self.selection = Draft.getSelection() - if (Draft.getType(self.selection[0]) in ['Wire','BSpline']): + if FreeCADGui.Selection.getSelection(): return True else: return False @@ -3471,25 +3476,28 @@ def Activated(self): if self.running: self.finish() else: - Modifier.Activated(self,"Convert Curve Type") - if self.doc: - self.obj = Draft.getSelection() - if self.obj: - self.obj = self.obj[0] - self.pl = None - if "Placement" in self.obj.PropertiesList: - self.pl = self.obj.Placement - self.Points = self.obj.Points - self.closed = self.obj.Closed - n = None - if (Draft.getType(self.selection[0]) == 'Wire'): - n = Draft.makeBSpline(self.Points, self.closed, self.pl) - elif (Draft.getType(self.selection[0]) == 'BSpline'): - n = Draft.makeWire(self.Points, self.closed, self.pl) - if n: - Draft.formatObject(n,self.selection[0]) - else: - self.finish() + selection = FreeCADGui.Selection.getSelection() + if selection: + if (Draft.getType(selection[0]) in ['Wire','BSpline']): + Modifier.Activated(self,"Convert Curve Type") + if self.doc: + self.obj = FreeCADGui.Selection.getSelection() + if self.obj: + self.obj = self.obj[0] + self.pl = None + if "Placement" in self.obj.PropertiesList: + self.pl = self.obj.Placement + self.Points = self.obj.Points + self.closed = self.obj.Closed + n = None + if (Draft.getType(self.selection[0]) == 'Wire'): + n = Draft.makeBSpline(self.Points, self.closed, self.pl) + elif (Draft.getType(self.selection[0]) == 'BSpline'): + n = Draft.makeWire(self.Points, self.closed, self.pl) + if n: + Draft.formatObject(n,self.selection[0]) + else: + self.finish() class SelectGroup(): @@ -3501,14 +3509,14 @@ def GetResources(self): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_SelectGroup", "Selects all objects with the same parents as this group")} def IsActive(self): - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): return True else: return False def Activated(self): sellist = [] - sel = Draft.getSelection() + sel = FreeCADGui.Selection.getSelection() if len(sel) == 1: if sel[0].isDerivedFrom("App::DocumentObjectGroup"): cts = Draft.getGroupContents(FreeCADGui.Selection.getSelection()) @@ -3534,7 +3542,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self) - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): if self.ui: self.ui.selectUi() msg(translate("draft", "Select an object to project\n")) @@ -3573,7 +3581,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self) - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): if self.ui: self.ui.selectUi() msg(translate("draft", "Select an object to convert\n")) @@ -3584,7 +3592,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - sel = Draft.getSelection() + sel = FreeCADGui.Selection.getSelection() allSketches = True allDraft = True for obj in sel: @@ -3629,7 +3637,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self) - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): if self.ui: self.ui.selectUi() msg(translate("draft", "Select an object to array\n")) @@ -3640,8 +3648,8 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - if Draft.getSelection(): - obj = Draft.getSelection()[0] + if FreeCADGui.Selection.getSelection(): + obj = FreeCADGui.Selection.getSelection()[0] FreeCAD.ActiveDocument.openTransaction("Array") Draft.makeArray(obj,Vector(1,0,0),Vector(0,1,0),2,2) FreeCAD.ActiveDocument.commitTransaction() @@ -3657,7 +3665,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self) - if not Draft.getSelectionEx(): + if not FreeCADGui.Selection.getSelectionEx(): if self.ui: self.ui.selectUi() msg(translate("draft", "Please select base and path objects\n")) @@ -3669,7 +3677,7 @@ def Activated(self): def proceed(self): if self.call: self.view.removeEventCallback("SoEvent",self.call) - sel = Draft.getSelectionEx() + sel = FreeCADGui.Selection.getSelectionEx() if sel: base = sel[0].Object path = sel[1].Object @@ -3760,7 +3768,7 @@ def GetResources(self): def Activated(self): Modifier.Activated(self) - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): if self.ui: self.ui.selectUi() msg(translate("draft", "Select an object to clone\n")) @@ -3829,7 +3837,7 @@ def GetResources(self): def Activated(self): Creator.Activated(self) - if not Draft.getSelection(): + if not FreeCADGui.Selection.getSelection(): if self.ui: self.ui.selectUi() msg(translate("draft", "Select face(s) on existing object(s)\n"))