[nautilus/1344-be-a-little-more-helpful-with-renaming-duplicate-files] file-conflict-dialog: Make manual rename more convenient




commit b723f24eeeacd01f6d57b76489f9f76a06149fe2
Author: António Fernandes <antoniof gnome org>
Date:   Sat Feb 8 19:53:51 2020 +0000

    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.

 src/nautilus-file-conflict-dialog.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/src/nautilus-file-conflict-dialog.c b/src/nautilus-file-conflict-dialog.c
index c48bd7bfb..1cd967682 100644
--- a/src/nautilus-file-conflict-dialog.c
+++ b/src/nautilus-file-conflict-dialog.c
@@ -191,8 +191,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);
@@ -201,11 +199,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);
         }
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]