From f2604b62b777d7cab001bb5b7d80ad25b586e554 Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 1 Feb 2018 07:24:43 +0100 Subject: Improve FileCopier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This endeavor started out quite innocently: fix the connect syntax in ProgressDialog, but it quickly became much more. Vom Höxchen aufs Stöxchen :) First I thought it would be nice to add a total count to the ProgressDialog. Then I realized that I had QElapsedTimer::restart() totally wrong. It returns the ms *since the last restart*! It doesn't reset to zero, so fix that. While testing that I noticed that the download speed was quite below average, so change the buffer size and only check if we were cancelled when the timer elapsed. But that wasn't it. Eventually I dug into my firewall rules and routings to get it right. --- filecopier.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'filecopier.h') diff --git a/filecopier.h b/filecopier.h index 81d8496..6a9e37f 100644 --- a/filecopier.h +++ b/filecopier.h @@ -10,7 +10,6 @@ class FileCopier : public QThread { public: FileCopier(QObject *parent = 0); void addJob(const QString &source, const QString &dest); - QHash jobs(); virtual void run(); void cancel(); @@ -18,13 +17,16 @@ class FileCopier : public QThread { 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); + void bytesReadIntval(qint64 bytes, qint64 msecs, int total, int copied); private: QHash mJobs; QMutex mAddJobMutex; QMutex mCancelMutex; + QMutex mCountMutex; bool mCancel; + int mTotal; + int mCopied; }; #endif // FILECOPIER_H -- cgit v1.2.3-70-g09d2