Gui: ActiveObject: remove upon delete

Squashed with:
Gui: MDIView: connection bug.
Gui: MDIView: forgot disconnect.
This commit is contained in:
blobfish
2015-05-03 22:01:35 -04:00
committed by Stefan Tröger
parent c161ffaf44
commit ae3916229d
4 changed files with 34 additions and 3 deletions

View File

@@ -54,3 +54,18 @@ bool Gui::ActiveObjectList::hasObject(const char*name)const
{
return _ObjectMap.find(name) != _ObjectMap.end();
}
void ActiveObjectList::objectDeleted(const ViewProviderDocumentObject& viewProviderIn)
{
App::DocumentObject* object = viewProviderIn.getObject();
//maybe boost::bimap or boost::multi_index
std::map<std::string, App::DocumentObject*>::iterator it;
for (it = _ObjectMap.begin(); it != _ObjectMap.end(); ++it)
{
if (it->second == object)
{
_ObjectMap.erase(it);
return;
}
}
}