From afd54a6c6a696c48d58b25a7a5b00fc9a9d90d26 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Sat, 27 Apr 2019 01:04:52 +0200 Subject: add unhandled multiselector --- src/ui/dialog/selectordialog.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/selectordialog.cpp b/src/ui/dialog/selectordialog.cpp index 2982ead3a..7d0e0f29d 100644 --- a/src/ui/dialog/selectordialog.cpp +++ b/src/ui/dialog/selectordialog.cpp @@ -812,9 +812,22 @@ Glib::ustring SelectorDialog::_getIdList(std::vector sel) */ std::vector SelectorDialog::_getObjVec(Glib::ustring selector) { - std::vector objVec = SP_ACTIVE_DOCUMENT->getObjectsBySelector( selector ); - g_debug("SelectorDialog::_getObjVec: | %s |", selector.c_str()); + 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); + } + for (auto& obj: objVec) { g_debug(" %s", obj->getId() ? obj->getId() : "null"); } -- cgit v1.2.3