void EC_DynamicComponent::RemoveAllAttributes(AttributeChange::Type change) { for(unsigned i = attributes.size() - 1; i < attributes.size(); --i) { // Trigger scenemanager signal Scene* scene = ParentScene(); if (scene) scene->EmitAttributeRemoved(this, attributes[i], change); QString name(attributes[i]->Name()); // Trigger internal signal(s) emit AttributeAboutToBeRemoved(attributes[i]); SAFE_DELETE(attributes[i]); attributes.erase(attributes.begin() + i); } }
void EC_DynamicComponent::RemoveAllAttributes(AttributeChange::Type change) { for(unsigned i = attributes_.size() - 1; i < attributes_.size(); --i) { // Trigger scenemanager signal Scene::SceneManager* scene = GetParentScene(); if (scene) scene->EmitAttributeRemoved(this, attributes_[i], change); QString name = QString::fromStdString(attributes_[i]->GetNameString()); // Trigger internal signal(s) emit AttributeAboutToBeRemoved(attributes_[i]); SAFE_DELETE(attributes_[i]); attributes_.erase(attributes_.begin() + i); emit AttributeRemoved(name); } }
void EC_DynamicComponent::RemoveAttribute(const QString &name, AttributeChange::Type change) { for(AttributeVector::iterator iter = attributes.begin(); iter != attributes.end(); iter++) { if((*iter)->Name() == name) { // Trigger scenemanager signal Scene* scene = ParentScene(); if (scene) scene->EmitAttributeRemoved(this, *iter, change); // Trigger internal signal(s) emit AttributeAboutToBeRemoved(*iter); SAFE_DELETE(*iter); attributes.erase(iter); break; } } }