summaryrefslogtreecommitdiffstats
path: root/filewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filewidget.cpp')
-rw-r--r--filewidget.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index ba8f617..7cb884b 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -31,6 +31,7 @@
#include <QApplication>
#include <QContextMenuEvent>
#include <QSignalMapper>
+#include <QDirIterator>
#include "filewidget.h"
#include "filesorter.h"
@@ -229,17 +230,14 @@ void FileWidget::gatherData(){
QSettings s;
QStringList copyDirs = s.value("copydirs").toStringList();
QStringList copyDirFiles;
- foreach(auto d, copyDirs){
- QDir copyDir(d);
- foreach(auto cfi, copyDir.entryInfoList()){
- if(cfi.isFile()){
- copyDirFiles << cfi.fileName();
- }
+ for(const QString &d : copyDirs){
+ QDirIterator it(d, QDir::Files | QDir::NoDotAndDotDot);
+ while(it.hasNext()){
+ it.next();
+ copyDirFiles << it.fileName();
}
}
- QDir d(mDir->text());
- QFileInfoList fl = d.entryInfoList(QStringList() << "*", QDir::Files | QDir::Dirs | QDir::NoDot, QDir::Name | QDir::DirsFirst);
mFileView->setSortingEnabled(false);
mModel->clear();
QStandardItem *root = mModel->invisibleRootItem();
@@ -250,15 +248,15 @@ void FileWidget::gatherData(){
QMimeDatabase db;
qApp->setOverrideCursor(Qt::BusyCursor);
- QString gatherMsg(tr("Gathering data: %1"));
- mProgressBar->reset();
- mProgressBar->setMinimum(0);
- mProgressBar->setMaximum(fl.count() - 1);
- int count = 0;
+ QString gatherMsg(tr("Gathering data: %1 (%2)"));
+ int count = 1;
+ qint64 totalSize = 0;
qApp->processEvents();
- foreach(QFileInfo fi, fl){
- emit statusMessage(gatherMsg.arg(fi.fileName()));
+ QDirIterator it(mDir->text(), QDir::Files | QDir::Dirs | QDir::NoDot);
+ while(it.hasNext()){
+ QFileInfo fi = it.next();
+ emit statusMessage(gatherMsg.arg(fi.fileName()).arg(QString::number(count)));
QMimeType mime = db.mimeTypeForFile(fi);
QList<QStandardItem*> fData;
FileAttrs attr = NotPresent;
@@ -331,6 +329,8 @@ void FileWidget::gatherData(){
fData[CopiedColumn]->setText(QChar(0x2640));
fData[CopiedColumn]->setForeground(redBrush);
}
+ ++count;
+ totalSize += sizemb;
}
fData[DurationColumn]->setText(duration);
fData[DurationColumn]->setData(seconds, SecondsRole);
@@ -345,14 +345,13 @@ void FileWidget::gatherData(){
fData[i]->setData(md5, MD5SumRole);
}
root->appendRow(fData);
- ++count;
- mProgressBar->setValue(count);
}
mFileView->setSortingEnabled(true);
readHeaderData();
qApp->restoreOverrideCursor();
selectFirst();
- emit statusMessage(QString(tr("Gathering data... DONE!")));
+ double totalSizeGB = totalSize / 1024 / 1024 / 1024.0;
+ emit statusMessage(QString(tr("Analyzed %1 file(s) / (%2 GB)").arg(QString::number(count)).arg(QString::number(totalSizeGB, 'f', 2))));
emit freeSpaceChanged(mDir->text());
}