summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/selectordialog.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-04-26 21:53:51 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-04-26 21:53:51 +0000
commit9417fc48ed35297022c98fba3787d2ac7a50a90d (patch)
tree30c5fc40a1c50cabcafc6a49a582bac64661f694 /src/ui/dialog/selectordialog.cpp
parentFix coding style (diff)
downloadinkscape-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.cpp16
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");