| 106 | } |
| 107 | |
| 108 | void AnnotationGroup::removeMember(std::shared_ptr<AnnotationBase> const member) { |
| 109 | if (member->getGroup().get() == this) { |
| 110 | member->setGroup(std::shared_ptr<AnnotationGroup>()); |
| 111 | } |
| 112 | for (std::vector<std::weak_ptr<AnnotationBase> >::iterator it = _groupMembers.begin(); it != _groupMembers.end(); ++it) { |
| 113 | if (it->lock() == member) { |
| 114 | it = _groupMembers.erase(it); |
| 115 | break; |
| 116 | } |
| 117 | } |
| 118 | _modified = true; |
| 119 | } |