summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-03-31 09:56:36 +0200
committerArno <arno@disconnect.de>2018-03-31 09:56:36 +0200
commitb0702a8fe0eaeaef0577e0f07456ced2d132c528 (patch)
tree81c0fb60e6123354d4e7710d53fbb0e1db958f9f
parentb2b21c5790a3fcf5ecd4fddff40420f5bd2d2009 (diff)
downloadSheMov-b0702a8fe0eaeaef0577e0f07456ced2d132c528.tar.gz
SheMov-b0702a8fe0eaeaef0577e0f07456ced2d132c528.tar.bz2
SheMov-b0702a8fe0eaeaef0577e0f07456ced2d132c528.zip
Add visual feedback to FSWidget
* show busy cursor when gathering data * emit statusbarMessage() when gathering data The latter shows a summary with the time it has taken to gather data, the SQL query count and the number of files analyzed.
-rw-r--r--fswidget.cpp14
-rw-r--r--fswidget.h6
-rw-r--r--shemov.cpp1
3 files changed, 19 insertions, 2 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index f282a6c..53ef56e 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -12,6 +12,7 @@
#include <QDirIterator>
#include <QJsonObject>
#include <QSqlDatabase>
+#include <QElapsedTimer>
#include <QSettings>
#include <QApplication>
@@ -162,6 +163,12 @@ void FSWidget::removeItem(QComboBox *cb){
void FSWidget::gatherData(const QString &curDir){
//setup view
+ qApp->setOverrideCursor(Qt::BusyCursor);
+ mQueryCount = 0;
+ int fileCount = 0;
+ QElapsedTimer timer;
+ timer.start();
+ emit message(tr("Gathering data..."));
mFileView->setSortingEnabled(false);
mFileView->setRootIsDecorated(false);
mModel->clear();
@@ -191,6 +198,7 @@ void FSWidget::gatherData(const QString &curDir){
mFileView->setUpdatesEnabled(false);
while(it.hasNext()){
QFileInfo fi = it.next();
+ ++fileCount;
QMimeType mimeType = mimedb.mimeTypeForFile(fi);
QString mimeName = mimeType.name();
qint64 seconds = 0;
@@ -262,6 +270,9 @@ void FSWidget::gatherData(const QString &curDir){
}
mFileView->setUpdatesEnabled(true);
mFileView->setSortingEnabled(true);
+ qApp->restoreOverrideCursor();
+ QString msg = QString(tr("Analyzed %1 files in %2 ms using %3 queries").arg(QString::number(fileCount)).arg(QString::number(timer.elapsed())).arg(QString::number(mQueryCount)));
+ emit message(msg);
}
void FSWidget::advanceDir(int by){
@@ -276,12 +287,13 @@ void FSWidget::advanceDir(int by){
mDirCB->setCurrentIndex(nextIdx);
}
-int FSWidget::queryCount(QSqlQuery &q, const QString &arg) const{
+int FSWidget::queryCount(QSqlQuery &q, const QString &arg){
int retval = -1;
q.bindValue(":arg", arg);
q.exec();
while(q.next()){
retval = q.value(0).toInt();
}
+ ++mQueryCount;
return retval;
}
diff --git a/fswidget.h b/fswidget.h
index 876d0d0..0b977ff 100644
--- a/fswidget.h
+++ b/fswidget.h
@@ -24,7 +24,10 @@ class FSWidget : public QWidget {
void removeItem(QComboBox *cb);
void gatherData(const QString &curDir);
void advanceDir(int by);
- int queryCount(QSqlQuery &q, const QString &arg) const;
+ int queryCount(QSqlQuery &q, const QString &arg);
+
+ signals:
+ void message(QString msg);
private:
void setupWidget();
@@ -33,6 +36,7 @@ class FSWidget : public QWidget {
QTreeView *mFileView;
QStandardItemModel *mModel;
QSortFilterProxyModel *mProxy;
+ int mQueryCount;
};
#endif // FSWIDGET_H
diff --git a/shemov.cpp b/shemov.cpp
index 242bf94..2a7aa7e 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -64,6 +64,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla
connect(this, &SheMov::configChanged, mFSWidget, &FilesystemWidget::configChanged);
mFileWidget = new FSWidget;
mTab->addTab(mFileWidget, tr("FS"));
+ connect(mFileWidget, &FSWidget::message, this, &SheMov::statusbarMessage);
//experimental
splash.showMessage(tr("Creating Movie archive..."), Qt::AlignHCenter, Qt::yellow);