From 0e81583e3f44761e2a26b6bbd9106c79e730157f Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Sun, 20 Aug 2017 17:20:55 -0700 Subject: [PATCH] Set object's Restore flag while restoring the Path property. --- src/Mod/Path/App/PropertyPath.cpp | 16 ++++++++++++++++ src/Mod/Path/PathScripts/PathToolController.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) 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: