summaryrefslogtreecommitdiffstats
path: root/src/layer-manager.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-03-14 16:37:50 +0000
committerJabiertxof <jtx@jtx.marker.es>2016-03-14 16:37:50 +0000
commitb8d22beef5345210ad27cdc2685083aeae6f8f3b (patch)
treed69b8bfd19d3627a8425a1b265c2abf229b05354 /src/layer-manager.cpp
parentfixes for update to trunk (diff)
parent"Relative to" option for node alignment. (diff)
downloadinkscape-b8d22beef5345210ad27cdc2685083aeae6f8f3b.tar.gz
inkscape-b8d22beef5345210ad27cdc2685083aeae6f8f3b.zip
update to trunk
(bzr r13708.1.39)
Diffstat (limited to 'src/layer-manager.cpp')
-rw-r--r--src/layer-manager.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/layer-manager.cpp b/src/layer-manager.cpp
index 3bbc831d5..c0fe95dd7 100644
--- a/src/layer-manager.cpp
+++ b/src/layer-manager.cpp
@@ -191,14 +191,12 @@ Glib::ustring LayerManager::getNextLayerName( SPObject* obj, gchar const *label)
}
std::set<Glib::ustring> currentNames;
- GSList const *layers=_document->getResourceList("layer");
+ std::set<SPObject *> layers = _document->getResourceList("layer");
SPObject *root=_desktop->currentRoot();
if ( root ) {
- for ( GSList const *iter=layers ; iter ; iter = iter->next ) {
- SPObject *layer=static_cast<SPObject *>(iter->data);
- if ( layer != obj ) {
- currentNames.insert( layer->label() ? Glib::ustring(layer->label()) : Glib::ustring() );
- }
+ for (std::set<SPObject *>::const_iterator iter = layers.begin(); iter != layers.end(); ++iter) {
+ if (*iter != obj)
+ currentNames.insert( (*iter)->label() ? Glib::ustring((*iter)->label()) : Glib::ustring() );
}
}
@@ -262,15 +260,16 @@ void LayerManager::_rebuild() {
if (!_document) // http://sourceforge.net/mailarchive/forum.php?thread_name=5747bce9a7ed077c1b4fc9f0f4f8a5e0%40localhost&forum_name=inkscape-devel
return;
- GSList const *layers = _document->getResourceList("layer");
+ std::set<SPObject *> layers = _document->getResourceList("layer");
+
SPObject *root=_desktop->currentRoot();
if ( root ) {
_addOne(root);
std::set<SPGroup*> layersToAdd;
- for ( GSList const *iter = layers; iter; iter = iter->next ) {
- SPObject *layer = static_cast<SPObject *>(iter->data);
+ for ( std::set<SPObject *>::const_iterator iter = layers.begin(); iter != layers.end(); ++iter ) {
+ SPObject *layer = *iter;
// Debug::EventTracker<DebugLayerNote> tracker(Util::format("Examining %s", layer->label()));
bool needsAdd = false;
std::set<SPGroup*> additional;
@@ -282,7 +281,7 @@ void LayerManager::_rebuild() {
SPGroup* group = SP_GROUP(curr);
if ( group->layerMode() == SPGroup::LAYER ) {
// If we have a layer-group as the one or a parent, ensure it is listed as a valid layer.
- needsAdd &= ( g_slist_find(const_cast<GSList *>(layers), curr) != NULL );
+ needsAdd &= ( layers.find(curr) != layers.end() );
// XML Tree being used here directly while it shouldn't be...
if ( (!(group->getRepr())) || (!(group->getRepr()->parent())) ) {
needsAdd = false;