21 #ifndef FM_FILEOPERATION_H 22 #define FM_FILEOPERATION_H 24 #include "libfmqtglobals.h" 26 #include <QElapsedTimer> 33 class FileOperationDialog;
39 Copy = FM_FILE_OP_COPY,
40 Move = FM_FILE_OP_MOVE,
41 Link = FM_FILE_OP_LINK,
42 Delete = FM_FILE_OP_DELETE,
43 Trash = FM_FILE_OP_TRASH,
44 UnTrash = FM_FILE_OP_UNTRASH,
45 ChangeAttr = FM_FILE_OP_CHANGE_ATTR
49 explicit FileOperation(Type type, FmPathList* srcFiles, QObject* parent = 0);
52 void setDestination(FmPath* dest) {
53 destPath = fm_path_ref(dest);
54 fm_file_ops_job_set_dest(job_, dest);
57 void setChmod(mode_t newMode, mode_t newModeMask) {
58 fm_file_ops_job_set_chmod(job_, newMode, newModeMask);
61 void setChown(gint uid, gint gid) {
62 fm_file_ops_job_set_chown(job_, uid, gid);
66 void setRecursiveChattr(
bool recursive) {
67 fm_file_ops_job_set_recursive(job_, (gboolean)recursive);
74 fm_job_cancel(FM_JOB(job_));
77 bool isRunning()
const {
78 return job_ ? fm_job_is_running(FM_JOB(job_)) :
false;
81 bool isCancelled()
const {
82 return job_ ? fm_job_is_cancelled(FM_JOB(job_)) :
false;
92 void setAutoDestroy(
bool destroy =
true) {
93 autoDestroy_ = destroy;
97 return (Type)job_->type;
101 static FileOperation* copyFiles(FmPathList* srcFiles, FmPath* dest, QWidget* parent = 0);
102 static FileOperation* moveFiles(FmPathList* srcFiles, FmPath* dest, QWidget* parent = 0);
103 static FileOperation* symlinkFiles(FmPathList* srcFiles, FmPath* dest, QWidget* parent = 0);
104 static FileOperation* deleteFiles(FmPathList* srcFiles,
bool promp =
true, QWidget* parent = 0);
105 static FileOperation* trashFiles(FmPathList* srcFiles,
bool promp =
true, QWidget* parent = 0);
106 static FileOperation* unTrashFiles(FmPathList* srcFiles, QWidget* parent = 0);
107 static FileOperation* changeAttrFiles(FmPathList* srcFiles, QWidget* parent = 0);
113 static gint onFileOpsJobAsk(FmFileOpsJob* job,
const char* question,
char*
const* options,
FileOperation* pThis);
114 static gint onFileOpsJobAskRename(FmFileOpsJob* job, FmFileInfo* src, FmFileInfo* dest,
char** new_name,
FileOperation* pThis);
115 static FmJobErrorAction onFileOpsJobError(FmFileOpsJob* job, GError* err, FmJobErrorSeverity severity,
FileOperation* pThis);
116 static void onFileOpsJobPrepared(FmFileOpsJob* job,
FileOperation* pThis);
117 static void onFileOpsJobCurFile(FmFileOpsJob* job,
const char* cur_file,
FileOperation* pThis);
118 static void onFileOpsJobPercent(FmFileOpsJob* job, guint percent,
FileOperation* pThis);
119 static void onFileOpsJobFinished(FmFileOpsJob* job,
FileOperation* pThis);
120 static void onFileOpsJobCancelled(FmFileOpsJob* job,
FileOperation* pThis);
123 void disconnectJob();
126 void pauseElapsedTimer() {
127 if(Q_LIKELY(elapsedTimer_ != NULL)) {
128 lastElapsed_ += elapsedTimer_->elapsed();
129 elapsedTimer_->invalidate();
133 void resumeElapsedTimer() {
134 if(Q_LIKELY(elapsedTimer_ != NULL)) {
135 elapsedTimer_->start();
139 qint64 elapsedTime() {
140 if(Q_LIKELY(elapsedTimer_ != NULL)) {
141 return lastElapsed_ + elapsedTimer_->elapsed();
153 FmPathList* srcPaths;
155 QElapsedTimer* elapsedTimer_;
157 bool updateRemainingTime_;
164 #endif // FM_FILEOPERATION_H Definition: appchoosercombobox.cpp:26
Definition: fileoperationdialog.h:36
Definition: fileoperation.h:35