summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <juanpablougarte@gmail.com>2013-09-13 23:55:32 -0300
committerJuan Pablo Ugarte <juanpablougarte@gmail.com>2013-09-14 01:14:57 -0300
commitce39d7e3d59c07ebaaf2239b5a8440b47e5c2efd (patch)
tree5a9e54f124689de9cfba0783774d86e24cafe711
parent91fbd1eb41308ab04b680e1777b0246b6afc4d1f (diff)
downloadglade-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.c20
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));