/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef ARCHIVEVIEW_H #define ARCHIVEVIEW_H #include #include #include #include "archivemodel.h" #include "smtreeview.h" class QSortFilterProxyModel; class QComboBox; 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; QLineEdit *mFilter; ArchiveTree *mTree; ArchiveFiles *mFiles; ArchiveModel *mArchiveModel; ArchiveProxy *mProxy; }; class ArchiveTree : public SmTreeView { public: explicit ArchiveTree(QWidget *parent = 0); private: QSortFilterProxyModel *mProxy; ArchiveModel *mModel; }; class ArchiveFiles : public SmTreeView { public: 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