38 lines
935 B
C++
38 lines
935 B
C++
#ifndef FILTERDIALOG_H
|
|
#define FILTERDIALOG_H
|
|
|
|
#include "ui_filterdialog.h"
|
|
|
|
class FilterDialog: public QDialog, private Ui::FilterDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit FilterDialog(QWidget *parent = 0);
|
|
|
|
struct Filter {
|
|
Filter() {}
|
|
Filter(const QVariant & v);
|
|
QVariant toVariant() const;
|
|
bool filterFile(const QString & path) const {return filterLogic(files_show, files_hide, path);}
|
|
bool filterDir(const QString & path) const {return filterLogic(dirs_show, dirs_hide, path);}
|
|
QStringList files_show;
|
|
QStringList files_hide;
|
|
QStringList dirs_show;
|
|
QStringList dirs_hide;
|
|
private:
|
|
bool filterLogic(const QStringList & fshow, const QStringList & fhide, const QString & path) const;
|
|
};
|
|
|
|
Filter filter() const;
|
|
void setFilter(const Filter & f);
|
|
|
|
protected:
|
|
void changeEvent(QEvent *e);
|
|
|
|
QStringList getFilters(QLineEdit * le) const;
|
|
void setFilters(QLineEdit * le, QStringList f);
|
|
|
|
};
|
|
|
|
#endif // FILTERDIALOG_H
|