From de9d8a08fe5e85cdb599022261e07e27b7646f6c Mon Sep 17 00:00:00 2001 From: Arno Date: Tue, 9 Jul 2013 12:18:21 +0200 Subject: Show actors, genres and metadata when selecting a series We're getting there, slowly, but steadily :) --- archivemodel.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'archivemodel.cpp') diff --git a/archivemodel.cpp b/archivemodel.cpp index ecd4e3d..cbc1e6e 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include "smtreeitem.h" #include "archivemodel.h" @@ -255,6 +256,56 @@ QSet ArchiveModel::seriesPartIds(const QModelIndex &idx) const{ return retval; } +QStringList ArchiveModel::actors(const QSet &partIds) const{ + QStringList ids; + foreach(int i, partIds){ + ids << QString::number(i); + } + QString actorQString = QString("SELECT DISTINCT(tactorname) FROM actors, seriesparts_actormap WHERE seriesparts_actormap.iseriesparts_id IN (%1) AND seriesparts_actormap.iactors_id = actors.iactors_id ORDER BY tactorname ASC").arg(ids.join(",")); + QStringList retval; + QSqlQuery actorQ(actorQString, mDb); + while(actorQ.next()){ + retval << actorQ.value(0).toString(); + } + return retval; +} + +QStringList ArchiveModel::genres(const QSet &genreIds) const{ + QStringList ids; + foreach(int i, genreIds){ + ids << QString::number(i); + } + QString actorQString = QString("SELECT DISTINCT(tgenrename) FROM genres, seriesparts_genremap WHERE seriesparts_genremap.iseriesparts_id IN (%1) AND seriesparts_genremap.igenres_id = genres.igenres_id ORDER BY tgenrename ASC").arg(ids.join(",")); + QStringList retval; + QSqlQuery actorQ(actorQString, mDb); + while(actorQ.next()){ + retval << actorQ.value(0).toString(); + } + return retval; +} + +QString ArchiveModel::metadata(int partId) const{ + QString retval; + retval.append(""); + QSqlQuery metadataQuery(mDb); + metadataQuery.prepare("SELECT sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses, dadded FROM metadata WHERE iseriespart_id = :id"); + metadataQuery.bindValue(":id", partId); + metadataQuery.exec(); + while(metadataQuery.next()){ + retval.append(QString("").arg(QString::number(metadataQuery.value(0).toInt()))); + retval.append(QString("").arg(metadataQuery.value(1).toString())); + retval.append(QString("").arg(metadataQuery.value(2).toString())); + retval.append(QString("").arg(metadataQuery.value(3).toString())); + retval.append(QString("").arg(metadataQuery.value(4).toString())); + retval.append(QString("").arg(metadataQuery.value(1).toString())); + QDate added = metadataQuery.value(7).toDate(); + retval.append(QString("").arg(added.toString("yyyy-MM-dd"))); + retval.append(QString("").arg(metadataQuery.value(5).toString())); + } + retval.append("
Release year%1
Source%1
Subject%1
Rel. Group%1
Enc. Opts%1
Passes%1
Added%1
Comment%1
"); + return retval; +} + void ArchiveModel::setOrder(int order) { mOrder = order; SmTreeItem *rootItem = readCache(mOrder); @@ -751,3 +802,10 @@ void ArchiveCollector::checkCancelled(){ quit(); } } + +QVariant SimpleModel::data(const QModelIndex &index, int role) const{ + if(role == Qt::DecorationRole){ + return QIcon(":/male_chastity_belt.png"); + } + return QStringListModel::data(index, role); +} -- cgit v1.2.3-70-g09d2