diff options
author | Arno <am@disconnect.de> | 2010-08-01 14:09:27 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-08-01 14:11:52 +0200 |
commit | 3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83 (patch) | |
tree | a97fd92dd6d537cb3696afde395317a3b767ba5d /seriestreemodel.h | |
parent | 8eba6e7f033617f3e7ea3bd9913105df0de74ae2 (diff) | |
download | SheMov-3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83.tar.gz SheMov-3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83.tar.bz2 SheMov-3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83.zip |
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
Diffstat (limited to 'seriestreemodel.h')
-rw-r--r-- | seriestreemodel.h | 8 |
1 files changed, 8 insertions, 0 deletions
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<int, int> mSeriesPartSeriesMap; }; |