summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-04-26 23:04:52 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-06-02 09:50:16 +0000
commitafd54a6c6a696c48d58b25a7a5b00fc9a9d90d26 (patch)
treebf7422a209709a80ce8dca06f62ff1af9120b9fe /src
parentMerge from master (diff)
downloadinkscape-afd54a6c6a696c48d58b25a7a5b00fc9a9d90d26.tar.gz
inkscape-afd54a6c6a696c48d58b25a7a5b00fc9a9d90d26.zip
add unhandled multiselector
Diffstat (limited to 'src')
-rw-r--r--src/ui/dialog/selectordialog.cpp17
1 files 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<SPObject*> sel)
*/
std::vector<SPObject *> SelectorDialog::_getObjVec(Glib::ustring selector) {
- std::vector<SPObject *> objVec = SP_ACTIVE_DOCUMENT->getObjectsBySelector( selector );
-
g_debug("SelectorDialog::_getObjVec: | %s |", selector.c_str());
+ 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);
+ }
+
for (auto& obj: objVec) {
g_debug(" %s", obj->getId() ? obj->getId() : "null");
}