summaryrefslogtreecommitdiffstats
path: root/filesystemwidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-09-03 06:12:33 +0200
committerArno <am@disconnect.de>2013-09-03 06:12:33 +0200
commit130e0a3115cd66e38ec57846e06f69e7fd284400 (patch)
treedd2a1cd7eaa32d1f515ec45bdc009e7cbbb354aa /filesystemwidget.cpp
parent3f0a819948d36d06f1ddf07e5a51ff771ddda4da (diff)
downloadSheMov-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.cpp35
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());;