summaryrefslogtreecommitdiffstats
path: root/archivemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-07-09 12:18:21 +0200
committerArno <am@disconnect.de>2013-07-09 12:18:21 +0200
commitde9d8a08fe5e85cdb599022261e07e27b7646f6c (patch)
tree8f47cc0602b37f32b26972c077ae15aedac79304 /archivemodel.cpp
parentfae552580c1214ff5b3e61c6f981c720b3f49263 (diff)
downloadSheMov-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.cpp58
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);
+}