From 8b04d0db6c55e36935690d37defb6f9b68945796 Mon Sep 17 00:00:00 2001 From: johnce Date: Wed, 5 Aug 2009 05:40:36 +0000 Subject: SPDocument->Document (bzr r8404) --- src/widgets/gradient-vector.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/widgets/gradient-vector.cpp') diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 1f0c07754..c6a7b37f4 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -155,7 +155,7 @@ sp_gradient_vector_selector_destroy (GtkObject *object) } GtkWidget * -sp_gradient_vector_selector_new (SPDocument *doc, SPGradient *gr) +sp_gradient_vector_selector_new (Document *doc, SPGradient *gr) { GtkWidget *gvs; @@ -174,7 +174,7 @@ sp_gradient_vector_selector_new (SPDocument *doc, SPGradient *gr) } void -sp_gradient_vector_selector_set_gradient (SPGradientVectorSelector *gvs, SPDocument *doc, SPGradient *gr) +sp_gradient_vector_selector_set_gradient (SPGradientVectorSelector *gvs, Document *doc, SPGradient *gr) { static gboolean suppress = FALSE; @@ -220,7 +220,7 @@ sp_gradient_vector_selector_set_gradient (SPGradientVectorSelector *gvs, SPDocum /* The case of setting NULL -> NULL is not very interesting */ } -SPDocument * +Document * sp_gradient_vector_selector_get_document (SPGradientVectorSelector *gvs) { g_return_val_if_fail (gvs != NULL, NULL); @@ -1037,7 +1037,7 @@ sp_gradient_vector_widget_load_gradient (GtkWidget *widget, SPGradient *gradient // Once the user edits a gradient, it stops being auto-collectable if (SP_OBJECT_REPR(gradient)->attribute("inkscape:collect")) { - SPDocument *document = SP_OBJECT_DOCUMENT (gradient); + Document *document = SP_OBJECT_DOCUMENT (gradient); bool saved = sp_document_get_undo_sensitive(document); sp_document_set_undo_sensitive (document, false); SP_OBJECT_REPR(gradient)->setAttribute("inkscape:collect", NULL); -- cgit v1.2.3 From 51c2905fd3e99955db2d823b79abb763d8097028 Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Thu, 6 Aug 2009 14:17:17 +0000 Subject: Revert recent refactoring changes by johnce because they break the build, which cannot be fixed easily. (bzr r8422) --- src/widgets/gradient-vector.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/widgets/gradient-vector.cpp') diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index c6a7b37f4..1f0c07754 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -155,7 +155,7 @@ sp_gradient_vector_selector_destroy (GtkObject *object) } GtkWidget * -sp_gradient_vector_selector_new (Document *doc, SPGradient *gr) +sp_gradient_vector_selector_new (SPDocument *doc, SPGradient *gr) { GtkWidget *gvs; @@ -174,7 +174,7 @@ sp_gradient_vector_selector_new (Document *doc, SPGradient *gr) } void -sp_gradient_vector_selector_set_gradient (SPGradientVectorSelector *gvs, Document *doc, SPGradient *gr) +sp_gradient_vector_selector_set_gradient (SPGradientVectorSelector *gvs, SPDocument *doc, SPGradient *gr) { static gboolean suppress = FALSE; @@ -220,7 +220,7 @@ sp_gradient_vector_selector_set_gradient (SPGradientVectorSelector *gvs, Documen /* The case of setting NULL -> NULL is not very interesting */ } -Document * +SPDocument * sp_gradient_vector_selector_get_document (SPGradientVectorSelector *gvs) { g_return_val_if_fail (gvs != NULL, NULL); @@ -1037,7 +1037,7 @@ sp_gradient_vector_widget_load_gradient (GtkWidget *widget, SPGradient *gradient // Once the user edits a gradient, it stops being auto-collectable if (SP_OBJECT_REPR(gradient)->attribute("inkscape:collect")) { - Document *document = SP_OBJECT_DOCUMENT (gradient); + SPDocument *document = SP_OBJECT_DOCUMENT (gradient); bool saved = sp_document_get_undo_sensitive(document); sp_document_set_undo_sensitive (document, false); SP_OBJECT_REPR(gradient)->setAttribute("inkscape:collect", NULL); -- cgit v1.2.3 From 75cef41a56f87c4fc7ac88d4107321ae5d6e543a Mon Sep 17 00:00:00 2001 From: bulia byak Date: Thu, 13 Aug 2009 22:15:00 +0000 Subject: fix 376068 (bzr r8483) --- src/widgets/gradient-vector.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'src/widgets/gradient-vector.cpp') diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 1f0c07754..ba31470f6 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -793,7 +793,6 @@ sp_gradient_vector_widget_new (SPGradient *gradient, SPStop *select_stop) gtk_widget_show (w); gtk_box_pack_start (GTK_BOX (vb), w, TRUE, TRUE, PAD); - gtk_object_set_data (GTK_OBJECT (vb), "gradient", gradient); sp_repr_add_listener (SP_OBJECT_REPR(gradient), &grad_edit_dia_repr_events, vb); GtkTooltips *tt = gtk_tooltips_new (); @@ -1013,6 +1012,8 @@ sp_gradient_vector_widget_load_gradient (GtkWidget *widget, SPGradient *gradient g_object_set_data (G_OBJECT (widget), "gradient", gradient); if (gradient) { + gtk_widget_set_sensitive (widget, TRUE); + sp_gradient_ensure_vector (gradient); GtkOptionMenu *mnu = (GtkOptionMenu *)g_object_get_data (G_OBJECT(widget), "stopmenu"); @@ -1026,22 +1027,23 @@ sp_gradient_vector_widget_load_gradient (GtkWidget *widget, SPGradient *gradient SPColor color( SP_RGBA32_R_F (c), SP_RGBA32_G_F (c), SP_RGBA32_B_F (c) ); // set color csel->base->setColor( color ); - } - /* Fill preview */ - GtkWidget *w = static_cast(g_object_get_data(G_OBJECT(widget), "preview")); - sp_gradient_image_set_gradient (SP_GRADIENT_IMAGE (w), gradient); + /* Fill preview */ + GtkWidget *w = static_cast(g_object_get_data(G_OBJECT(widget), "preview")); + sp_gradient_image_set_gradient (SP_GRADIENT_IMAGE (w), gradient); - GtkWidget *mnu = static_cast(g_object_get_data(G_OBJECT(widget), "stopmenu")); - update_stop_list (GTK_WIDGET(mnu), gradient, NULL); + update_stop_list (GTK_WIDGET(mnu), gradient, NULL); - // Once the user edits a gradient, it stops being auto-collectable - if (SP_OBJECT_REPR(gradient)->attribute("inkscape:collect")) { - SPDocument *document = SP_OBJECT_DOCUMENT (gradient); - bool saved = sp_document_get_undo_sensitive(document); - sp_document_set_undo_sensitive (document, false); - SP_OBJECT_REPR(gradient)->setAttribute("inkscape:collect", NULL); - sp_document_set_undo_sensitive (document, saved); + // Once the user edits a gradient, it stops being auto-collectable + if (SP_OBJECT_REPR(gradient)->attribute("inkscape:collect")) { + SPDocument *document = SP_OBJECT_DOCUMENT (gradient); + bool saved = sp_document_get_undo_sensitive(document); + sp_document_set_undo_sensitive (document, false); + SP_OBJECT_REPR(gradient)->setAttribute("inkscape:collect", NULL); + sp_document_set_undo_sensitive (document, saved); + } + } else { // no gradient, disable everything + gtk_widget_set_sensitive (widget, FALSE); } blocked = FALSE; -- cgit v1.2.3 From 9806e07e0d9c6229cd023a3871c29f0d5af5c978 Mon Sep 17 00:00:00 2001 From: bulia byak Date: Sat, 22 Aug 2009 02:21:36 +0000 Subject: fix 416940 (bzr r8517) --- src/widgets/gradient-vector.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/widgets/gradient-vector.cpp') diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index ba31470f6..c884604a2 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -1084,10 +1084,18 @@ sp_gradient_vector_widget_destroy (GtkObject *object, gpointer /*data*/) gradient = (GObject*)g_object_get_data (G_OBJECT (object), "gradient"); - if (gradient && SP_OBJECT_REPR(gradient)) { - /* Remove signals connected to us */ - /* fixme: may use _connect_while_alive as well */ + sigc::connection *release_connection = (sigc::connection *)g_object_get_data(G_OBJECT(object), "gradient_release_connection"); + sigc::connection *modified_connection = (sigc::connection *)g_object_get_data(G_OBJECT(object), "gradient_modified_connection"); + + if (gradient) { + g_assert( release_connection != NULL ); + g_assert( modified_connection != NULL ); + release_connection->disconnect(); + modified_connection->disconnect(); sp_signal_disconnect_by_data (gradient, object); + } + + if (gradient && SP_OBJECT_REPR(gradient)) { sp_repr_remove_listener_by_data (SP_OBJECT_REPR(gradient), object); } } -- cgit v1.2.3