diff options
author | Arno <am@disconnect.de> | 2013-09-03 06:12:33 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-09-03 06:12:33 +0200 |
commit | 130e0a3115cd66e38ec57846e06f69e7fd284400 (patch) | |
tree | dd2a1cd7eaa32d1f515ec45bdc009e7cbbb354aa /filesystemwidget.cpp | |
parent | 3f0a819948d36d06f1ddf07e5a51ff771ddda4da (diff) | |
download | SheMov-130e0a3115cd66e38ec57846e06f69e7fd284400.tar.gz SheMov-130e0a3115cd66e38ec57846e06f69e7fd284400.tar.bz2 SheMov-130e0a3115cd66e38ec57846e06f69e7fd284400.zip |
Switch to QRunnable + QThreadPool
Get rid of SmDataCollector and do its job in small, QRunnable tasks and
let QThreadPool manage the treads.
Works well with a local Filesystem. Yet to see how it works over
networked Filesystems.
Ah, before I forget: NEVER, EVER USE QPixmap in THREADS -> Random
crashes! (Yes, I know, it's documented...)
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 24d9ec3..64f5ee8 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -43,10 +43,6 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar mFileModel = new SmDirModel(fHeaders, this); connect(mFileModel, SIGNAL(needResize()), this, SLOT(resizeFileView())); - mProgressDlg = 0; - connect(mFileModel->collector(), SIGNAL(totalFiles(int)), this, SLOT(setupProgressDlg(int))); - connect(mFileModel->collector(), SIGNAL(progress()), this, SLOT(progress())); - mDirProxy = new FilesystemDirProxy; mDirProxy->setSourceModel(mModel); mDirView = new SmTreeView; @@ -171,7 +167,7 @@ void FilesystemWidget::fileViewActivated(const QModelIndex &idx){ /* we cannot use idx from the SIGNAL here, since the model * may already have changed */ Q_UNUSED(idx); - TimerHandler h(mFileModel->refresTimer()); + TimerHandler h(mFileModel->refreshTimer()); QModelIndexList selected = mFileView->selectionModel()->selectedRows(); if(selected.isEmpty()){ return; @@ -229,7 +225,7 @@ void FilesystemWidget::goBack(){ } void FilesystemWidget::deleteFiles(){ - TimerHandler h(mFileModel->refresTimer()); + TimerHandler h(mFileModel->refreshTimer()); QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(mFileView->model()); QModelIndexList selected = mFileView->selectionModel()->selectedRows(); if(selected.isEmpty()){ @@ -247,7 +243,7 @@ void FilesystemWidget::deleteFiles(){ } void FilesystemWidget::toClipboard(int clipmode){ - TimerHandler h(mFileModel->refresTimer()); + TimerHandler h(mFileModel->refreshTimer()); mClipboardMode = clipmode; QClipboard *clip = qApp->clipboard(); QModelIndexList selected = mFileView->selectionModel()->selectedRows(); @@ -294,7 +290,7 @@ void FilesystemWidget::fromClipboard(){ } void FilesystemWidget::renameFile(){ - TimerHandler h(mFileModel->refresTimer()); + TimerHandler h(mFileModel->refreshTimer()); QModelIndex curIdx = mFileView->currentIndex(); if(curIdx.data().toString() == ".."){ return; @@ -303,7 +299,7 @@ void FilesystemWidget::renameFile(){ } void FilesystemWidget::playSelected(const QString &player){ - TimerHandler h(mFileModel->refresTimer()); + TimerHandler h(mFileModel->refreshTimer()); QStringList files = selectedFiles(); if(files.isEmpty()){ statusbarMessage(tr("Nothing selected.")); @@ -436,27 +432,6 @@ void FilesystemWidget::setWindowTitle(){ emit windowTitle(mWindowTitle); } -void FilesystemWidget::setupProgressDlg(int max){ - if(max <= 0){ - return; - } - if(!mProgressDlg){ - mProgressDlg = new QProgressDialog(this); - mProgressDlg->setLabel(new QLabel(tr("Gathering data... please wait!"))); - } - mProgressDlg->setMinimum(1); - mProgressDlg->setMaximum(max); - Helper::centerWidget(mProgressDlg); - mProgressDlg->show(); -} - -void FilesystemWidget::progress(){ - mProgressDlg->setValue(mProgressDlg->value() + 1); - if(mProgressDlg->value() >= mProgressDlg->maximum()){ - mProgressDlg->hide(); - } -} - void FilesystemWidget::deleteRecursive(const QFileInfo &start){ if(start.isDir()){ QDir curDir = QDir(start.absoluteFilePath());; |