ViewProviderDocumentObject: forbid recursive call of updateView()

This commit is contained in:
Zheng, Lei
2018-08-08 08:27:49 +08:00
committed by wmayer
parent c961f8f6b5
commit 436d04fe3e
2 changed files with 8 additions and 1 deletions

View File

@@ -72,7 +72,8 @@ class ObjectItem;
enum ViewStatus {
UpdateData = 0,
Detach = 1,
isRestoring = 2
isRestoring = 2,
UpdatingView = 3,
};

View File

@@ -33,6 +33,7 @@
#endif
/// Here the FreeCAD includes sorted by Base,App,Gui......
#include <Base/Tools.h>
#include <Base/Console.h>
#include <App/Material.h>
#include <App/DocumentObjectGroup.h>
@@ -156,6 +157,11 @@ void ViewProviderDocumentObject::show(void)
void ViewProviderDocumentObject::updateView()
{
if(testStatus(ViewStatus::UpdatingView))
return;
Base::ObjectStatusLocker<ViewStatus,ViewProviderDocumentObject> lock(ViewStatus::UpdatingView,this);
std::map<std::string, App::Property*> Map;
pcObject->getPropertyMap(Map);