Added support for cancelling an edit session and restore the original properties.

This commit is contained in:
ml 2016-10-12 22:50:44 -07:00 committed by Markus Lampert
parent f6fb8ede40
commit 144b385fe8

View File

@ -525,10 +525,26 @@ class TaskPanel:
DataIds = QtCore.Qt.ItemDataRole.UserRole
DataKey = QtCore.Qt.ItemDataRole.UserRole + 1
PropertiesToRestore = ['Shape', 'Side', 'Length', 'Custom', 'BoneBlacklist']
def __init__(self, obj):
self.obj = obj
self.form = FreeCADGui.PySideUic.loadUi(":/panels/DogboneEdit.ui")
self.updating = False
self.props = {}
for prop in self.PropertiesToRestore:
self.props[prop] = obj.getPropertyByName(prop)
def reject(self):
# haven't found a way to use the list :(
self.obj.Shape = self.props['Shape']
self.obj.Side = self.props['Side']
self.obj.Length = self.props['Length']
self.obj.Custom = self.props['Custom']
self.obj.BoneBlacklist = self.props['BoneBlacklist']
self.obj.Proxy.execute(self.obj)
FreeCADGui.Control.closeDialog()
FreeCAD.ActiveDocument.recompute()
FreeCADGui.Selection.removeObserver(self.s)
def accept(self):
self.getFields()
@ -538,11 +554,6 @@ class TaskPanel:
FreeCADGui.Selection.removeObserver(self.s)
FreeCAD.ActiveDocument.recompute()
def reject(self):
FreeCADGui.Control.closeDialog()
FreeCAD.ActiveDocument.recompute()
FreeCADGui.Selection.removeObserver(self.s)
def getFields(self):
self.obj.Shape = str(self.form.shape.currentText())
self.obj.Side = str(self.form.side.currentText())
@ -610,8 +621,8 @@ class TaskPanel:
# install the function mode resident
FreeCADGui.Selection.addObserver(self.s)
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Ok)
# def getStandardButtons(self):
# return int(QtGui.QDialogButtonBox.OkCancel)
def setupUi(self):
self.setFields()