diff options
Diffstat (limited to 'src/nautilus-file-conflict-dialog.c')
-rw-r--r-- | src/nautilus-file-conflict-dialog.c | 663 |
1 files changed, 337 insertions, 326 deletions
diff --git a/src/nautilus-file-conflict-dialog.c b/src/nautilus-file-conflict-dialog.c index 0ba63a117..a11eb689d 100644 --- a/src/nautilus-file-conflict-dialog.c +++ b/src/nautilus-file-conflict-dialog.c @@ -1,24 +1,23 @@ - /* nautilus-file-conflict-dialog: dialog that handles file conflicts - during transfer operations. - - Copyright (C) 2008-2010 Cosimo Cecchi - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program; if not, see <http://www.gnu.org/licenses/>. - - Authors: Cosimo Cecchi <cosimoc@gnome.org> -*/ + * during transfer operations. + * + * Copyright (C) 2008-2010 Cosimo Cecchi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, see <http://www.gnu.org/licenses/>. + * + * Authors: Cosimo Cecchi <cosimoc@gnome.org> + */ #include <config.h> #include "nautilus-file-conflict-dialog.h" @@ -36,408 +35,420 @@ struct _NautilusFileConflictDialogDetails { - gchar *conflict_name; - - /* UI objects */ - GtkWidget *titles_vbox; - GtkWidget *first_hbox; - GtkWidget *second_hbox; - GtkWidget *expander; - GtkWidget *entry; - GtkWidget *checkbox; - GtkWidget *skip_button; - GtkWidget *rename_button; - GtkWidget *replace_button; - GtkWidget *dest_image; - GtkWidget *src_image; + gchar *conflict_name; + + /* UI objects */ + GtkWidget *titles_vbox; + GtkWidget *first_hbox; + GtkWidget *second_hbox; + GtkWidget *expander; + GtkWidget *entry; + GtkWidget *checkbox; + GtkWidget *skip_button; + GtkWidget *rename_button; + GtkWidget *replace_button; + GtkWidget *dest_image; + GtkWidget *src_image; }; G_DEFINE_TYPE (NautilusFileConflictDialog, - nautilus_file_conflict_dialog, - GTK_TYPE_DIALOG); + nautilus_file_conflict_dialog, + GTK_TYPE_DIALOG); -#define NAUTILUS_FILE_CONFLICT_DIALOG_GET_PRIVATE(object) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((object), NAUTILUS_TYPE_FILE_CONFLICT_DIALOG, \ - NautilusFileConflictDialogDetails)) +#define NAUTILUS_FILE_CONFLICT_DIALOG_GET_PRIVATE(object) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((object), NAUTILUS_TYPE_FILE_CONFLICT_DIALOG, \ + NautilusFileConflictDialogDetails)) void nautilus_file_conflict_dialog_set_text (NautilusFileConflictDialog *fcd, - gchar *primary_text, - gchar *secondary_text) + gchar *primary_text, + gchar *secondary_text) { - NautilusFileConflictDialogDetails *details = fcd->details; - GtkWidget *label; - PangoAttrList *attr_list; - - label = gtk_label_new (primary_text); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - gtk_label_set_line_wrap_mode (GTK_LABEL (label), PANGO_WRAP_WORD_CHAR); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (details->titles_vbox), - label, FALSE, FALSE, 0); - gtk_widget_show (label); - - attr_list = pango_attr_list_new (); - pango_attr_list_insert (attr_list, pango_attr_weight_new (PANGO_WEIGHT_BOLD)); - pango_attr_list_insert (attr_list, pango_attr_scale_new (PANGO_SCALE_LARGE)); - g_object_set (label, - "attributes", attr_list, - NULL); - - pango_attr_list_unref (attr_list); - - label = gtk_label_new (secondary_text); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (details->titles_vbox), - label, FALSE, FALSE, 0); - gtk_widget_show (label); + NautilusFileConflictDialogDetails *details = fcd->details; + GtkWidget *label; + PangoAttrList *attr_list; + + label = gtk_label_new (primary_text); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_label_set_line_wrap_mode (GTK_LABEL (label), PANGO_WRAP_WORD_CHAR); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_box_pack_start (GTK_BOX (details->titles_vbox), + label, FALSE, FALSE, 0); + gtk_widget_show (label); + + attr_list = pango_attr_list_new (); + pango_attr_list_insert (attr_list, pango_attr_weight_new (PANGO_WEIGHT_BOLD)); + pango_attr_list_insert (attr_list, pango_attr_scale_new (PANGO_SCALE_LARGE)); + g_object_set (label, + "attributes", attr_list, + NULL); + + pango_attr_list_unref (attr_list); + + label = gtk_label_new (secondary_text); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_box_pack_start (GTK_BOX (details->titles_vbox), + label, FALSE, FALSE, 0); + gtk_widget_show (label); } void nautilus_file_conflict_dialog_set_images (NautilusFileConflictDialog *fcd, - GdkPixbuf *destination_pixbuf, - GdkPixbuf *source_pixbuf) + GdkPixbuf *destination_pixbuf, + GdkPixbuf *source_pixbuf) { - NautilusFileConflictDialogDetails *details = fcd->details; - - if (details->dest_image == NULL) { - details->dest_image = gtk_image_new_from_pixbuf (destination_pixbuf); - gtk_box_pack_start (GTK_BOX (details->first_hbox), - details->dest_image, FALSE, FALSE, 0); - gtk_widget_show (details->dest_image); - } else { - gtk_image_set_from_pixbuf (GTK_IMAGE (details->dest_image), - destination_pixbuf); - } + NautilusFileConflictDialogDetails *details = fcd->details; - if (details->src_image == NULL) { - details->src_image = gtk_image_new_from_pixbuf (source_pixbuf); - gtk_box_pack_start (GTK_BOX (details->second_hbox), - details->src_image, FALSE, FALSE, 0); - gtk_widget_show (details->src_image); - } else { - gtk_image_set_from_pixbuf (GTK_IMAGE (details->src_image), - source_pixbuf); - } + if (details->dest_image == NULL) + { + details->dest_image = gtk_image_new_from_pixbuf (destination_pixbuf); + gtk_box_pack_start (GTK_BOX (details->first_hbox), + details->dest_image, FALSE, FALSE, 0); + gtk_widget_show (details->dest_image); + } + else + { + gtk_image_set_from_pixbuf (GTK_IMAGE (details->dest_image), + destination_pixbuf); + } + + if (details->src_image == NULL) + { + details->src_image = gtk_image_new_from_pixbuf (source_pixbuf); + gtk_box_pack_start (GTK_BOX (details->second_hbox), + details->src_image, FALSE, FALSE, 0); + gtk_widget_show (details->src_image); + } + else + { + gtk_image_set_from_pixbuf (GTK_IMAGE (details->src_image), + source_pixbuf); + } } void nautilus_file_conflict_dialog_set_file_labels (NautilusFileConflictDialog *fcd, - gchar *destination_label, - gchar *source_label) + gchar *destination_label, + gchar *source_label) { - NautilusFileConflictDialogDetails *details = fcd->details; - GtkWidget *label; - - label = gtk_label_new (NULL); - gtk_label_set_markup (GTK_LABEL (label), - destination_label); - gtk_box_pack_start (GTK_BOX (details->first_hbox), - label, FALSE, FALSE, 0); - gtk_widget_show (label); - - label = gtk_label_new (NULL); - gtk_label_set_markup (GTK_LABEL (label), - source_label); - gtk_box_pack_start (GTK_BOX (details->second_hbox), - label, FALSE, FALSE, 0); - gtk_widget_show (label); + NautilusFileConflictDialogDetails *details = fcd->details; + GtkWidget *label; + + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), + destination_label); + gtk_box_pack_start (GTK_BOX (details->first_hbox), + label, FALSE, FALSE, 0); + gtk_widget_show (label); + + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), + source_label); + gtk_box_pack_start (GTK_BOX (details->second_hbox), + label, FALSE, FALSE, 0); + gtk_widget_show (label); } void nautilus_file_conflict_dialog_set_conflict_name (NautilusFileConflictDialog *fcd, - gchar *conflict_name) + gchar *conflict_name) { - NautilusFileConflictDialogDetails *details = fcd->details; - - details->conflict_name = g_strdup (conflict_name); + NautilusFileConflictDialogDetails *details = fcd->details; - gtk_entry_set_text (GTK_ENTRY (details->entry), details->conflict_name); + details->conflict_name = g_strdup (conflict_name); + gtk_entry_set_text (GTK_ENTRY (details->entry), details->conflict_name); } void nautilus_file_conflict_dialog_set_replace_button_label (NautilusFileConflictDialog *fcd, - gchar *label) + gchar *label) { - NautilusFileConflictDialogDetails *details = fcd->details; + NautilusFileConflictDialogDetails *details = fcd->details; - gtk_button_set_label (GTK_BUTTON (details->replace_button), - label); + gtk_button_set_label (GTK_BUTTON (details->replace_button), + label); } void nautilus_file_conflict_dialog_disable_skip (NautilusFileConflictDialog *fcd) { - NautilusFileConflictDialogDetails *details = fcd->details; + NautilusFileConflictDialogDetails *details = fcd->details; - gtk_widget_hide (details->skip_button); + gtk_widget_hide (details->skip_button); } void nautilus_file_conflict_dialog_disable_apply_to_all (NautilusFileConflictDialog *fcd) { - NautilusFileConflictDialogDetails *details = fcd->details; + NautilusFileConflictDialogDetails *details = fcd->details; - gtk_widget_hide (details->checkbox); + gtk_widget_hide (details->checkbox); } static void -entry_text_changed_cb (GtkEditable *entry, - NautilusFileConflictDialog *dialog) +entry_text_changed_cb (GtkEditable *entry, + NautilusFileConflictDialog *dialog) { - NautilusFileConflictDialogDetails *details; - - details = dialog->details; - - /* The rename button is visible only if there's text - * in the entry. - */ - if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (entry)), "") != 0 && - g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (entry)), details->conflict_name) != 0) { - gtk_widget_hide (details->replace_button); - gtk_widget_show (details->rename_button); - - gtk_widget_set_sensitive (details->checkbox, FALSE); - - gtk_dialog_set_default_response (GTK_DIALOG (dialog), - CONFLICT_RESPONSE_RENAME); - } else { - gtk_widget_hide (details->rename_button); - gtk_widget_show (details->replace_button); - - gtk_widget_set_sensitive (details->checkbox, TRUE); - - gtk_dialog_set_default_response (GTK_DIALOG (dialog), - CONFLICT_RESPONSE_REPLACE); - } + NautilusFileConflictDialogDetails *details; + + details = dialog->details; + + /* The rename button is visible only if there's text + * in the entry. + */ + if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (entry)), "") != 0 && + g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (entry)), details->conflict_name) != 0) + { + gtk_widget_hide (details->replace_button); + gtk_widget_show (details->rename_button); + + gtk_widget_set_sensitive (details->checkbox, FALSE); + + gtk_dialog_set_default_response (GTK_DIALOG (dialog), + CONFLICT_RESPONSE_RENAME); + } + else + { + gtk_widget_hide (details->rename_button); + gtk_widget_show (details->replace_button); + + gtk_widget_set_sensitive (details->checkbox, TRUE); + + gtk_dialog_set_default_response (GTK_DIALOG (dialog), + CONFLICT_RESPONSE_REPLACE); + } } static void -expander_activated_cb (GtkExpander *w, - NautilusFileConflictDialog *dialog) +expander_activated_cb (GtkExpander *w, + NautilusFileConflictDialog *dialog) { - NautilusFileConflictDialogDetails *details; - int start_pos, end_pos; - - details = dialog->details; - - if (!gtk_expander_get_expanded (w)) { - if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), - details->conflict_name) == 0) { - gtk_widget_grab_focus (details->entry); - - eel_filename_get_rename_region (details->conflict_name, - &start_pos, &end_pos); - gtk_editable_select_region (GTK_EDITABLE (details->entry), - start_pos, end_pos); - } - } + NautilusFileConflictDialogDetails *details; + int start_pos, end_pos; + + details = dialog->details; + + if (!gtk_expander_get_expanded (w)) + { + if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), + details->conflict_name) == 0) + { + gtk_widget_grab_focus (details->entry); + + eel_filename_get_rename_region (details->conflict_name, + &start_pos, &end_pos); + gtk_editable_select_region (GTK_EDITABLE (details->entry), + start_pos, end_pos); + } + } } static void -checkbox_toggled_cb (GtkToggleButton *t, - NautilusFileConflictDialog *dialog) +checkbox_toggled_cb (GtkToggleButton *t, + NautilusFileConflictDialog *dialog) { - NautilusFileConflictDialogDetails *details; - - details = dialog->details; - - gtk_widget_set_sensitive (details->expander, - !gtk_toggle_button_get_active (t)); - gtk_widget_set_sensitive (details->rename_button, - !gtk_toggle_button_get_active (t)); - - if (!gtk_toggle_button_get_active (t) && - g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), - "") != 0 && - g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), - details->conflict_name) != 0) { - gtk_widget_hide (details->replace_button); - gtk_widget_show (details->rename_button); - } else { - gtk_widget_hide (details->rename_button); - gtk_widget_show (details->replace_button); - } + NautilusFileConflictDialogDetails *details; + + details = dialog->details; + + gtk_widget_set_sensitive (details->expander, + !gtk_toggle_button_get_active (t)); + gtk_widget_set_sensitive (details->rename_button, + !gtk_toggle_button_get_active (t)); + + if (!gtk_toggle_button_get_active (t) && + g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), + "") != 0 && + g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), + details->conflict_name) != 0) + { + gtk_widget_hide (details->replace_button); + gtk_widget_show (details->rename_button); + } + else + { + gtk_widget_hide (details->rename_button); + gtk_widget_show (details->replace_button); + } } static void -reset_button_clicked_cb (GtkButton *w, - NautilusFileConflictDialog *dialog) +reset_button_clicked_cb (GtkButton *w, + NautilusFileConflictDialog *dialog) { - NautilusFileConflictDialogDetails *details; - int start_pos, end_pos; - - details = dialog->details; - - gtk_entry_set_text (GTK_ENTRY (details->entry), - details->conflict_name); - gtk_widget_grab_focus (details->entry); - eel_filename_get_rename_region (details->conflict_name, - &start_pos, &end_pos); - gtk_editable_select_region (GTK_EDITABLE (details->entry), - start_pos, end_pos); - + NautilusFileConflictDialogDetails *details; + int start_pos, end_pos; + + details = dialog->details; + + gtk_entry_set_text (GTK_ENTRY (details->entry), + details->conflict_name); + gtk_widget_grab_focus (details->entry); + eel_filename_get_rename_region (details->conflict_name, + &start_pos, &end_pos); + gtk_editable_select_region (GTK_EDITABLE (details->entry), + start_pos, end_pos); } static void nautilus_file_conflict_dialog_init (NautilusFileConflictDialog *fcd) { - GtkWidget *hbox, *vbox, *vbox2; - GtkWidget *widget, *dialog_area; - NautilusFileConflictDialogDetails *details; - GtkDialog *dialog; - - details = fcd->details = NAUTILUS_FILE_CONFLICT_DIALOG_GET_PRIVATE (fcd); - dialog = GTK_DIALOG (fcd); - - /* Setup the main hbox */ - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); - dialog_area = gtk_dialog_get_content_area (dialog); - gtk_box_pack_start (GTK_BOX (dialog_area), hbox, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); - - /* Setup the dialog image */ - widget = gtk_image_new_from_icon_name ("dialog-warning", - GTK_ICON_SIZE_DIALOG); - gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); - gtk_widget_set_valign (widget, GTK_ALIGN_START); - - /* Setup the vbox containing the dialog body */ - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); - gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); - - /* Setup the vbox for the dialog labels */ - widget = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); - gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0); - details->titles_vbox = widget; - - /* Setup the hboxes to pack file infos into */ - vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); - gtk_widget_set_halign (vbox2, GTK_ALIGN_START); - gtk_widget_set_margin_start (vbox2, 12); - gtk_box_pack_start (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0); - - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); - details->first_hbox = hbox; - - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); - details->second_hbox = hbox; - - /* Setup the expander for the rename action */ - details->expander = gtk_expander_new_with_mnemonic (_("_Select a new name for the destination")); - gtk_box_pack_start (GTK_BOX (vbox2), details->expander, FALSE, FALSE, 0); - g_signal_connect (details->expander, "activate", - G_CALLBACK (expander_activated_cb), dialog); - - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); - gtk_container_add (GTK_CONTAINER (details->expander), hbox); - - widget = gtk_entry_new (); - gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 6); - details->entry = widget; - g_signal_connect (widget, "changed", - G_CALLBACK (entry_text_changed_cb), dialog); - - widget = gtk_button_new_with_label (_("Reset")); - gtk_button_set_image (GTK_BUTTON (widget), - gtk_image_new_from_icon_name ("edit-undo", - GTK_ICON_SIZE_MENU)); - gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 6); - g_signal_connect (widget, "clicked", - G_CALLBACK (reset_button_clicked_cb), dialog); - - gtk_widget_show_all (vbox2); - - - /* Setup the checkbox to apply the action to all files */ - widget = gtk_check_button_new_with_mnemonic (_("Apply this action to all files and folders")); - - gtk_box_pack_start (GTK_BOX (vbox), - widget, FALSE, FALSE, 0); - details->checkbox = widget; - g_signal_connect (widget, "toggled", - G_CALLBACK (checkbox_toggled_cb), dialog); - - /* Add buttons */ + GtkWidget *hbox, *vbox, *vbox2; + GtkWidget *widget, *dialog_area; + NautilusFileConflictDialogDetails *details; + GtkDialog *dialog; + + details = fcd->details = NAUTILUS_FILE_CONFLICT_DIALOG_GET_PRIVATE (fcd); + dialog = GTK_DIALOG (fcd); + + /* Setup the main hbox */ + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + dialog_area = gtk_dialog_get_content_area (dialog); + gtk_box_pack_start (GTK_BOX (dialog_area), hbox, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); + + /* Setup the dialog image */ + widget = gtk_image_new_from_icon_name ("dialog-warning", + GTK_ICON_SIZE_DIALOG); + gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); + gtk_widget_set_valign (widget, GTK_ALIGN_START); + + /* Setup the vbox containing the dialog body */ + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); + + /* Setup the vbox for the dialog labels */ + widget = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0); + details->titles_vbox = widget; + + /* Setup the hboxes to pack file infos into */ + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_widget_set_halign (vbox2, GTK_ALIGN_START); + gtk_widget_set_margin_start (vbox2, 12); + gtk_box_pack_start (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); + details->first_hbox = hbox; + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); + details->second_hbox = hbox; + + /* Setup the expander for the rename action */ + details->expander = gtk_expander_new_with_mnemonic (_("_Select a new name for the destination")); + gtk_box_pack_start (GTK_BOX (vbox2), details->expander, FALSE, FALSE, 0); + g_signal_connect (details->expander, "activate", + G_CALLBACK (expander_activated_cb), dialog); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_container_add (GTK_CONTAINER (details->expander), hbox); + + widget = gtk_entry_new (); + gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 6); + details->entry = widget; + g_signal_connect (widget, "changed", + G_CALLBACK (entry_text_changed_cb), dialog); + + widget = gtk_button_new_with_label (_("Reset")); + gtk_button_set_image (GTK_BUTTON (widget), + gtk_image_new_from_icon_name ("edit-undo", + GTK_ICON_SIZE_MENU)); + gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 6); + g_signal_connect (widget, "clicked", + G_CALLBACK (reset_button_clicked_cb), dialog); + + gtk_widget_show_all (vbox2); + + + /* Setup the checkbox to apply the action to all files */ + widget = gtk_check_button_new_with_mnemonic (_("Apply this action to all files and folders")); + + gtk_box_pack_start (GTK_BOX (vbox), + widget, FALSE, FALSE, 0); + details->checkbox = widget; + g_signal_connect (widget, "toggled", + G_CALLBACK (checkbox_toggled_cb), dialog); + + /* Add buttons */ + gtk_dialog_add_button (dialog, + _("_Cancel"), + GTK_RESPONSE_CANCEL); + + details->skip_button = gtk_dialog_add_button (dialog, - _("_Cancel"), - GTK_RESPONSE_CANCEL); - - details->skip_button = - gtk_dialog_add_button (dialog, - _("_Skip"), - CONFLICT_RESPONSE_SKIP); - - details->rename_button = - gtk_dialog_add_button (dialog, - _("Re_name"), - CONFLICT_RESPONSE_RENAME); - gtk_widget_hide (details->rename_button); - - details->replace_button = - gtk_dialog_add_button (dialog, - _("Replace"), - CONFLICT_RESPONSE_REPLACE); - gtk_widget_grab_focus (details->replace_button); - - /* Setup HIG properties */ - gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); - gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (dialog)), 14); - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); - - gtk_widget_show_all (dialog_area); + _("_Skip"), + CONFLICT_RESPONSE_SKIP); + + details->rename_button = + gtk_dialog_add_button (dialog, + _("Re_name"), + CONFLICT_RESPONSE_RENAME); + gtk_widget_hide (details->rename_button); + + details->replace_button = + gtk_dialog_add_button (dialog, + _("Replace"), + CONFLICT_RESPONSE_REPLACE); + gtk_widget_grab_focus (details->replace_button); + + /* Setup HIG properties */ + gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); + gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (dialog)), 14); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + gtk_widget_show_all (dialog_area); } static void do_finalize (GObject *self) { - NautilusFileConflictDialogDetails *details = - NAUTILUS_FILE_CONFLICT_DIALOG (self)->details; + NautilusFileConflictDialogDetails *details = + NAUTILUS_FILE_CONFLICT_DIALOG (self)->details; - g_free (details->conflict_name); + g_free (details->conflict_name); - G_OBJECT_CLASS (nautilus_file_conflict_dialog_parent_class)->finalize (self); + G_OBJECT_CLASS (nautilus_file_conflict_dialog_parent_class)->finalize (self); } static void nautilus_file_conflict_dialog_class_init (NautilusFileConflictDialogClass *klass) { - G_OBJECT_CLASS (klass)->finalize = do_finalize; + G_OBJECT_CLASS (klass)->finalize = do_finalize; - g_type_class_add_private (klass, sizeof (NautilusFileConflictDialogDetails)); + g_type_class_add_private (klass, sizeof (NautilusFileConflictDialogDetails)); } char * nautilus_file_conflict_dialog_get_new_name (NautilusFileConflictDialog *dialog) { - return g_strdup (gtk_entry_get_text - (GTK_ENTRY (dialog->details->entry))); + return g_strdup (gtk_entry_get_text + (GTK_ENTRY (dialog->details->entry))); } gboolean nautilus_file_conflict_dialog_get_apply_to_all (NautilusFileConflictDialog *dialog) { - return gtk_toggle_button_get_active - (GTK_TOGGLE_BUTTON (dialog->details->checkbox)); + return gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON (dialog->details->checkbox)); } NautilusFileConflictDialog * nautilus_file_conflict_dialog_new (GtkWindow *parent) { - NautilusFileConflictDialog *dialog; + NautilusFileConflictDialog *dialog; - dialog = NAUTILUS_FILE_CONFLICT_DIALOG (g_object_new (NAUTILUS_TYPE_FILE_CONFLICT_DIALOG, - "use-header-bar", TRUE, - "modal", TRUE, - NULL)); + dialog = NAUTILUS_FILE_CONFLICT_DIALOG (g_object_new (NAUTILUS_TYPE_FILE_CONFLICT_DIALOG, + "use-header-bar", TRUE, + "modal", TRUE, + NULL)); - gtk_window_set_transient_for (GTK_WINDOW (dialog), - parent); + gtk_window_set_transient_for (GTK_WINDOW (dialog), + parent); - return dialog; + return dialog; } |