support of loading old projects with shape binder or PartDesign boolean

This commit is contained in:
wmayer
2017-09-09 22:47:28 +02:00
parent f92ea66903
commit dcd7da480a
5 changed files with 23 additions and 2 deletions

View File

@@ -149,4 +149,13 @@ void Boolean::onChanged(const App::Property* prop) {
PartDesign::Feature::onChanged(prop);
}
void Boolean::handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName)
{
// The App::PropertyLinkList property was Bodies in the past
Base::Type type = Base::Type::fromName(TypeName);
if (Group.getClassTypeId() == type && strcmp(PropName, "Bodies") == 0) {
Group.Restore(reader);
}
}
}

View File

@@ -58,6 +58,9 @@ public:
virtual void onChanged(const App::Property* prop);
//@}
protected:
void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName);
private:
static const char* TypeEnums[];

View File

@@ -149,3 +149,11 @@ Part::TopoShape ShapeBinder::buildShapeFromReferences( Part::Feature* obj, std::
}
return base;
}
void ShapeBinder::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
{
// The type of Support was App::PropertyLinkSubList in the past
if (prop == &Support && strcmp(TypeName, "App::PropertyLinkSubList") == 0) {
Support.Restore(reader);
}
}

View File

@@ -57,6 +57,7 @@ public:
}
protected:
virtual void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
virtual short int mustExecute(void) const;
virtual App::DocumentObjectExecReturn* execute(void);
};