class ProjectLibraryMoveOperation

Project library operation that moves a file or a folder to another location.

Note the operation cannot overwrite existing files, and will skip such files.

Public

Constructors

ProjectLibraryMoveOperation

ProjectLibraryMoveOperation(const ProjectLibraryOperationContext &context, const Path &sourceRelativePath, const Path &destinationRelativePath)

Constructs the operation.

context
Project library context the operation is being executed in.
sourceRelativePath
Path of the file or folder to move. Relative to the project library imported resources folder.
destinationRelativePath
Path to the new location of the source file or folder. Relative to the project library imported resources folder.

Methods

PrepareOnMainThread

Result PrepareOnMainThread() override

Performs the first stage of the operation.

Verifies the input parameters are correct, creates library database entries (if possible) and returns success if operation will proceed to execute. Executed on the main thread.

Returns: Operation result and optional error message if failed.

RunOnWorkerThread

void RunOnWorkerThread() override

Performs the second stage of the operation.

Performs longer lasting tasks such as saving or loading a package, copying a file or generating preview icons. Executed on a worker thread.

FinalizeOnMainThread

void FinalizeOnMainThread() override

Performs the last stage of the operation.

This will be called after the worker thread completes. Will ensure the entries in the project library database match to packages written by the worker thread.

Private

Methods

MovePackage

void MovePackage(const Path &sourceRelativePath, const Path &destinationRelativePath, bool isSynchronizedPackage)

Moves a single package associated with one or multiple resources at the provided path.

sourceRelativePath
Path to the imported package to move. Relative to the project library imported resources folder.
destinationRelativePath
Path to the new location of the moved package. Relative to the project library imported resources folder.
isSynchronizedPackage
True if we're moving a package containing resources synchronized with a source resource (such package package may contain more than one resource, and they are read-only).

Fields

mMoveOperationOutput

mSourceRelativePath

Path mSourceRelativePath

mDestinationRelativePath

Path mDestinationRelativePath