8 * @brief FileWorker does delete, copy and move files in the background.
10 class FileWorker
: public QThread
15 explicit FileWorker(QObject
*parent
= 0);
18 // call these to start the thread, returns false if start failed
19 void startDeleteFiles(QStringList filenames
);
20 void startCopyFiles(QStringList filenames
, QString destDirectory
);
21 void startMoveFiles(QStringList filenames
, QString destDirectory
);
25 signals
: // signals, can be connected from a thread to another
26 void progressChanged(int progress
, QString filename
);
28 // one of these is emitted when thread ends
30 void errorOccurred(QString message
, QString filename
);
32 void fileDeleted(QString fullname
);
39 DeleteMode
, CopyMode
, MoveMode
42 Cancelled
= 0, KeepRunning
= 1
45 QString
deleteFile(QString filenames
);
47 void copyOrMoveFiles();
48 QString
copyDirRecursively(QString srcDirectory
, QString destDirectory
);
49 QString
copyOverwrite(QString src
, QString dest
);
51 FileWorker::Mode m_mode
;
52 QStringList m_filenames
;
53 QString m_destDirectory
;
54 QAtomicInt m_cancelled
; // atomic so no locks needed
58 #endif // FILEWORKER_H