diff options
author | António Fernandes <antoniof@gnome.org> | 2020-02-08 19:53:51 +0000 |
---|---|---|
committer | António Fernandes <antoniojpfernandes@gmail.com> | 2021-02-12 16:29:57 +0000 |
commit | 9108b4028b7f476b598bc664079fd6d115801b66 (patch) | |
tree | be3e8b8677cc594e836598028f5da53a0c622892 | |
parent | 867e60521b039589bb1c017763f27c0497e09776 (diff) | |
download | nautilus-9108b4028b7f476b598bc664079fd6d115801b66.tar.gz |
file-conflict-dialog: Make manual rename more convenient
The suggested name is in the form "original (1).txt", if the the
conflicting name was "original.txt".
The user may want to replace the "(1)" bits with something more
meaningful, so select this region for convenience.
-rw-r--r-- | src/nautilus-file-conflict-dialog.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/nautilus-file-conflict-dialog.c b/src/nautilus-file-conflict-dialog.c index f51a5edbb..2bbe37fef 100644 --- a/src/nautilus-file-conflict-dialog.c +++ b/src/nautilus-file-conflict-dialog.c @@ -196,8 +196,6 @@ on_expanded_notify (GtkExpander *w, GParamSpec *pspec, NautilusFileConflictDialog *dialog) { - int start_pos, end_pos; - if (gtk_expander_get_expanded (w)) { gtk_widget_hide (dialog->replace_button); @@ -206,11 +204,24 @@ on_expanded_notify (GtkExpander *w, 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); + if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (dialog->entry)), dialog->suggested_name) == 0) { - gtk_widget_grab_focus (dialog->entry); + /* The suggested name is in the form "original (1).txt", if the + * the conflicting name was "original.txt". The user may want to + * replace the "(1)" bits with with something more meaningful, so + * select this region for convenience. */ + + const gchar *offset; + int start_pos; + int end_pos; + + offset = eel_filename_get_extension_offset (dialog->conflict_name); + start_pos = g_utf8_pointer_to_offset (dialog->conflict_name, offset); + + offset = eel_filename_get_extension_offset (dialog->suggested_name); + end_pos = g_utf8_pointer_to_offset (dialog->suggested_name, offset); - eel_filename_get_rename_region (dialog->conflict_name, &start_pos, &end_pos); gtk_editable_select_region (GTK_EDITABLE (dialog->entry), start_pos, end_pos); } } |