Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Unified Diff: chrome/browser/resources/file_manager/js/file_copy_manager.js

Issue 9949069: Fix cut/paste on the same volume. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review fixes. Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/file_manager/js/file_copy_manager.js
diff --git a/chrome/browser/resources/file_manager/js/file_copy_manager.js b/chrome/browser/resources/file_manager/js/file_copy_manager.js
index 421d37b98ba31a579359c489a0b947c2930155c3..b5b59bb3644454f96e62a5b8f4b72eb601e0c1d8 100644
--- a/chrome/browser/resources/file_manager/js/file_copy_manager.js
+++ b/chrome/browser/resources/file_manager/js/file_copy_manager.js
@@ -34,6 +34,7 @@ FileCopyManager.Task = function(sourceDirEntry, targetDirEntry) {
this.completedBytes = 0;
this.deleteAfterCopy = false;
+ this.move = false;
this.sourceOnGData = false;
this.targetOnGData = false;
@@ -58,8 +59,7 @@ FileCopyManager.Task.prototype.setEntries = function(entries, callback) {
this.originalEntries = entries;
// When moving directories, FileEntry.moveTo() is used if both source
// and target are on GData. There is no need to recurse into directories.
- var recurse = !(this.deleteAfterCopy &&
- this.sourceOnGData && this.targetOnGData);
+ var recurse = !this.move;
util.recurseAndResolveEntries(entries, recurse, onEntriesRecursed);
}
@@ -338,7 +338,14 @@ FileCopyManager.prototype.queueCopy = function(sourceDirEntry,
targetOnGData) {
var self = this;
var copyTask = new FileCopyManager.Task(sourceDirEntry, targetDirEntry);
- copyTask.deleteAfterCopy = deleteAfterCopy;
+ if (deleteAfterCopy) {
+ if (DirectoryModel.getRootPath(sourceDirEntry.fullPath) ==
+ DirectoryModel.getRootPath(targetDirEntry.fullPath)) {
+ copyTask.move = true;
+ } else {
+ copyTask.deleteAfterCopy = true;
+ }
+ }
copyTask.sourceOnGData = sourceOnGData;
copyTask.targetOnGData = targetOnGData;
copyTask.setEntries(entries, function() {
@@ -433,11 +440,7 @@ FileCopyManager.prototype.serviceNextTask_ = function(
// We should not dispatch a PROGRESS event when there is no pending items
// in the task.
if (task.pendingDirectories.length + task.pendingFiles.length == 0) {
- // All done with the entries in this task.
- // If files are moved within GData, FileEntry.moveTo() is used and
- // there is no need to delete the original files.
- var sourceAndTargetOnGData = task.sourceOnGData && task.targetOnGData;
- if (task.deleteAfterCopy && !sourceAndTargetOnGData) {
+ if (task.deleteAfterCopy) {
deleteOriginals();
} else {
onTaskComplete();
@@ -605,9 +608,7 @@ FileCopyManager.prototype.serviceNextTaskEntry_ = function(
if (err.code != FileError.NOT_FOUND_ERR)
return onError('FILESYSTEM_ERROR', err);
- if (task.deleteAfterCopy &&
- DirectoryModel.getRootPath(sourceEntry.fullPath) ==
- DirectoryModel.getRootPath(targetDirEntry.fullPath)) {
+ if (task.move) {
resolveDirAndBaseName(
targetDirEntry, targetRelativePath,
function(dirEntry, fileName) {
@@ -616,13 +617,10 @@ FileCopyManager.prototype.serviceNextTaskEntry_ = function(
onFilesystemError);
},
onFilesystemError);
- // Since the file has been moved (not copied) the original file doesn't
- // need to be deleted.
- task.deleteAfterCopy = false;
return;
}
- if (task.sourceOnGData && task.targetOnGData && !task.deleteAfterCopy) {
+ if (task.sourceOnGData && task.targetOnGData) {
// TODO(benchan): GDataFileSystem has not implemented directory copy,
// and thus we only call FileEntry.copyTo() for files. Revisit this
// code when GDataFileSystem supports directory copy.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698