diff options
author | Carlos Soriano <csoriano@gnome.org> | 2016-09-15 18:11:33 +0200 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2016-09-20 16:44:35 +0200 |
commit | b5a906a1d86137a78a03b680c0f373c6acdac886 (patch) | |
tree | 21da94b7f29e00cce50ef8da87bc36eff58b695c | |
parent | a73a7126a5c58988b35dcc6ae63fce81de63d110 (diff) | |
download | nautilus-b5a906a1d86137a78a03b680c0f373c6acdac886.tar.gz |
batch-rename: use nautilus files for cleaner code
We were using gchar* for uris, instead of actual files, and converting
back and forward.
Instead use directly nautilus files.
-rw-r--r-- | src/nautilus-batch-rename-dialog.c | 6 | ||||
-rw-r--r-- | src/nautilus-batch-rename-utilities.c | 41 |
2 files changed, 21 insertions, 26 deletions
diff --git a/src/nautilus-batch-rename-dialog.c b/src/nautilus-batch-rename-dialog.c index 8e3008f82..0f259b249 100644 --- a/src/nautilus-batch-rename-dialog.c +++ b/src/nautilus-batch-rename-dialog.c @@ -1288,10 +1288,8 @@ file_names_list_has_duplicates_async_thread (GTask *task, g_mutex_lock (&task_data->wait_ready_mutex); task_data->directory_conflicts_ready = FALSE; - directory_conflict_uri = l->data; - conflict_directory = nautilus_directory_get_by_uri (directory_conflict_uri); - nautilus_directory_call_when_ready (conflict_directory, + nautilus_directory_call_when_ready (l->data, NAUTILUS_FILE_ATTRIBUTE_INFO, TRUE, on_directory_conflicts_ready, @@ -1307,10 +1305,10 @@ file_names_list_has_duplicates_async_thread (GTask *task, g_mutex_unlock (&task_data->wait_ready_mutex); - nautilus_directory_unref (conflict_directory); } g_task_return_boolean (task, TRUE); + nautilus_directory_list_free (directories); } static void diff --git a/src/nautilus-batch-rename-utilities.c b/src/nautilus-batch-rename-utilities.c index 3a855ac03..1b09ef178 100644 --- a/src/nautilus-batch-rename-utilities.c +++ b/src/nautilus-batch-rename-utilities.c @@ -995,42 +995,39 @@ check_metadata_for_selection (NautilusBatchRenameDialog *dialog, g_string_free (query, TRUE); } +static gint +compare_files (gpointer a, + gpointer b) +{ + NautilusFile *file1 = NAUTILUS_FILE (a); + NautilusFile *file2 = NAUTILUS_FILE (b); + g_autoptr (GFile) location1 = nautilus_file_get_location (file1); + g_autoptr (GFile) location2 = nautilus_file_get_location (file2); + + return g_file_equal (location1, location2) ? 0 : 1; +} + GList * batch_rename_files_get_distinct_parents (GList *selection) { GList *result; GList *l1; - GList *l2; NautilusFile *file; - gboolean exists; - gchar *parent_uri; + NautilusFile *directory; + GFile *parent; result = NULL; - for (l1 = selection; l1 != NULL; l1 = l1->next) { - exists = FALSE; - file = NAUTILUS_FILE (l1->data); - parent_uri = nautilus_file_get_parent_uri (file); - - for (l2 = result; l2 != NULL; l2 = l2->next) + parent = nautilus_file_get_parent (file); + directory = nautilus_directory_get_for_file (parent); + if (!g_list_find (result, directory)) { - if (g_strcmp0 (parent_uri, l2->data) == 0) - { - exists = TRUE; - break; - } + result = g_list_prepend (result, directory); } - if (!exists) - { - result = g_list_prepend (result, parent_uri); - } - else - { - g_free (parent_uri); - } + nautilus_file_unref (parent); } return result; |