summaryrefslogtreecommitdiffstats
path: root/archiveview.h
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-06-01 22:52:19 +0200
committerArno <am@disconnect.de>2013-06-01 22:52:19 +0200
commit6fec376f7f44145efa509668927a0179c8ffa65e (patch)
tree49bbc7fe883085ff39e24b5f12fbef25d8cf48c5 /archiveview.h
parent6e92f5deb39aed43d72d8a64733f5b11e1650d5d (diff)
downloadSheMov-6fec376f7f44145efa509668927a0179c8ffa65e.tar.gz
SheMov-6fec376f7f44145efa509668927a0179c8ffa65e.tar.bz2
SheMov-6fec376f7f44145efa509668927a0179c8ffa65e.zip
Gather archive data in a thread
Fetching data sometimes takes a long time, so do it in a QThread and show a progress dialog. Some kludges included :)
Diffstat (limited to 'archiveview.h')
-rw-r--r--archiveview.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/archiveview.h b/archiveview.h
index b76e487..a62fd66 100644
--- a/archiveview.h
+++ b/archiveview.h
@@ -8,20 +8,23 @@
#ifndef ARCHIVEVIEW_H
#define ARCHIVEVIEW_H
-#include <QWidget>
-#include <QSortFilterProxyModel>
+#include <QDialog>
#include <QRegExp>
+#include <QSortFilterProxyModel>
+#include <QWidget>
#include "archivemodel.h"
#include "smtreeview.h"
-class QSortFilterProxyModel;
class QComboBox;
+class QLabel;
class QLineEdit;
+class QSortFilterProxyModel;
class ArchiveTree;
class ArchiveFiles;
class ArchiveProxy;
+class ArchiveProgressDialog;
class ArchiveView : public QWidget {
Q_OBJECT
@@ -29,10 +32,16 @@ class ArchiveView : public QWidget {
explicit ArchiveView(QWidget *parent = 0);
int currentSortOrder() const;
void writeSettings();
+ // this is needed for displaying the progress dialog in the
+ // center of the main window...
+ void setConstructingDone() { mConstructing = false; }
+ QWidget *progressDialog();
private slots:
void setFilter();
void clearFilter();
+ void collectorStarted();
+ void collectorFinished();
private:
QComboBox *mSortOrder;
@@ -41,6 +50,8 @@ class ArchiveView : public QWidget {
ArchiveFiles *mFiles;
ArchiveModel *mArchiveModel;
ArchiveProxy *mProxy;
+ ArchiveProgressDialog *mProgress;
+ bool mConstructing;
};
class ArchiveTree : public SmTreeView {
@@ -52,6 +63,18 @@ class ArchiveTree : public SmTreeView {
ArchiveModel *mModel;
};
+class ArchiveProgressDialog : public QDialog {
+ Q_OBJECT
+ public:
+ explicit ArchiveProgressDialog(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowStaysOnTopHint);
+
+ public slots:
+ void setMessage(const QString &msg);
+
+ private:
+ QLabel *mMessage;
+};
+
class ArchiveFiles : public SmTreeView {
public:
explicit ArchiveFiles(QWidget *parent = 0);