From 9417fc48ed35297022c98fba3787d2ac7a50a90d Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Fri, 26 Apr 2019 23:53:51 +0200 Subject: Allow comma separated (multiple) unhsndled selectors --- src/ui/dialog/selectordialog.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/selectordialog.cpp b/src/ui/dialog/selectordialog.cpp index 598f15ab0..a57deec4a 100644 --- a/src/ui/dialog/selectordialog.cpp +++ b/src/ui/dialog/selectordialog.cpp @@ -789,8 +789,20 @@ Glib::ustring SelectorDialog::_getIdList(std::vector sel) */ std::vector SelectorDialog::_getObjVec(Glib::ustring selector) { - std::vector objVec = SP_ACTIVE_DOCUMENT->getObjectsBySelector( selector ); - + std::vector objVec; + std::vector tokensplus = Glib::Regex::split_simple("[,]+", selector); + bool unhandled = false; + for (auto tok : tokensplus) { + REMOVE_SPACES(tok); + if (tok.find(" ") != -1 || tok.erase(0, 1).find(".") != -1) { + unhandled = true; + std::vector objVecSplited = SP_ACTIVE_DOCUMENT->getObjectsBySelector(tok); + objVec.insert(objVec.end(), objVecSplited.begin(), objVecSplited.end()); + } + } + if (!unhandled) { + objVec = SP_ACTIVE_DOCUMENT->getObjectsBySelector( selector ); + } g_debug("SelectorDialog::_getObjVec: | %s |", selector.c_str()); for (auto& obj: objVec) { g_debug(" %s", obj->getId() ? obj->getId() : "null"); -- cgit v1.2.3