summaryrefslogtreecommitdiffstats
path: root/seriestreemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2011-01-22 13:19:50 +0100
committerArno <am@disconnect.de>2011-01-22 13:19:50 +0100
commit6c1a89feb8e8178b02adfa8b4fdc0eb8ef0e78c1 (patch)
tree1e848c168cb53ea7a9bc24c69c7db6f3d56581a5 /seriestreemodel.cpp
parent3b4e57cb0bd13681a426907dda36d6d213b0a2e8 (diff)
downloadSheMov-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.cpp30
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");