summaryrefslogtreecommitdiffstats
path: root/src/document.cpp
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc@jeanmougin.fr>2016-05-21 09:58:25 +0000
committerMarc Jeanmougin <marcjeanmougin@free.fr>2016-05-21 09:58:25 +0000
commit9e9ce2c30be9d6af144ff07f69c15c508d84e776 (patch)
tree477b56572c6dbde8fbcd1480c862d3a66b7f232a /src/document.cpp
parentAdjust some thresholds for finding intersections in elliptical arcs (diff)
downloadinkscape-9e9ce2c30be9d6af144ff07f69c15c508d84e776.tar.gz
inkscape-9e9ce2c30be9d6af144ff07f69c15c508d84e776.zip
Fix regression: restore order in resources (e.g. pattern list)
(bzr r14907)
Diffstat (limited to '')
-rw-r--r--src/document.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/document.cpp b/src/document.cpp
index 7086fc0be..2500a5cee 100644
--- a/src/document.cpp
+++ b/src/document.cpp
@@ -1541,9 +1541,9 @@ bool SPDocument::addResource(gchar const *key, SPObject *object)
bool result = false;
if ( !object->cloned ) {
- std::set<SPObject *> rlist = priv->resources[key];
- g_return_val_if_fail(rlist.find(object) == rlist.end(), false);
- priv->resources[key].insert(object);
+ std::vector<SPObject *> rlist = priv->resources[key];
+ g_return_val_if_fail(std::find(rlist.begin(),rlist.end(),object) == rlist.end(), false);
+ priv->resources[key].insert(priv->resources[key].begin(),object);
GQuark q = g_quark_from_string(key);
@@ -1572,10 +1572,11 @@ bool SPDocument::removeResource(gchar const *key, SPObject *object)
bool result = false;
if ( !object->cloned ) {
- std::set<SPObject *> rlist = priv->resources[key];
+ std::vector<SPObject *> rlist = priv->resources[key];
g_return_val_if_fail(!rlist.empty(), false);
- g_return_val_if_fail(rlist.find(object) != rlist.end(), false);
- priv->resources[key].erase(object);
+ std::vector<SPObject*>::iterator it = std::find(priv->resources[key].begin(),priv->resources[key].end(),object);
+ g_return_val_if_fail(it != rlist.end(), false);
+ priv->resources[key].erase(it);
GQuark q = g_quark_from_string(key);
priv->resources_changed_signals[q].emit();
@@ -1586,9 +1587,9 @@ bool SPDocument::removeResource(gchar const *key, SPObject *object)
return result;
}
-std::set<SPObject *> const SPDocument::getResourceList(gchar const *key) const
+std::vector<SPObject *> const SPDocument::getResourceList(gchar const *key) const
{
- std::set<SPObject *> emptyset;
+ std::vector<SPObject *> emptyset;
g_return_val_if_fail(key != NULL, emptyset);
g_return_val_if_fail(*key != '\0', emptyset);