| 1365 | } |
| 1366 | |
| 1367 | bool Workspace_Impl::removeObject(const Handle& handle) { |
| 1368 | |
| 1369 | OptionalSavedWorkspaceObject objectData = savedWorkspaceObject(handle); |
| 1370 | if (!objectData) { |
| 1371 | return true; |
| 1372 | } // trivially satisfied |
| 1373 | |
| 1374 | this->removeWorkspaceObject.nano_emit(WorkspaceObject(objectData->objectImplPtr), objectData->objectImplPtr->iddObject().type(), |
| 1375 | objectData->handle); |
| 1376 | this->removeWorkspaceObjectPtr.nano_emit(objectData->objectImplPtr, objectData->objectImplPtr->iddObject().type(), objectData->handle); |
| 1377 | |
| 1378 | // actual work of removing from maps--is always successful |
| 1379 | WorkspaceObjectVector sources = nominallyRemoveObject(handle); |
| 1380 | |
| 1381 | // can only be invalid if removal results in null and required |
| 1382 | if ((m_strictnessLevel < StrictnessLevel::Final) || isValid()) { |
| 1383 | std::vector<Handle> removedHandles(1, handle); |
| 1384 | registerRemovalOfObject(objectData->objectImplPtr, sources, removedHandles); |
| 1385 | this->onChange.nano_emit(); |
| 1386 | return true; |
| 1387 | } else { |
| 1388 | restoreObject(*objectData); |
| 1389 | return false; |
| 1390 | } |
| 1391 | } |
| 1392 | |
| 1393 | bool Workspace_Impl::removeObjects(const std::vector<Handle>& handles) { |
| 1394 |
no test coverage detected