summaryrefslogtreecommitdiffstats
path: root/filecopier.h
blob: 883674928853709a7a845356abff31f42b371980 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef FILECOPIER_H
#define FILECOPIER_H

#include <QThread>
#include <QMutex>
#include <QHash>

class FileCopier : public QThread {
    Q_OBJECT
    public:
        FileCopier(QObject *parent = nullptr);
        void addJob(const QString &source, const QString &dest);
        virtual void run();
        void cancel();

    signals:
        void message(const QString &msg);
        void copying(bool copying, const QString &msg);

    private:
        QHash<QString, QString> mJobs;
        QMutex mAddJobMutex;
        QMutex mCancelMutex;
        QMutex mCountMutex;
        bool mCancel;
        int mTotal;
        int mCopied;
};

#endif // FILECOPIER_H