From 3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 1 Aug 2010 14:09:27 +0200 Subject: Implemented extended filters Extended the filter function in SeriesTreeWidget. By passing an operator to the filter dialog series can be filtered. The code generates highly dynamic SQL queries. I hope I didn't introduce possible SQL injections. Filter operators: g: genre a: actor q: quality n: filename d: dvd no s: size --- seriestreemodel.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'seriestreemodel.h') diff --git a/seriestreemodel.h b/seriestreemodel.h index 59d5b87..d7e7a12 100644 --- a/seriestreemodel.h +++ b/seriestreemodel.h @@ -23,6 +23,8 @@ class SeriesTreeModel : public SmTreeModel { enum CustomRoles { NameRole = Qt::UserRole + 1, SeriesIdRole = Qt::UserRole + 2, SeriesPartIdRole = Qt::UserRole + 3, SeriesPartRole = Qt::UserRole + 4, TypeRole = Qt::UserRole + 5 }; enum Fields { Name = 0, SeriesId = 1, SeriesPartId = 2, SeriesPart = 3, Type = 4 }; enum Types { Series, Part, NewSeries }; + //enum Filter { ClearFilter, ActorFilter, GenreFilter }; + enum QueryType { NumericQuery, TextQuery }; explicit SeriesTreeModel(QStringList &headers, QObject *parent = 0); ~SeriesTreeModel(); @@ -45,6 +47,11 @@ class SeriesTreeModel : public SmTreeModel { bool addSeries(const QVariant &seriesName, const QModelIndex &parent); bool addSeriesPart(int seriesPart, const QModelIndex &parent); + //filter + void clearFilter(); + void setMappingFilter(const QString &filter, const QString &table); + void setFileFilter(const QString &filter, const QString &column, int queryType); + signals: void needResort(); @@ -65,6 +72,7 @@ class SeriesTreeModel : public SmTreeModel { QSqlQuery *mSeriesPartInsertQuery; QSqlQuery *mSortedMovieListQuery; QSqlQuery *mNextDvdNoQuery; + QSqlQuery *mGenreFilterQuery; QHash mSeriesPartSeriesMap; }; -- cgit v1.2.3-70-g09d2