diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-04-26 21:53:51 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-04-26 21:53:51 +0000 |
| commit | 9417fc48ed35297022c98fba3787d2ac7a50a90d (patch) | |
| tree | 30c5fc40a1c50cabcafc6a49a582bac64661f694 /src/ui/dialog/selectordialog.cpp | |
| parent | Fix coding style (diff) | |
| download | inkscape-9417fc48ed35297022c98fba3787d2ac7a50a90d.tar.gz inkscape-9417fc48ed35297022c98fba3787d2ac7a50a90d.zip | |
Allow comma separated (multiple) unhsndled selectors
Diffstat (limited to 'src/ui/dialog/selectordialog.cpp')
| -rw-r--r-- | src/ui/dialog/selectordialog.cpp | 16 |
1 files 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<SPObject*> sel) */ std::vector<SPObject *> SelectorDialog::_getObjVec(Glib::ustring selector) { - std::vector<SPObject *> objVec = SP_ACTIVE_DOCUMENT->getObjectsBySelector( selector ); - + std::vector<SPObject *> objVec; + std::vector<Glib::ustring> 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<SPObject *> 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"); |
