diff options
author | Arno <am@disconnect.de> | 2013-06-01 22:52:19 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-06-01 22:52:19 +0200 |
commit | 6fec376f7f44145efa509668927a0179c8ffa65e (patch) | |
tree | 49bbc7fe883085ff39e24b5f12fbef25d8cf48c5 /archiveview.h | |
parent | 6e92f5deb39aed43d72d8a64733f5b11e1650d5d (diff) | |
download | SheMov-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.h | 29 |
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); |