X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=glabels2%2Fsrc%2Fmerge-properties-dialog.c;h=909b9d27aaa3aaa6fa198a59baf07c65e0e7e73e;hb=b837823b737bdc2dd87ccc7d16e48d8079ed04e4;hp=4632d9192204eecb32573b3d2c6944384f3beeae;hpb=c41ee6a35575304bc9a08337f75b7e2a1c658e7e;p=glabels diff --git a/glabels2/src/merge-properties-dialog.c b/glabels2/src/merge-properties-dialog.c index 4632d919..909b9d27 100644 --- a/glabels2/src/merge-properties-dialog.c +++ b/glabels2/src/merge-properties-dialog.c @@ -55,6 +55,8 @@ struct _glMergePropertiesDialogPrivate { GtkWidget *select_all_button; GtkWidget *unselect_all_button; + GtkWidget *ok_button; + gchar *saved_src; }; @@ -117,6 +119,9 @@ static void unselect_all_button_clicked_cb (GtkWidget G_DEFINE_TYPE (glMergePropertiesDialog, gl_merge_properties_dialog, GTK_TYPE_DIALOG); +/*****************************************************************************/ +/* Class Init Function. */ +/*****************************************************************************/ static void gl_merge_properties_dialog_class_init (glMergePropertiesDialogClass *class) { @@ -130,31 +135,64 @@ gl_merge_properties_dialog_class_init (glMergePropertiesDialogClass *class) } +/*****************************************************************************/ +/* Object Instance Init Function. */ +/*****************************************************************************/ static void gl_merge_properties_dialog_init (glMergePropertiesDialog *dialog) { + GtkBuilder *builder; + static gchar *object_ids[] = { "merge_properties_vbox", NULL }; + GError *error = NULL; + GtkWidget *vbox; + gl_debug (DEBUG_MERGE, "START"); dialog->priv = g_new0 (glMergePropertiesDialogPrivate, 1); - gtk_container_set_border_width (GTK_CONTAINER(dialog), GL_HIG_PAD2); + gtk_container_set_border_width (GTK_CONTAINER(dialog), GL_HIG_PAD1); gtk_dialog_set_has_separator (GTK_DIALOG(dialog), FALSE); - gtk_dialog_add_buttons (GTK_DIALOG (dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_OK, - NULL); + gtk_dialog_add_button (GTK_DIALOG (dialog), + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); + dialog->priv->ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), + GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); - g_signal_connect(G_OBJECT (dialog), "response", - G_CALLBACK (response_cb), NULL); + builder = gtk_builder_new (); + gtk_builder_add_objects_from_file (builder, + GLABELS_BUILDER_DIR "merge-properties-dialog.builder", + object_ids, + &error); + if (error) { + g_critical ("%s\n\ngLabels may not be installed correctly!", error->message); + g_error_free (error); + return; + } + + gl_util_get_builder_widgets (builder, + "merge_properties_vbox", &vbox, + "type_combo", &dialog->priv->type_combo, + "location_vbox", &dialog->priv->location_vbox, + "treeview", &dialog->priv->treeview, + "select_all_button", &dialog->priv->select_all_button, + "unselect_all_button", &dialog->priv->unselect_all_button, + NULL); + + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox); + dialog->priv->builder = builder; + + gl_util_combo_box_add_text_model (GTK_COMBO_BOX (dialog->priv->type_combo)); gl_debug (DEBUG_MERGE, "END"); } +/*****************************************************************************/ +/* Finalize Function. */ +/*****************************************************************************/ static void gl_merge_properties_dialog_finalize (GObject *object) { @@ -209,15 +247,11 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog, glLabel *label, GtkWindow *window) { - GtkBuilder *builder; - static gchar *object_ids[] = { "merge_properties_vbox", NULL }; - GError *error = NULL; gchar *description; glMergeSrcType src_type; gchar *src; gchar *name, *title; GList *texts; - GtkWidget *vbox; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeSelection *selection; @@ -232,31 +266,6 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog, gtk_window_set_destroy_with_parent (GTK_WINDOW(dialog), TRUE); } - builder = gtk_builder_new (); - gtk_builder_add_objects_from_file (builder, - GLABELS_BUILDER_DIR "merge-properties-dialog.builder", - object_ids, - &error); - if (error) { - g_critical ("%s\n\ngLabels may not be installed correctly!", error->message); - g_error_free (error); - return; - } - - gl_util_get_builder_widgets (builder, - "merge_properties_vbox", &vbox, - "type_combo", &dialog->priv->type_combo, - "location_vbox", &dialog->priv->location_vbox, - "treeview", &dialog->priv->treeview, - "select_all_button", &dialog->priv->select_all_button, - "unselect_all_button", &dialog->priv->unselect_all_button, - NULL); - - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox); - dialog->priv->builder = builder; - - gl_util_combo_box_add_text_model (GTK_COMBO_BOX (dialog->priv->type_combo)); - dialog->priv->label = label; dialog->priv->merge = gl_label_get_merge (dialog->priv->label); @@ -296,6 +305,8 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog, GTK_FILE_CHOOSER_ACTION_OPEN); gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog->priv->src_entry), src); + gtk_file_chooser_button_set_focus_on_click (GTK_FILE_CHOOSER_BUTTON (dialog->priv->src_entry), + FALSE); g_signal_connect (G_OBJECT (dialog->priv->src_entry), "selection-changed", G_CALLBACK (src_changed_cb), dialog); @@ -331,7 +342,6 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog, "active", SELECT_COLUMN, "visible", IS_RECORD_COLUMN, NULL); - gtk_tree_view_column_set_clickable (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->priv->treeview), column); renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "yalign", 0.0, NULL); @@ -363,6 +373,12 @@ gl_merge_properties_dialog_construct (glMergePropertiesDialog *dialog, gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_widget_grab_focus (dialog->priv->ok_button); + gtk_widget_grab_default (dialog->priv->ok_button); + + g_signal_connect(G_OBJECT (dialog), "response", + G_CALLBACK (response_cb), NULL); + gl_debug (DEBUG_MERGE, "END"); } @@ -403,6 +419,8 @@ type_changed_cb (GtkWidget *widget, dialog->priv->src_entry = gtk_file_chooser_button_new (_("Select merge-database source"), GTK_FILE_CHOOSER_ACTION_OPEN); + gtk_file_chooser_button_set_focus_on_click (GTK_FILE_CHOOSER_BUTTON (dialog->priv->src_entry), + FALSE); if (dialog->priv->saved_src != NULL) { gl_debug (DEBUG_MERGE, "Setting src = \"%s\"", dialog->priv->saved_src); gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog->priv->src_entry),