diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-03-14 16:37:50 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2016-03-14 16:37:50 +0000 |
| commit | b8d22beef5345210ad27cdc2685083aeae6f8f3b (patch) | |
| tree | d69b8bfd19d3627a8425a1b265c2abf229b05354 /src/layer-manager.cpp | |
| parent | fixes for update to trunk (diff) | |
| parent | "Relative to" option for node alignment. (diff) | |
| download | inkscape-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.cpp | 19 |
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; |
