summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2011-01-09 15:58:55 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2011-01-09 15:58:55 +0900
commit56822f3acda41bbfa2f01d85bfd9e0f4c799a0fd (patch)
tree8b1d07e9a2a8ad56a1495e77fe071452295db32f
parent88d395d0082cc37ffa0efe0e5b5f619a11bc4fb9 (diff)
downloadglade-56822f3acda41bbfa2f01d85bfd9e0f4c799a0fd.tar.gz
* gladeui/glade-editor.c: Make query dialog come with a "Create" button instead
of an "OK" button, closes bug 503621. Conflicts: ChangeLog gladeui/glade-editor.c
-rw-r--r--ChangeLog5
-rw-r--r--gladeui/glade-editor.c43
2 files changed, 27 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index b2648333..45778e80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-09 Tristan Van Berkom <tristanvb@openismus.com>
+
+ * gladeui/glade-editor.c: Make query dialog come with a "Create" button instead
+ of an "OK" button, closes bug 503621.
+
2011-01-08 Tristan Van Berkom <tristanvb@openismus.com>
* plugins/Makefile.am, plugins/glade-tool-item-group-editor.[ch], plugins/gtk+.xml.in,
diff --git a/gladeui/glade-editor.c b/gladeui/glade-editor.c
index b0e9875e..4d56ca8d 100644
--- a/gladeui/glade-editor.c
+++ b/gladeui/glade-editor.c
@@ -822,41 +822,44 @@ query_dialog_style_set_cb (GtkWidget *dialog,
gboolean
glade_editor_query_dialog (GladeEditor *editor, GladeWidget *widget)
{
- GtkWidget *dialog, *editable, *content_area;
- gchar *title;
- gint answer;
- gboolean retval = TRUE;
+ GladeWidgetAdaptor *adaptor;
+ GtkWidget *dialog, *editable, *content_area;
+ GtkWidget *create;
+ gchar *title;
+ gint answer;
+ gboolean retval = TRUE;
- title = g_strdup_printf (_("Create a %s"), widget->adaptor->name);
+ g_return_val_if_fail (GLADE_IS_WIDGET (widget), FALSE);
+
+ adaptor = glade_widget_get_adaptor (widget);
+ title = g_strdup_printf (_("Create a %s"), adaptor->name);
dialog = gtk_dialog_new_with_buttons (title, NULL,
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT |
- GTK_DIALOG_NO_SEPARATOR,
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-
g_free (title);
+ create = gtk_button_new_with_mnemonic (_("Crea_te"));
+ gtk_widget_show (create);
+ gtk_widget_set_can_default (create, TRUE);
+ gtk_dialog_add_action_widget (GTK_DIALOG (dialog), create, GTK_RESPONSE_OK);
+
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
GTK_RESPONSE_OK,
- GTK_RESPONSE_CANCEL,
- -1);
+ GTK_RESPONSE_CANCEL, -1);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
- editable = glade_editor_get_editable_by_adaptor (editor,
- widget->adaptor,
- GLADE_PAGE_QUERY);
+ editable = (GtkWidget *) glade_widget_adaptor_create_editable (adaptor, GLADE_PAGE_QUERY);
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
- gtk_box_pack_start (GTK_BOX (content_area),
- editable, FALSE, FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (content_area), editable, FALSE, FALSE, 6);
glade_editable_load (GLADE_EDITABLE (editable), widget);
- g_signal_connect (dialog, "style-set",
- G_CALLBACK (query_dialog_style_set_cb),
- NULL);
+ g_signal_connect (dialog, "style-set",
+ G_CALLBACK (query_dialog_style_set_cb), NULL);
answer = gtk_dialog_run (GTK_DIALOG (dialog));
@@ -868,8 +871,6 @@ glade_editor_query_dialog (GladeEditor *editor, GladeWidget *widget)
if (answer == GTK_RESPONSE_CANCEL)
retval = FALSE;
- gtk_container_remove (GTK_CONTAINER (content_area), editable);
-
gtk_widget_destroy (dialog);
return retval;
}