diff --git a/src/Mod/Path/App/PropertyPath.cpp b/src/Mod/Path/App/PropertyPath.cpp index 003b2b3da8..eedd5ef7cd 100644 --- a/src/Mod/Path/App/PropertyPath.cpp +++ b/src/Mod/Path/App/PropertyPath.cpp @@ -28,6 +28,8 @@ #endif +#include +#include #include #include #include @@ -124,9 +126,23 @@ void PropertyPath::SaveDocFile (Base::Writer &) const void PropertyPath::RestoreDocFile(Base::Reader &reader) { + App::PropertyContainer *container = getContainer(); + App::DocumentObject *obj = 0; + if (container->isDerivedFrom(App::DocumentObject::getClassTypeId())) { + obj = static_cast(container); + } + + if (obj) { + obj->setStatus(App::ObjectStatus::Restore, true); + } + aboutToSetValue(); _Path.RestoreDocFile(reader); hasSetValue(); + + if (obj) { + obj->setStatus(App::ObjectStatus::Restore, false); + } } diff --git a/src/Mod/Path/PathScripts/PathToolController.py b/src/Mod/Path/PathScripts/PathToolController.py index d5f4634933..3540bd545f 100644 --- a/src/Mod/Path/PathScripts/PathToolController.py +++ b/src/Mod/Path/PathScripts/PathToolController.py @@ -134,8 +134,8 @@ class ToolController: def onChanged(self, obj, prop): PathLog.track('prop: {} state: {}'.format(prop, obj.State)) - - if 'Restore' not in obj.State: + if 'Path' == prop and 'Restore' not in obj.State: + PathLog.debug("--- dirty deeds") job = PathScripts.PathUtils.findParentJob(obj) if job is not None: for g in job.Group: