diff options
author | Arno <am@disconnect.de> | 2013-07-09 12:18:21 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-07-09 12:18:21 +0200 |
commit | de9d8a08fe5e85cdb599022261e07e27b7646f6c (patch) | |
tree | 8f47cc0602b37f32b26972c077ae15aedac79304 /archivemodel.cpp | |
parent | fae552580c1214ff5b3e61c6f981c720b3f49263 (diff) | |
download | SheMov-de9d8a08fe5e85cdb599022261e07e27b7646f6c.tar.gz SheMov-de9d8a08fe5e85cdb599022261e07e27b7646f6c.tar.bz2 SheMov-de9d8a08fe5e85cdb599022261e07e27b7646f6c.zip |
Show actors, genres and metadata when selecting a series
We're getting there, slowly, but steadily :)
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r-- | archivemodel.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp index ecd4e3d..cbc1e6e 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -14,6 +14,7 @@ #include <QFileInfo> #include <QBrush> #include <QFont> +#include <QDate> #include "smtreeitem.h" #include "archivemodel.h" @@ -255,6 +256,56 @@ QSet<int> ArchiveModel::seriesPartIds(const QModelIndex &idx) const{ return retval; } +QStringList ArchiveModel::actors(const QSet<int> &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<int> &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("<html><table>"); + 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("<tr><td style=\"padding-right:10\"><i>Release year</i></td><td>%1</td></tr>").arg(QString::number(metadataQuery.value(0).toInt()))); + retval.append(QString("<tr><td><i>Source</i></td><td>%1</td></tr>").arg(metadataQuery.value(1).toString())); + retval.append(QString("<tr><td><i>Subject</i></td><td>%1</td></tr>").arg(metadataQuery.value(2).toString())); + retval.append(QString("<tr><td><i>Rel. Group</i></td><td>%1</td></tr>").arg(metadataQuery.value(3).toString())); + retval.append(QString("<tr><td><i>Enc. Opts</i></td><td>%1</td></tr>").arg(metadataQuery.value(4).toString())); + retval.append(QString("<tr><td><i>Passes</i></td><td>%1</td></tr>").arg(metadataQuery.value(1).toString())); + QDate added = metadataQuery.value(7).toDate(); + retval.append(QString("<tr><td><i>Added</i></td><td>%1</td></tr>").arg(added.toString("yyyy-MM-dd"))); + retval.append(QString("<tr><td><i>Comment</i></td><td>%1</td></tr>").arg(metadataQuery.value(5).toString())); + } + retval.append("</table></html>"); + 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); +} |