diff options
author | Arno <arno@disconnect.de> | 2016-09-22 08:41:38 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-22 08:41:38 +0200 |
commit | 2e1c915cf2d9ec394c64ee0d6d7c705b06cce8cb (patch) | |
tree | fa2d7774987576c4d052be1a1a298afd2c7f2b41 | |
parent | beb06f3603e569cfed7e0fd8bf71b4c9a8eac673 (diff) | |
download | ShemovCleaner-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.cpp | 5 | ||||
-rw-r--r-- | torrentwidget.cpp | 31 | ||||
-rw-r--r-- | torrentwidget.h | 4 |
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; |