fix exception raised on project load for invalid enums
This commit is contained in:
@@ -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() <<"\"";
|
||||
|
||||
@@ -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(); }
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user