[nautilus] file/file-operations: adapt to changes in file undo manager
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] file/file-operations: adapt to changes in file undo manager
- Date: Sat, 21 Jan 2012 03:19:04 +0000 (UTC)
commit aac633c6d66d7dd9753b645e88657a7f6257e8eb
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Jan 20 22:04:13 2012 -0500
file/file-operations: adapt to changes in file undo manager
And fix some typos.
libnautilus-private/nautilus-file-operations.c | 65 +++++++++++++----------
libnautilus-private/nautilus-file-private.h | 2 +-
libnautilus-private/nautilus-file.c | 21 ++++----
3 files changed, 48 insertions(+), 40 deletions(-)
---
diff --git a/libnautilus-private/nautilus-file-operations.c b/libnautilus-private/nautilus-file-operations.c
index 7873888..e8a858a 100644
--- a/libnautilus-private/nautilus-file-operations.c
+++ b/libnautilus-private/nautilus-file-operations.c
@@ -958,8 +958,7 @@ finalize_common (CommonJob *common)
}
if (common->undo_info != NULL) {
- nautilus_file_undo_manager_add_action (nautilus_file_undo_manager_get (),
- common->undo_info);
+ nautilus_file_undo_manager_set_action (common->undo_info);
g_object_unref (common->undo_info);
}
@@ -1763,7 +1762,7 @@ trash_files (CommonJob *job, GList *files, int *files_skipped)
int total_files, files_trashed;
char *primary, *secondary, *details;
int response;
-
+ GFileInfo *info;
guint64 mtime;
if (job_aborted (job)) {
@@ -1783,8 +1782,6 @@ trash_files (CommonJob *job, GList *files, int *files_skipped)
error = NULL;
- mtime = nautilus_file_undo_manager_get_file_modification_time (file);
-
if (!g_file_trash (file, job->cancellable, &error)) {
if (job->skip_all_error) {
(*files_skipped)++;
@@ -1832,8 +1829,21 @@ trash_files (CommonJob *job, GList *files, int *files_skipped)
} else {
nautilus_file_changes_queue_file_removed (file);
- if (job->undo_redo_data != NULL) {
- nautilus_file_undo_data_add_trashed_file (job->undo_redo_data, file, mtime);
+ if (job->undo_info != NULL) {
+ info = g_file_query_info (file,
+ G_FILE_ATTRIBUTE_TIME_MODIFIED,
+ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
+ NULL, NULL);
+
+ if (info != NULL) {
+ mtime = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED);
+ g_object_unref (info);
+ } else {
+ mtime = -1;
+ }
+
+ nautilus_file_undo_info_trash_add_file (NAUTILUS_FILE_UNDO_INFO_TRASH (job->undo_info),
+ file, mtime);
}
files_trashed++;
@@ -1979,7 +1989,7 @@ trash_or_delete_internal (GList *files,
inhibit_power_manager ((CommonJob *)job, _("Deleting Files"));
}
- if (try_trash && !nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (try_trash && !nautilus_file_undo_manager_pop_flag ()) {
job->common.undo_info = nautilus_file_undo_info_trash_new (g_list_length (files));
}
@@ -4623,7 +4633,7 @@ nautilus_file_operations_copy (GList *files,
inhibit_power_manager ((CommonJob *)job, _("Copying Files"));
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
GFile* src_dir;
src_dir = g_file_get_parent (files->data);
@@ -4792,7 +4802,8 @@ move_file_prepare (CopyMoveJob *move_job,
}
if (job->undo_info != NULL) {
- nautilus_file_undo_info_ext_add_origin_target_pair (job->undo_info, src, dest);
+ nautilus_file_undo_info_ext_add_origin_target_pair (NAUTILUS_FILE_UNDO_INFO_EXT (job->undo_info),
+ src, dest);
}
return;
@@ -5157,7 +5168,7 @@ nautilus_file_operations_move (GList *files,
inhibit_power_manager ((CommonJob *)job, _("Moving Files"));
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
GFile* src_dir;
src_dir = g_file_get_parent (files->data);
@@ -5270,7 +5281,8 @@ link_file (CopyMoveJob *job,
&error)) {
if (common->undo_info != NULL) {
- nautilus_file_undo_info_ext_add_origin_target_pair (common->undo_info, src, dest);
+ nautilus_file_undo_info_ext_add_origin_target_pair (NAUTILUS_FILE_UNDO_INFO_EXT (common->undo_info),
+ src, dest);
}
g_free (path);
@@ -5480,7 +5492,7 @@ nautilus_file_operations_link (GList *files,
}
job->debuting_files = g_hash_table_new_full (g_file_hash, (GEqualFunc)g_file_equal, g_object_unref, NULL);
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
GFile* src_dir;
src_dir = g_file_get_parent (files->data);
@@ -5521,7 +5533,7 @@ nautilus_file_operations_duplicate (GList *files,
}
job->debuting_files = g_hash_table_new_full (g_file_hash, (GEqualFunc)g_file_equal, g_object_unref, NULL);
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
GFile* src_dir;
src_dir = g_file_get_parent (files->data);
@@ -5604,7 +5616,7 @@ set_permissions_file (SetPermissionsJob *job,
current = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE);
if (common->undo_info != NULL) {
- nautilus_file_undo_info_rec_permissions_add_file (common->undo_info,
+ nautilus_file_undo_info_rec_permissions_add_file (NAUTILUS_FILE_UNDO_INFO_REC_PERMISSIONS (common->undo_info),
file, current);
}
@@ -5691,7 +5703,7 @@ nautilus_file_set_permissions_recursive (const char *directory,
job->done_callback = callback;
job->done_callback_data = callback_data;
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
job->common.undo_info =
nautilus_file_undo_info_rec_permissions_new (job->file,
file_permissions, file_mask,
@@ -5956,9 +5968,8 @@ create_job (GIOSchedulerJob *io_job,
&error);
if (res && common->undo_info != NULL) {
- nautilus_file_undo_info_create_set_data (common->undo_info,
- dest,
- NULL);
+ nautilus_file_undo_info_create_set_data (NAUTILUS_FILE_UNDO_INFO_CREATE (common->undo_info),
+ dest, NULL, 0);
}
} else {
@@ -5974,8 +5985,8 @@ create_job (GIOSchedulerJob *io_job,
gchar *uri;
uri = g_file_get_uri (job->src);
- nautilus_file_undo_info_create_set_data (common->undo_info,
- dest, uri);
+ nautilus_file_undo_info_create_set_data (NAUTILUS_FILE_UNDO_INFO_CREATE (common->undo_info),
+ dest, uri, 0);
g_free (uri);
}
@@ -6004,8 +6015,8 @@ create_job (GIOSchedulerJob *io_job,
&error);
if (res && common->undo_info != NULL) {
- nautilus_file_undo_info_create_set_data (common->undo_info,
- dest, data);
+ nautilus_file_undo_info_create_set_data (NAUTILUS_FILE_UNDO_INFO_CREATE (common->undo_info),
+ dest, data, length);
}
}
@@ -6177,7 +6188,7 @@ nautilus_file_operations_new_folder (GtkWidget *parent_view,
job->has_position = TRUE;
}
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
job->common.undo_info = nautilus_file_undo_info_create_new (NAUTILUS_FILE_UNDO_OP_CREATE_FOLDER);
}
@@ -6219,7 +6230,7 @@ nautilus_file_operations_new_file_from_template (GtkWidget *parent_view,
job->src = g_file_new_for_uri (template_uri);
}
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
job->common.undo_info = nautilus_file_undo_info_create_new (NAUTILUS_FILE_UNDO_OP_CREATE_FILE_FROM_TEMPLATE);
}
@@ -6260,7 +6271,7 @@ nautilus_file_operations_new_file (GtkWidget *parent_view,
job->length = length;
job->filename = g_strdup (target_filename);
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
job->common.undo_info = nautilus_file_undo_info_create_new (NAUTILUS_FILE_UNDO_OP_CREATE_EMPTY_FILE);
}
@@ -6327,8 +6338,6 @@ empty_trash_job_done (gpointer user_data)
job->done_callback (!job_aborted ((CommonJob *) job),
job->done_callback_data);
}
-
- nautilus_file_undo_manager_trash_has_emptied (nautilus_file_undo_manager_get ());
finalize_common ((CommonJob *)job);
return FALSE;
diff --git a/libnautilus-private/nautilus-file-private.h b/libnautilus-private/nautilus-file-private.h
index 764f4a1..1a90ef1 100644
--- a/libnautilus-private/nautilus-file-private.h
+++ b/libnautilus-private/nautilus-file-private.h
@@ -28,7 +28,7 @@
#include <libnautilus-private/nautilus-directory.h>
#include <libnautilus-private/nautilus-file.h>
#include <libnautilus-private/nautilus-monitor.h>
-#include <libnautilus-private/nautilus-file-undo-types.h>
+#include <libnautilus-private/nautilus-file-undo-operations.h>
#include <eel/eel-glib-extensions.h>
#include <eel/eel-string.h>
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index fe8f012..5c5f338 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -1655,7 +1655,7 @@ nautilus_file_operation_free (NautilusFileOperation *op)
}
if (op->undo_info != NULL) {
- nautilus_file_undo_manager_add_action (nautilus_file_undo_manager_get (), op->undo_info);
+ nautilus_file_undo_manager_set_action (op->undo_info);
}
g_free (op);
@@ -1940,7 +1940,7 @@ nautilus_file_rename (NautilusFile *file,
location = nautilus_file_get_location (file);
/* Tell the undo manager a rename is taking place */
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
op->undo_info = nautilus_file_undo_info_rename_new ();
}
@@ -5071,14 +5071,13 @@ nautilus_file_set_permissions (NautilusFile *file,
return;
}
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
NautilusFileUndoInfo *undo_info;
undo_info = nautilus_file_undo_info_permissions_new (nautilus_file_get_location (file),
file->details->permissions,
new_permissions);
- nautilus_file_undo_manager_add_action (nautilus_file_undo_manager_get (),
- undo_info);
+ nautilus_file_undo_manager_set_action (undo_info);
}
info = g_file_info_new ();
@@ -5385,7 +5384,7 @@ nautilus_file_set_owner (NautilusFile *file,
return;
}
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
+ if (!nautilus_file_undo_manager_pop_flag ()) {
NautilusFileUndoInfo *undo_info;
char* current_owner;
@@ -5395,7 +5394,7 @@ nautilus_file_set_owner (NautilusFile *file,
nautilus_file_get_location (file),
current_owner,
user_name_or_id);
- nautilus_file_undo_manager_add_action (nautilus_file_undo_manager_get (), undo_info);
+ nautilus_file_undo_manager_set_action (undo_info);
g_free (current_owner);
}
@@ -5663,16 +5662,16 @@ nautilus_file_set_group (NautilusFile *file,
return;
}
- if (!nautilus_file_undo_manager_is_undo_redo (nautilus_file_undo_manager_get ())) {
- NautilusFileUndoData *undo_info;
+ if (!nautilus_file_undo_manager_pop_flag ()) {
+ NautilusFileUndoInfo *undo_info;
char *current_group;
current_group = nautilus_file_get_group_name (file);
- undo_info = nautilus_file_undo_info_ownership_new (NAUTILUS_FILE_UNDO_CHANGE_GROUP,
+ undo_info = nautilus_file_undo_info_ownership_new (NAUTILUS_FILE_UNDO_OP_CHANGE_GROUP,
nautilus_file_get_location (file),
current_group,
group_name_or_id);
- nautilus_file_undo_manager_add_action (nautilus_file_undo_manager_get (), undo_info);
+ nautilus_file_undo_manager_set_action (undo_info);
g_free (current_group);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]