summaryrefslogtreecommitdiffstats
path: root/filecopier.h
blob: 6a9e37f2b0151995aba45ae0761c0ea18def492c (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
31
32
#ifndef FILECOPIER_H
#define FILECOPIER_H

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

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

    signals:
        void newFile(const QString &source, const QString & dest, qint64 size);
        void success(bool s, QString source);
        void bytesRead(qint64 bytes);
        void bytesReadIntval(qint64 bytes, qint64 msecs, int total, int copied);

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

#endif // FILECOPIER_H