summaryrefslogtreecommitdiffstats
path: root/filesystemwidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-08-28 10:31:29 +0200
committerArno <am@disconnect.de>2013-08-28 10:31:29 +0200
commit00084a82f08ea72bafc6c002422c8f49bdeb1742 (patch)
tree0c69d4de4ff173b658f4cc514f1dcda1d19a2f9b /filesystemwidget.cpp
parent1ee897fbb51cb431cba7690076a29a3ca2ddc1a7 (diff)
downloadSheMov-00084a82f08ea72bafc6c002422c8f49bdeb1742.tar.gz
SheMov-00084a82f08ea72bafc6c002422c8f49bdeb1742.tar.bz2
SheMov-00084a82f08ea72bafc6c002422c8f49bdeb1742.zip
Add a progress dialog to FilesystemWidget1.2.0
Show a progress dialog when gathering data from the filesystem.
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r--filesystemwidget.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index 317d9c2..24d9ec3 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -19,6 +19,7 @@
#include <QMimeData>
#include <QUrl>
#include <QTimer>
+#include <QProgressDialog>
#include "filesystemwidget.h"
#include "filesystemdirproxy.h"
@@ -42,6 +43,10 @@ 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;
@@ -431,6 +436,27 @@ 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());;