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. --- filewidget.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'filewidget.cpp') diff --git a/filewidget.cpp b/filewidget.cpp index ab4f240..f1d8873 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -704,11 +704,12 @@ void FileWidget::setCopyProgress(qint64 bytes){ mCopyProgress->setValue(val); } -void FileWidget::setCopySummary(qint64 bytes, qint64 elapsed){ - QHash jobs = mFileCopier->jobs(); - float rate = bytes / (elapsed / 1000) / 1024 / 1024.0; - QString sum = QString("%1 file(s), @ %2 MB/s").arg(QString::number(jobs.count() + 1)).arg(QString::number(rate, 'f', 2)); - mCopyProgress->setSummary(sum); +void FileWidget::setCopySummary(qint64 bytes, qint64 elapsed, int total, int copying){ + if(elapsed != 0){ + float rate = bytes * 8 / (elapsed / 1000.0) / 1024 / 1024.0; + QString sum = QString("%1/%2 file(s), @ %3 MB/s").arg(QString::number(copying+1)).arg(QString::number(total)).arg(QString::number(rate, 'f', 2)); + mCopyProgress->setSummary(sum); + } } void FileWidget::copyFiles(QString destDir){ -- cgit v1.2.3-70-g09d2