diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-04-26 23:04:52 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-06-02 09:50:16 +0000 |
| commit | afd54a6c6a696c48d58b25a7a5b00fc9a9d90d26 (patch) | |
| tree | bf7422a209709a80ce8dca06f62ff1af9120b9fe /src | |
| parent | Merge from master (diff) | |
| download | inkscape-afd54a6c6a696c48d58b25a7a5b00fc9a9d90d26.tar.gz inkscape-afd54a6c6a696c48d58b25a7a5b00fc9a9d90d26.zip | |
add unhandled multiselector
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/selectordialog.cpp | 17 |
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"); } |
