index 5be24993a9929cc273183c86eed0184c1cca0ec5..bd95fbc719b9c6c9ff2857c69f11a24000f6acdf 100644 (file)
#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"
namespace Dialogs {
LayerPropertiesDialog::LayerPropertiesDialog()
-: _strategy(NULL), _desktop(NULL), _layer(NULL)
+: _strategy(NULL), _desktop(NULL), _layer(NULL), _position_visible(false)
{
- GtkWidget *dlg = GTK_WIDGET(gobj());
- g_assert(dlg);
-
Gtk::VBox *mainVBox = get_vbox();
_layout_table.set_spacings(4);
g_assert(_strategy != NULL);
_strategy->perform(*this);
- sp_document_done(sp_desktop_document(SP_ACTIVE_DESKTOP));
+ sp_document_done(sp_desktop_document(SP_ACTIVE_DESKTOP), SP_VERB_NONE,
+ _("Add layer"));
_close();
}
if ( NULL == _layer || _desktop->currentRoot() == _layer ) {
// no layers yet, so option above/below/sublayer is useless
return;
- }
-
+ }
+
+ _position_visible = true;
_dropdown_list = Gtk::ListStore::create(_dropdown_columns);
_layer_position_combo.set_model(_dropdown_list);
_layer_position_combo.pack_start(_label_renderer);
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));
+ sp_document_done(sp_desktop_document(desktop), SP_VERB_NONE,
+ _("Rename layer"));
// TRANSLATORS: This means "The layer has been renamed"
desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Renamed layer"));
}
void LayerPropertiesDialog::Create::perform(LayerPropertiesDialog &dialog) {
SPDesktop *desktop=dialog._desktop;
- Gtk::ListStore::iterator activeRow(dialog._layer_position_combo.get_active());
- LayerRelativePosition position = activeRow->get_value(dialog._dropdown_columns.position);
+ LayerRelativePosition position = LPOS_ABOVE;
+
+ if (dialog._position_visible) {
+ Gtk::ListStore::iterator activeRow(dialog._layer_position_combo.get_active());
+ position = activeRow->get_value(dialog._dropdown_columns.position);
+ }
SPObject *new_layer=Inkscape::create_layer(desktop->currentRoot(), dialog._layer, position);
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);