From 1b62c7c43dead73dd277bcd139d2abfb394d9de3 Mon Sep 17 00:00:00 2001 From: John Smith Date: Sat, 22 Sep 2012 15:00:37 +0900 Subject: Fix for 166691 : Changing layer order does not update layer selector (bzr r11692) --- src/ui/widget/layer-selector.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/ui/widget/layer-selector.cpp') diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index c6622627b..6dd45c402 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -185,7 +185,10 @@ void LayerSelector::setDesktop(SPDesktop *desktop) { if (_desktop) { // _desktop_shutdown_connection.disconnect(); - _layer_changed_connection.disconnect(); + if (_current_layer_changed_connection) + _current_layer_changed_connection.disconnect(); + if (_layers_changed_connection) + _layers_changed_connection.disconnect(); // g_signal_handlers_disconnect_by_func(_desktop, (gpointer)&detach, this); } _desktop = desktop; @@ -195,9 +198,13 @@ void LayerSelector::setDesktop(SPDesktop *desktop) { // sigc::bind (sigc::ptr_fun (detach), this)); // g_signal_connect_after(_desktop, "shutdown", GCallback(detach), this); - _layer_changed_connection = _desktop->connectCurrentLayerChanged( - sigc::mem_fun(*this, &LayerSelector::_selectLayer) - ); + LayerManager *mgr = _desktop->layer_manager; + if ( mgr ) { + _current_layer_changed_connection = mgr->connectCurrentLayerChanged( sigc::mem_fun(*this, &LayerSelector::_selectLayer) ); + //_layerUpdatedConnection = mgr->connectLayerDetailsChanged( sigc::mem_fun(*this, &LayerSelector::_updateLayer) ); + _layers_changed_connection = mgr->connectChanged( sigc::mem_fun(*this, &LayerSelector::_layersChanged) ); + } + _selectLayer(_desktop->currentLayer()); } } @@ -230,6 +237,11 @@ private: } +void LayerSelector::_layersChanged() +{ + _selectLayer(_desktop->currentLayer()); +} + /** Selects the given layer in the dropdown selector. */ void LayerSelector::_selectLayer(SPObject *layer) { @@ -300,11 +312,13 @@ void LayerSelector::_setDesktopLayer() { Gtk::ListStore::iterator selected(_selector.get_active()); SPObject *layer=_selector.get_active()->get_value(_model_columns.object); if ( _desktop && layer ) { - _layer_changed_connection.block(); + _current_layer_changed_connection.block(); + _layers_changed_connection.block(); _desktop->layer_manager->setCurrentLayer(layer); - _layer_changed_connection.unblock(); + _current_layer_changed_connection.unblock(); + _layers_changed_connection.unblock(); _selectLayer(_desktop->currentLayer()); } -- cgit v1.2.3 From 2c8d19264256de07ca62926ca7be9a32e0b76183 Mon Sep 17 00:00:00 2001 From: John Smith Date: Sat, 22 Sep 2012 18:46:47 +0900 Subject: Fix for 166691 : Revert fix (bzr r11693) --- src/ui/widget/layer-selector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/ui/widget/layer-selector.cpp') diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 6dd45c402..a80a1aba0 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -239,7 +239,7 @@ private: void LayerSelector::_layersChanged() { - _selectLayer(_desktop->currentLayer()); + //_selectLayer(_desktop->currentLayer()); } /** Selects the given layer in the dropdown selector. -- cgit v1.2.3 From 854c6d935cecf2512f4062c8ca0a236c8a22759e Mon Sep 17 00:00:00 2001 From: John Smith Date: Wed, 26 Sep 2012 12:16:46 +0900 Subject: Fix for 169001 : Long layer names mess with the UI (bzr r11705) --- src/ui/widget/layer-selector.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/ui/widget/layer-selector.cpp') diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index a80a1aba0..4bb4d8c98 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -34,6 +34,7 @@ #include "widgets/icon.h" #include "widgets/shrink-wrap-button.h" #include "xml/node-event-vector.h" +#include "widgets/gradient-vector.h" namespace Inkscape { namespace Widgets { @@ -578,8 +579,8 @@ void LayerSelector::_prepareLabelRenderer( gchar const *label; if ( object != root ) { - label = object->label(); - if (!label) { + label = gr_ellipsize_text (object->label(), 50).c_str(); + if (!object->label()) { label = object->defaultLabel(); label_defaulted = true; } @@ -599,6 +600,7 @@ void LayerSelector::_prepareLabelRenderer( _label_renderer.property_style() = ( label_defaulted ? Pango::STYLE_ITALIC : Pango::STYLE_NORMAL ); + } void LayerSelector::_lockLayer(bool lock) { -- cgit v1.2.3 From 01e3b60948d36b1f17380f43b46180157e96ec95 Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 27 Sep 2012 12:32:48 +0900 Subject: Fix for 169001 : Long layer names mess with the UI (bzr r11708) --- src/ui/widget/layer-selector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/ui/widget/layer-selector.cpp') diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 4bb4d8c98..4f8d921e6 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -579,7 +579,7 @@ void LayerSelector::_prepareLabelRenderer( gchar const *label; if ( object != root ) { - label = gr_ellipsize_text (object->label(), 50).c_str(); + label = object->label(); if (!object->label()) { label = object->defaultLabel(); label_defaulted = true; @@ -588,7 +588,7 @@ void LayerSelector::_prepareLabelRenderer( label = _("(root)"); } - gchar *text = g_markup_printf_escaped(format, label); + gchar *text = g_markup_printf_escaped(format, gr_ellipsize_text (label, 50).c_str()); _label_renderer.property_markup() = text; g_free(text); g_free(format); -- cgit v1.2.3 From 16a46ff9523431ae539865ed71328650e64327f5 Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 27 Sep 2012 13:01:53 +0900 Subject: Fix for 166691 : Changing layer order does not update layer selector (bzr r11709) --- src/ui/widget/layer-selector.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/ui/widget/layer-selector.cpp') diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 4f8d921e6..c06f70185 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -240,7 +240,9 @@ private: void LayerSelector::_layersChanged() { - //_selectLayer(_desktop->currentLayer()); + if (_desktop) { + _selectLayer(_desktop->currentLayer()); + } } /** Selects the given layer in the dropdown selector. -- cgit v1.2.3 From d6ac14202d3983a8bb19d66c6a599f9b77f464bc Mon Sep 17 00:00:00 2001 From: John Smith Date: Mon, 19 Nov 2012 13:05:55 +0900 Subject: Revert for 166691 : Changing layer order does not update layer selector - Revert change to performance issues (bzr r11883) --- src/ui/widget/layer-selector.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/ui/widget/layer-selector.cpp') diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index c06f70185..fbb9c0e24 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -241,7 +241,11 @@ private: void LayerSelector::_layersChanged() { if (_desktop) { - _selectLayer(_desktop->currentLayer()); + /* + * This code fixes #166691 but causes issues #1066543 and #1080378. + * Comment out until solution found. + */ + //_selectLayer(_desktop->currentLayer()); } } -- cgit v1.2.3