diff options
Diffstat (limited to 'archiveview.h')
-rw-r--r-- | archiveview.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/archiveview.h b/archiveview.h index d97ca7f..b76e487 100644 --- a/archiveview.h +++ b/archiveview.h @@ -9,6 +9,8 @@ #define ARCHIVEVIEW_H #include <QWidget> +#include <QSortFilterProxyModel> +#include <QRegExp> #include "archivemodel.h" #include "smtreeview.h" @@ -19,11 +21,18 @@ class QLineEdit; class ArchiveTree; class ArchiveFiles; +class ArchiveProxy; class ArchiveView : public QWidget { Q_OBJECT public: explicit ArchiveView(QWidget *parent = 0); + int currentSortOrder() const; + void writeSettings(); + + private slots: + void setFilter(); + void clearFilter(); private: QComboBox *mSortOrder; @@ -31,6 +40,7 @@ class ArchiveView : public QWidget { ArchiveTree *mTree; ArchiveFiles *mFiles; ArchiveModel *mArchiveModel; + ArchiveProxy *mProxy; }; class ArchiveTree : public SmTreeView { @@ -47,4 +57,20 @@ class ArchiveFiles : public SmTreeView { explicit ArchiveFiles(QWidget *parent = 0); }; +class ArchiveProxy : public QSortFilterProxyModel { + Q_OBJECT + public: + ArchiveProxy(QObject *parent = 0); + + public slots: + void setFilter(const QString &filter, int sortOrder); + + protected: + bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; + + private: + QRegExp mFilter; + int mSortOrder; +}; + #endif // ARCHIVEVIEW_H |