From 265d3bfecbec14917ebb262ce5ea58bbaf1d48a2 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sat, 27 May 2006 04:26:51 +0000 Subject: Prevent layer name duplication (bzr r1024) --- src/dialogs/layer-properties.cpp | 7 ++++--- src/dialogs/layers-panel.cpp | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src/dialogs') diff --git a/src/dialogs/layer-properties.cpp b/src/dialogs/layer-properties.cpp index 6a88597be..e407c7082 100644 --- a/src/dialogs/layer-properties.cpp +++ b/src/dialogs/layer-properties.cpp @@ -22,6 +22,7 @@ #include "inkscape.h" #include "desktop.h" #include "document.h" +#include "layer-manager.h" #include "message-stack.h" #include "desktop-handles.h" #include "sp-object.h" @@ -186,8 +187,8 @@ void LayerPropertiesDialog::Rename::setup(LayerPropertiesDialog &dialog) { void LayerPropertiesDialog::Rename::perform(LayerPropertiesDialog &dialog) { SPDesktop *desktop=dialog._desktop; Glib::ustring name(dialog._layer_name_entry.get_text()); - desktop->currentLayer()->setLabel( - ( name.empty() ? NULL : (gchar *)name.c_str() ) + desktop->layer_manager->renameLayer( desktop->currentLayer(), + ( name.empty() ? NULL : (gchar *)name.c_str() ) ); sp_document_done(sp_desktop_document(desktop)); // TRANSLATORS: This means "The layer has been renamed" @@ -215,7 +216,7 @@ void LayerPropertiesDialog::Create::perform(LayerPropertiesDialog &dialog) { Glib::ustring name(dialog._layer_name_entry.get_text()); if (!name.empty()) { - new_layer->setLabel((gchar *)name.c_str()); + desktop->layer_manager->renameLayer( new_layer, (gchar *)name.c_str() ); } sp_desktop_selection(desktop)->clear(); desktop->setCurrentLayer(new_layer); diff --git a/src/dialogs/layers-panel.cpp b/src/dialogs/layers-panel.cpp index a7ad817cf..31e9823c6 100644 --- a/src/dialogs/layers-panel.cpp +++ b/src/dialogs/layers-panel.cpp @@ -576,8 +576,8 @@ void LayersPanel::_handleRowChange( Gtk::TreeModel::Path const& path, Gtk::TreeM gchar const* oldLabel = obj->label(); Glib::ustring tmp = row[_model->_colLabel]; if ( oldLabel && oldLabel[0] && !tmp.empty() && (tmp != oldLabel) ) { - // TODO fix name collision bug - obj->setLabel(tmp.c_str()); + _mgr->renameLayer( obj, tmp.c_str() ); + row[_model->_colLabel] = obj->label(); } } } -- cgit v1.2.3