index 34433e9b77005b69ad7c9ce8c4750f105fd552f5..66f4aebf4e77fd822908a38f6e0e8e3dd37ec5dd 100644 (file)
#include "desktop.h"
#include "document.h"
#include "dialogs/layer-properties.h"
+#include "layer-manager.h"
#include "xml/node-event-vector.h"
+#include "verbs.h"
namespace Inkscape {
namespace Widgets {
class AlternateIcons : public Gtk::HBox {
public:
- AlternateIcons(GtkIconSize size, gchar const *a, gchar const *b)
+ AlternateIcons(Inkscape::IconSize size, gchar const *a, gchar const *b)
: _a(NULL), _b(NULL)
{
if (a) {
add(*_a);
}
if (b) {
- _b = Gtk::manage(sp_icon_get_icon(b,size));
+ _b = Gtk::manage(sp_icon_get_icon(b, size));
_b->set_no_show_all(true);
add(*_b);
}
{
AlternateIcons *label;
- label = Gtk::manage(new AlternateIcons(GTK_ICON_SIZE_MENU, "visible", "hidden"));
+ label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION, "visible", "hidden"));
_visibility_toggle.add(*label);
_visibility_toggle.signal_toggled().connect(
sigc::compose(
_tooltips.set_tip(_visibility_toggle, _("Toggle current layer visibility"));
pack_start(_visibility_toggle, Gtk::PACK_EXPAND_PADDING);
- label = Gtk::manage(new AlternateIcons(GTK_ICON_SIZE_MENU, "lock_unlocked", "width_height_lock"));
+ label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION, "lock_unlocked", "width_height_lock"));
_lock_toggle.add(*label);
_lock_toggle.signal_toggled().connect(
sigc::compose(
SPObject *layer=_selector.get_active()->get_value(_model_columns.object);
if ( _desktop && layer ) {
_layer_changed_connection.block();
- _desktop->setCurrentLayer(layer);
+
+ _desktop->layer_manager->setCurrentLayer(layer);
+
_layer_changed_connection.unblock();
- SP_DT_SELECTION(_desktop)->clear();
+
_selectLayer(_desktop->currentLayer());
}
}
_visibility_toggled_connection.block(true);
_lock_toggled_connection.block(true);
slot();
+
+ SPObject *layer = _desktop ? _desktop->currentLayer() : 0;
+ if ( layer ) {
+ bool wantedValue = ( SP_IS_ITEM(layer) ? SP_ITEM(layer)->isLocked() : false );
+ if ( _lock_toggle.get_active() != wantedValue ) {
+ _lock_toggle.set_active( wantedValue );
+ }
+ wantedValue = ( SP_IS_ITEM(layer) ? SP_ITEM(layer)->isHidden() : false );
+ if ( _visibility_toggle.get_active() != wantedValue ) {
+ _visibility_toggle.set_active( wantedValue );
+ }
+ }
_visibility_toggled_connection.block(visibility_blocked);
_lock_toggled_connection.block(lock_blocked);
}
void LayerSelector::_lockLayer(bool lock) {
if ( _layer && SP_IS_ITEM(_layer) ) {
SP_ITEM(_layer)->setLocked(lock);
- sp_document_maybe_done(SP_DT_DOCUMENT(_desktop), "LayerSelector:lock");
+ sp_document_done(sp_desktop_document(_desktop), SP_VERB_NONE,
+ lock? _("Lock layer") : _("Unlock layer"));
}
}
void LayerSelector::_hideLayer(bool hide) {
if ( _layer && SP_IS_ITEM(_layer) ) {
SP_ITEM(_layer)->setHidden(hide);
- sp_document_maybe_done(SP_DT_DOCUMENT(_desktop), "LayerSelector:hide");
+ sp_document_done(sp_desktop_document(_desktop), SP_VERB_NONE,
+ hide? _("Hide layer") : _("Unhide layer"));
}
}