diff options
author | Arno <am@disconnect.de> | 2011-01-22 13:19:50 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2011-01-22 13:19:50 +0100 |
commit | 6c1a89feb8e8178b02adfa8b4fdc0eb8ef0e78c1 (patch) | |
tree | 1e848c168cb53ea7a9bc24c69c7db6f3d56581a5 /seriestreemodel.cpp | |
parent | 3b4e57cb0bd13681a426907dda36d6d213b0a2e8 (diff) | |
download | SheMov-6c1a89feb8e8178b02adfa8b4fdc0eb8ef0e78c1.tar.gz SheMov-6c1a89feb8e8178b02adfa8b4fdc0eb8ef0e78c1.tar.bz2 SheMov-6c1a89feb8e8178b02adfa8b4fdc0eb8ef0e78c1.zip |
Added filter option for favorites
Added filter for only showing series marked as favorites. The other
filter options are disabled when in this mode.
Diffstat (limited to 'seriestreemodel.cpp')
-rw-r--r-- | seriestreemodel.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp index 7cc578a..a86cad6 100644 --- a/seriestreemodel.cpp +++ b/seriestreemodel.cpp @@ -45,6 +45,10 @@ SeriesTreeModel::SeriesTreeModel(QStringList &headers, QObject *parent) : SmTree mNextDvdNoQuery->prepare("SELECT MAX(idvd) FROM files"); mGenreFilterQuery = new QSqlQuery(mDb); mGenreFilterQuery->prepare("SELECT DISTINCT(series.iseries_id), series.tseries_name FROM series, seriesparts, seriesparts_genremap, genres where tgenrename LIKE :pat AND genres.igenres_id = seriesparts_genremap.igenres_id AND seriesparts_genremap.iseriesparts_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id"); + mFavoriteSeriesIdQuery = new QSqlQuery(mDb); + mFavoriteSeriesIdQuery->prepare("SELECT DISTINCT(series.iseries_id), series.tseries_name FROM series, seriesparts WHERE seriesparts.bfavorite = true and seriesparts.iseries_id = series.iseries_id"); + mFavoriteSeriesPartsQuery = new QSqlQuery(mDb); + mFavoriteSeriesPartsQuery->prepare("SELECT iseriesparts_id, iseriespart FROM seriesparts WHERE iseries_id = :id AND bfavorite = true"); populate(); } @@ -62,6 +66,8 @@ SeriesTreeModel::~SeriesTreeModel(){ delete mSortedMovieListQuery; delete mNextDvdNoQuery; delete mGenreFilterQuery; + delete mFavoriteSeriesIdQuery; + delete mFavoriteSeriesPartsQuery; mDb = QSqlDatabase(); } @@ -448,6 +454,30 @@ void SeriesTreeModel::setFileFilter(const QString &filter, const QString &column } } +void SeriesTreeModel::setFavoriteFilter(){ + if(mFavoriteSeriesIdQuery->exec()){ + mSeriesPartSeriesMap.clear(); + SmTreeItem *rootItem = new SmTreeItem(6); + while(mFavoriteSeriesIdQuery->next()){ + QList<QVariant> seriesData; + seriesData << mFavoriteSeriesIdQuery->value(1) << mFavoriteSeriesIdQuery->value(0) << QVariant() << QVariant() << Series << false; + SmTreeItem *seriesItem = new SmTreeItem(seriesData, rootItem); + rootItem->appendChild(seriesItem); + mFavoriteSeriesPartsQuery->bindValue(":id", seriesData.at(1)); + if(mFavoriteSeriesPartsQuery->exec()){ + while(mFavoriteSeriesPartsQuery->next()){ + QList<QVariant> partData; + partData << seriesData.at(Name) << seriesData.at(SeriesId) << mFavoriteSeriesPartsQuery->value(0) << mFavoriteSeriesPartsQuery->value(1) << Part << true; + SmTreeItem *partItem = new SmTreeItem(partData, seriesItem); + seriesItem->appendChild(partItem); + mSeriesPartSeriesMap.insert(mFavoriteSeriesPartsQuery->value(0).toInt(), seriesData.at(1).toInt()); + } + } + } + setRoot(rootItem); + } +} + void SeriesTreeModel::readSettings(){ QSettings s; QVariant fc = s.value("ui/favoritecolor"); |