void ObjController::removeSelectedObjects(ObjectsHolder& holder) { SelectedItemSet <SelectableObject*> temp; temp = sObjects; if (temp.getNumSelected() > 0) { sObjects.deselectAll(); sObjects.changed(true); // first remove all selected links for (int i = temp.getNumSelected(); --i >= 0;) { if(LinkComponent* lc = dynamic_cast<LinkComponent*>(temp.getSelectedItem(i))) { temp.deselect(lc); removeLink(lc, true, &holder); } } // then objects and remaining links connected to the objects for (int i = temp.getNumSelected(); --i >= 0;) { if(AudioOutConnector* aoc = dynamic_cast<AudioOutConnector*>(temp.getSelectedItem(i))) { temp.deselect(aoc); removeAudioConnection(aoc, true, &holder); continue; } } for (int i = temp.getNumSelected(); --i >= 0;) { if(ObjectComponent* oc = dynamic_cast<ObjectComponent*>(temp.getSelectedItem(i))) { removeObject(oc, true, &holder); } else if(CommentComponent* cc = dynamic_cast<CommentComponent*>(temp.getSelectedItem(i))) { removeComment(cc, true, &holder); } // LinkComponent* lc = ObjectsHelper::getLink(temp.getSelectedItem(i)); // if(lc != nullptr) // { // removeLink(lc, true, holder); // continue; // } } } }
void ModulatorSamplerSound::selectSoundsBasedOnRegex(const String ®exWildcard, ModulatorSampler *sampler, SelectedItemSet<ModulatorSamplerSound::Ptr> &set) { bool subtractMode = false; bool addMode = false; String wildcard = regexWildcard; if (wildcard.startsWith("sub:")) { subtractMode = true; wildcard = wildcard.fromFirstOccurrenceOf("sub:", false, true); } else if (wildcard.startsWith("add:")) { addMode = true; wildcard = wildcard.fromFirstOccurrenceOf("add:", false, true); } else { set.deselectAll(); } try { std::regex reg(wildcard.toStdString()); ModulatorSampler::SoundIterator iter(sampler, false); while (auto sound = iter.getNextSound()) { const String name = sound->getPropertyAsString(Property::FileName); if (std::regex_search(name.toStdString(), reg)) { if (subtractMode) { set.deselect(sound.get()); } else { set.addToSelection(sound.get()); } } } } catch (std::regex_error e) { debugError(sampler, e.what()); } }