diff options
author | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2013-09-13 23:55:32 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2013-09-14 01:14:57 -0300 |
commit | ce39d7e3d59c07ebaaf2239b5a8440b47e5c2efd (patch) | |
tree | 5a9e54f124689de9cfba0783774d86e24cafe711 | |
parent | 91fbd1eb41308ab04b680e1777b0246b6afc4d1f (diff) | |
download | glade-ce39d7e3d59c07ebaaf2239b5a8440b47e5c2efd.tar.gz |
Improved pango text integer attributes editors.
Make the spin button numeric and clear the attr if the new text is an empty string!
This should be enough to close Bug 679006
"The "size" attribute for labels only accepts integer values (not strings like "larger")"
-rw-r--r-- | plugins/gtk+/glade-attributes.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/plugins/gtk+/glade-attributes.c b/plugins/gtk+/glade-attributes.c index e566bbe7..4d54a999 100644 --- a/plugins/gtk+/glade-attributes.c +++ b/plugins/gtk+/glade-attributes.c @@ -780,7 +780,7 @@ value_combo_spin_edited (GtkCellRendererText *cell, -1); /* Reset the column */ - if (new_text && strcmp (new_text, _("None")) == 0) + if (new_text && (*new_text == '\0' || strcmp (new_text, _("None")) == 0)) { gtk_list_store_set (GTK_LIST_STORE (eprop_attrs->model), &iter, COLUMN_TEXT, _("<Enter Value>"), @@ -799,6 +799,16 @@ value_combo_spin_edited (GtkCellRendererText *cell, sync_object (eprop_attrs, FALSE); + +} + +static void +value_combo_spin_editing_started (GtkCellRenderer *cell, + GtkCellEditable *editable, + const gchar *path) +{ + if (GTK_IS_SPIN_BUTTON (editable)) + gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (editable), TRUE); } static GtkWidget * @@ -908,7 +918,7 @@ glade_eprop_attrs_view (GladeEditorProperty *eprop) /* Spin renderer */ renderer = gtk_cell_renderer_spin_new (); - adjustment = (GtkAdjustment *)gtk_adjustment_new (0, -G_MAXDOUBLE, G_MAXDOUBLE, 100, 100, 100); + adjustment = (GtkAdjustment *)gtk_adjustment_new (0, -G_MAXDOUBLE, G_MAXDOUBLE, 100, 100, 0); g_object_set (G_OBJECT (renderer), "adjustment", adjustment, NULL); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, @@ -921,6 +931,8 @@ glade_eprop_attrs_view (GladeEditorProperty *eprop) NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (value_combo_spin_edited), eprop); + g_signal_connect (G_OBJECT (renderer), "editing-started", + G_CALLBACK (value_combo_spin_editing_started), NULL); gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (view_widget), column); @@ -996,11 +1008,9 @@ glade_eprop_attrs_show_dialog (GtkWidget *dialog_button, { GladeEPropAttrs *eprop_attrs = GLADE_EPROP_ATTRS (eprop); GtkWidget *dialog, *parent, *vbox, *sw, *tree_view; - GladeProject *project; GList *old_attributes; gint res; - - project = glade_widget_get_project (eprop->property->widget); + parent = gtk_widget_get_toplevel (GTK_WIDGET (eprop)); |