summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-09-22 08:41:38 +0200
committerArno <arno@disconnect.de>2016-09-22 08:41:38 +0200
commit2e1c915cf2d9ec394c64ee0d6d7c705b06cce8cb (patch)
treefa2d7774987576c4d052be1a1a298afd2c7f2b41
parentbeb06f3603e569cfed7e0fd8bf71b4c9a8eac673 (diff)
downloadShemovCleaner-2e1c915cf2d9ec394c64ee0d6d7c705b06cce8cb.tar.gz
ShemovCleaner-2e1c915cf2d9ec394c64ee0d6d7c705b06cce8cb.tar.bz2
ShemovCleaner-2e1c915cf2d9ec394c64ee0d6d7c705b06cce8cb.zip
Give feedback on gathering data
Use the ProgressBar when gathering torrent data from a directory with many entries. Sprinkle processEvents() here and there to show the progress.
-rw-r--r--shemovcleaner.cpp5
-rw-r--r--torrentwidget.cpp31
-rw-r--r--torrentwidget.h4
3 files changed, 37 insertions, 3 deletions
diff --git a/shemovcleaner.cpp b/shemovcleaner.cpp
index 5006394..a0f5373 100644
--- a/shemovcleaner.cpp
+++ b/shemovcleaner.cpp
@@ -33,11 +33,16 @@ ShemovCleaner::ShemovCleaner(QWidget *parent, Qt::WindowFlags f) : QMainWindow(p
mTab = new QTabWidget;
mTorrentTab = new TorrentWidget;
+ mTorrentTab->setProgressBar(mProgressBar);
+ qApp->processEvents();
+ mTorrentTab->gatherData();
mFileTab = new FileWidget;
mFileTab->setProgressBar(mProgressBar);
+ qApp->processEvents();
mFileTab->gatherData();
mActorTab = new ActorWidget;
mActorTab->setProgressBar(mProgressBar);
+ qApp->processEvents();
mActorTab->gatherData();
mActorTab->readSettings();
diff --git a/torrentwidget.cpp b/torrentwidget.cpp
index 28a86c1..08c9a86 100644
--- a/torrentwidget.cpp
+++ b/torrentwidget.cpp
@@ -20,6 +20,9 @@
#include <QToolBar>
#include <QMenuBar>
#include <QClipboard>
+#include <QCompleter>
+#include <QDirModel>
+#include <QProgressBar>
#include <QApplication>
#include "torrentwidget.h"
@@ -30,7 +33,6 @@
TorrentWidget::TorrentWidget(QWidget *parent) : QWidget(parent), mExt("*.torrent") {
setupGui();
- gatherData();
}
TorrentWidget::~TorrentWidget(){
@@ -40,6 +42,11 @@ TorrentWidget::~TorrentWidget(){
void TorrentWidget::setupGui(){
mDir = new QLineEdit;
+ QCompleter *torDirCompl = new QCompleter(this);
+ torDirCompl->setModel(new QDirModel(torDirCompl));
+ mDir->setCompleter(torDirCompl);
+ connect(mDir, SIGNAL(returnPressed()), this, SLOT(setDir()));
+
mSelDir = new QPushButton(tr("Browse..."));
connect(mSelDir, SIGNAL(clicked()), this, SLOT(selectDir()));
@@ -149,6 +156,11 @@ void TorrentWidget::gatherData(){
q.prepare("SELECT COUNT(*) FROM metadata WHERE tsubject = :fn");
QDir d(mDir->text());
QFileInfoList fl = d.entryInfoList(QStringList() << mExt, QDir::Files, QDir::Name);
+ mProgressBar->reset();
+ mProgressBar->setMinimum(0);
+ mProgressBar->setMaximum(fl.count() - 1);
+ int count = 0;
+ mFileView->setSortingEnabled(false);
mModel->clear();
QStandardItem *root = mModel->invisibleRootItem();
mModel->setHorizontalHeaderLabels(QStringList() << QChar(0x26A7) << tr("Name") << tr("Created"));
@@ -184,7 +196,10 @@ void TorrentWidget::gatherData(){
fData[NameColumn]->setForeground(redBrush);
}
root->appendRow(fData);
+ mProgressBar->setValue(++count);
}
+ qApp->processEvents();
+ mFileView->setSortingEnabled(true);
readHeaderData();
}
@@ -310,8 +325,18 @@ void TorrentWidget::contextMenuEvent(QContextMenuEvent *e){
}
void TorrentWidget::selectDir(){
- QString dir = QFileDialog::getExistingDirectory(this, tr("Select directory"), QDir::homePath());
- mDir->setText(QDir::toNativeSeparators(dir));
+ QSettings s;
+ QString sDir = s.value("dirs/torrentdir", QDir::homePath()).toString();
+ QString dir = QFileDialog::getExistingDirectory(this, tr("Select directory"), sDir);
+ if(!dir.isEmpty()){
+ mDir->setText(QDir::toNativeSeparators(dir));
+ setDir();
+ }
+}
+
+void TorrentWidget::setDir(){
+ QSettings s;
+ s.setValue("dirs/torrentdir", mDir->text());
gatherData();
}
diff --git a/torrentwidget.h b/torrentwidget.h
index 15992b3..b66fa64 100644
--- a/torrentwidget.h
+++ b/torrentwidget.h
@@ -14,6 +14,7 @@ class QLabel;
class QToolBar;
class QMenuBar;
class QKeyEvent;
+class QProgressBar;
class FileSorter;
class TorrentDisplay;
@@ -28,6 +29,7 @@ class TorrentWidget : public QWidget {
QMenuBar *menuBar() { return mMenuBar; }
TorrentDisplay *torrentDisplay() { return mTorrentDisplay; }
QTreeView *torrentFileView() { return mFileView; }
+ void setProgressBar(QProgressBar *progressBar) { mProgressBar = progressBar; }
~TorrentWidget();
signals:
@@ -36,6 +38,7 @@ class TorrentWidget : public QWidget {
public slots:
void selectDir();
+ void setDir();
void copyToClipboard();
void gatherData();
void deleteFiles();
@@ -66,6 +69,7 @@ class TorrentWidget : public QWidget {
QTreeView *mFileView;
QToolBar *mToolBar;
QMenuBar *mMenuBar;
+ QProgressBar *mProgressBar;
QAction *mRefreshA;
QAction *mDeleteA;
QAction *mMoveA;