fix exception raised on project load for invalid enums

This commit is contained in:
wmayer
2018-08-07 15:23:56 +02:00
parent 7ad0c7f7f2
commit 9faa7fc57f
3 changed files with 9 additions and 1 deletions

View File

@@ -377,6 +377,11 @@ const char ** PropertyEnumeration::getEnums(void) const
return _enum.getEnums();
}
bool PropertyEnumeration::isValid(void) const
{
return _enum.isValid();
}
void PropertyEnumeration::Save(Base::Writer &writer) const
{
writer.Stream() << writer.ind() << "<Integer value=\"" << _enum.getInt() <<"\"";

View File

@@ -185,6 +185,9 @@ public:
/// get the pointer to the enum list
const char ** getEnums(void) const;
/// Returns true if the instance is in a usable state
bool isValid(void) const;
//@}
const char* getEditorName(void) const { return _editorTypeName.c_str(); }

View File

@@ -278,7 +278,7 @@ SoNode* ViewProviderDocumentObject::findFrontRootOfType(const SoType& type) cons
void ViewProviderDocumentObject::setActiveMode()
{
if (DisplayMode.getEnums()) {
if (DisplayMode.isValid()) {
const char* mode = DisplayMode.getValueAsString();
if (mode)
setDisplayMode(mode);