diff --git a/src/Mod/Path/PathScripts/PathOpGui.py b/src/Mod/Path/PathScripts/PathOpGui.py index 17c672792d..a7aaff2a37 100644 --- a/src/Mod/Path/PathScripts/PathOpGui.py +++ b/src/Mod/Path/PathScripts/PathOpGui.py @@ -72,6 +72,7 @@ class ViewProvider(object): def attach(self, vobj): PathLog.track() + self.vobj = vobj self.Object = vobj.Object self.panel = None return @@ -84,16 +85,21 @@ class ViewProvider(object): PathLog.track() return hasattr(self, 'deleteOnReject') and self.deleteOnReject - def setEdit(self, vobj, mode=0): + def setEdit(self, vobj=None, mode=0): '''setEdit(vobj, mode=0) ... initiate editing of receivers model.''' PathLog.track() - page = self.getTaskPanelOpPage(vobj.Object) - page.setTitle(self.OpName) - page.setIcon(self.OpIcon) - selection = self.getSelectionFactory() - self.setupTaskPanel(TaskPanel(vobj.Object, self.deleteObjectsOnReject(), page, selection)) - self.deleteOnReject = False - return True + if 0 == mode: + if vobj is None: + vobj = self.vobj + page = self.getTaskPanelOpPage(vobj.Object) + page.setTitle(self.OpName) + page.setIcon(self.OpIcon) + selection = self.getSelectionFactory() + self.setupTaskPanel(TaskPanel(vobj.Object, self.deleteObjectsOnReject(), page, selection)) + self.deleteOnReject = False + return True + # no other editing possible + return False def setupTaskPanel(self, panel): '''setupTaskPanel(panel) ... internal function to start the editor.''' @@ -162,6 +168,13 @@ class ViewProvider(object): PathUtil.clearExpressionEngine(vobj.Object) return True + def setupContextMenu(self, vobj, menu): + PathLog.track() + for action in menu.actions(): + menu.removeAction(action) + action = QtGui.QAction(translate('Path', 'Edit'), menu) + action.triggered.connect(self.setEdit) + menu.addAction(action) class TaskPanelPage(object): '''Base class for all task panel pages.'''