[nautilus/1344-be-a-little-more-helpful-with-renaming-duplicate-files] file-conflict-dialog: Tie default action to expander
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/1344-be-a-little-more-helpful-with-renaming-duplicate-files] file-conflict-dialog: Tie default action to expander
- Date: Sat, 8 Feb 2020 20:12:01 +0000 (UTC)
commit 5e00eb0b4ddd13aa0b881b7f5358affb4158cc29
Author: António Fernandes <antoniof gnome org>
Date: Wed Jan 29 23:36:59 2020 +0000
file-conflict-dialog: Tie default action to expander
The default action "Replace" is changed to "Rename" if a different name
is set in the entry inside the "Select a new name..." expander.
This means we have unconsistent UI states, when "Select a new name..."
is expanded but the action is "Replace", and when it is collapsed but
the default action is "Rename".
Instead, let's tie the default action to the expander's state.
src/nautilus-file-conflict-dialog.c | 48 ++++++++++++++++++-------------------
1 file changed, 24 insertions(+), 24 deletions(-)
---
diff --git a/src/nautilus-file-conflict-dialog.c b/src/nautilus-file-conflict-dialog.c
index fdcaf2d81..8adb4bb14 100644
--- a/src/nautilus-file-conflict-dialog.c
+++ b/src/nautilus-file-conflict-dialog.c
@@ -168,38 +168,32 @@ static void
entry_text_changed_cb (GtkEditable *entry,
NautilusFileConflictDialog *dialog)
{
- /* 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)), dialog->conflict_name) != 0)
{
- gtk_widget_hide (dialog->replace_button);
- gtk_widget_show (dialog->rename_button);
-
- gtk_widget_set_sensitive (dialog->checkbox, FALSE);
-
- gtk_dialog_set_default_response (GTK_DIALOG (dialog), CONFLICT_RESPONSE_RENAME);
+ gtk_widget_set_sensitive (dialog->rename_button, TRUE);
}
else
{
- gtk_widget_hide (dialog->rename_button);
- gtk_widget_show (dialog->replace_button);
-
- gtk_widget_set_sensitive (dialog->checkbox, TRUE);
-
- gtk_dialog_set_default_response (GTK_DIALOG (dialog), CONFLICT_RESPONSE_REPLACE);
+ gtk_widget_set_sensitive (dialog->rename_button, FALSE);
}
}
static void
-expander_activated_cb (GtkExpander *w,
- NautilusFileConflictDialog *dialog)
+on_expanded_notify (GtkExpander *w,
+ GParamSpec *pspec,
+ NautilusFileConflictDialog *dialog)
{
int start_pos, end_pos;
- if (!gtk_expander_get_expanded (w))
+ if (gtk_expander_get_expanded (w))
{
+ gtk_widget_hide (dialog->replace_button);
+ gtk_widget_show (dialog->rename_button);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), CONFLICT_RESPONSE_RENAME);
+
+ gtk_widget_set_sensitive (dialog->checkbox, FALSE);
+
if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (dialog->entry)), dialog->conflict_name) == 0)
{
gtk_widget_grab_focus (dialog->entry);
@@ -208,6 +202,14 @@ expander_activated_cb (GtkExpander *w,
gtk_editable_select_region (GTK_EDITABLE (dialog->entry), start_pos, end_pos);
}
}
+ else
+ {
+ gtk_widget_hide (dialog->rename_button);
+ gtk_widget_show (dialog->replace_button);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), CONFLICT_RESPONSE_REPLACE);
+
+ gtk_widget_set_sensitive (dialog->checkbox, TRUE);
+ }
}
static void
@@ -215,11 +217,8 @@ checkbox_toggled_cb (GtkToggleButton *t,
NautilusFileConflictDialog *dialog)
{
gtk_widget_set_sensitive (dialog->expander, !gtk_toggle_button_get_active (t));
- gtk_widget_set_sensitive (dialog->rename_button, !gtk_toggle_button_get_active (t));
- if (!gtk_toggle_button_get_active (t) &&
- g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (dialog->entry)), "") != 0 &&
- g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (dialog->entry)), dialog->conflict_name) != 0)
+ if (!gtk_toggle_button_get_active (t))
{
gtk_widget_hide (dialog->replace_button);
gtk_widget_show (dialog->rename_button);
@@ -290,8 +289,8 @@ nautilus_file_conflict_dialog_init (NautilusFileConflictDialog *fcd)
/* Setup the expander for the rename action */
fcd->expander = gtk_expander_new_with_mnemonic (_("_Select a new name for the destination"));
gtk_box_pack_start (GTK_BOX (vbox2), fcd->expander, FALSE, FALSE, 0);
- g_signal_connect (fcd->expander, "activate",
- G_CALLBACK (expander_activated_cb), dialog);
+ g_signal_connect (fcd->expander, "notify::expanded",
+ G_CALLBACK (on_expanded_notify), dialog);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
gtk_container_add (GTK_CONTAINER (fcd->expander), hbox);
@@ -332,6 +331,7 @@ nautilus_file_conflict_dialog_init (NautilusFileConflictDialog *fcd)
_("Re_name"),
CONFLICT_RESPONSE_RENAME);
gtk_widget_hide (fcd->rename_button);
+ gtk_widget_set_no_show_all (fcd->rename_button, TRUE);
fcd->replace_button = gtk_dialog_add_button (dialog,
_("Re_place"),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]