[nautilus] Also change filename on disk when renaming a .desktop file (#145125)
- From: Marcus Carlson <mdc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] Also change filename on disk when renaming a .desktop file (#145125)
- Date: Sun, 11 Jul 2010 19:31:45 +0000 (UTC)
commit 0a1cf043c9ec90b7b3da7e454eb860c5e2347866
Author: Marcus Carlson <mdc src gnome org>
Date: Sun Jul 11 21:27:13 2010 +0200
Also change filename on disk when renaming a .desktop file (#145125)
libnautilus-private/nautilus-file.c | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
---
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 89bbb98..2c5b868 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -1790,6 +1790,7 @@ nautilus_file_rename (NautilusFile *file,
NautilusFileOperation *op;
char *uri;
char *old_name;
+ char *new_file_name;
gboolean success, name_changed;
gboolean is_renameable_desktop_file;
GFile *location;
@@ -1902,21 +1903,29 @@ nautilus_file_rename (NautilusFile *file,
g_free (old_name);
g_free (uri);
- if (success) {
+ if (!success) {
+ error = g_error_new (G_IO_ERROR, G_IO_ERROR_FAILED,
+ _("Unable to rename desktop file"));
+ (* callback) (file, NULL, error, callback_data);
+ g_error_free (error);
+ return;
+ }
+ new_file_name = g_strdup_printf ("%s.desktop", new_name);
+ new_file_name = g_strdelimit (new_file_name, "/", '-');
+
+ if (name_is (file, new_file_name)) {
if (name_changed) {
nautilus_file_invalidate_attributes (file,
NAUTILUS_FILE_ATTRIBUTE_INFO |
NAUTILUS_FILE_ATTRIBUTE_LINK_INFO);
}
+
(* callback) (file, NULL, NULL, callback_data);
- return;
- } else {
- error = g_error_new (G_IO_ERROR, G_IO_ERROR_FAILED,
- _("Unable to rename desktop file"));
- (* callback) (file, NULL, error, callback_data);
- g_error_free (error);
+ g_free (new_file_name);
return;
}
+ } else {
+ new_file_name = g_strdup (new_name);
}
/* Set up a renaming operation. */
@@ -1927,11 +1936,12 @@ nautilus_file_rename (NautilusFile *file,
location = nautilus_file_get_location (file);
g_file_set_display_name_async (location,
- new_name,
+ new_file_name,
G_PRIORITY_DEFAULT,
op->cancellable,
rename_callback,
op);
+ g_free (new_file_name);
g_object_unref (location);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]