summaryrefslogtreecommitdiffstats
path: root/moviemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'moviemodel.cpp')
-rw-r--r--moviemodel.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/moviemodel.cpp b/moviemodel.cpp
index da921b4..d92692d 100644
--- a/moviemodel.cpp
+++ b/moviemodel.cpp
@@ -8,6 +8,7 @@
#include <QSqlQuery>
#include <QStringList>
#include <QIcon>
+#include <QSettings>
#include "moviemodel.h"
#include "coveritem.h"
@@ -113,6 +114,7 @@ QVariant MovieModel::data(const QModelIndex &index, int role) const{
if(!index.isValid()){
return QVariant();
}
+ QSettings s;
MovieItem *item = static_cast<MovieItem*>(index.internalPointer());
Q_ASSERT(item != 0);
if(role == Qt::DisplayRole){
@@ -170,6 +172,22 @@ QVariant MovieModel::data(const QModelIndex &index, int role) const{
if(role == DvdRole){
return item->dataAt(MovieItem::Dvd);
}
+ if(role == FullPathRole){
+ QString archivePath = s.value("paths/archivedir").toString();
+ QString md5 = item->dataAt(MovieItem::Md5Sum).toString();
+ QString fileName = item->dataAt(MovieItem::Filename).toString();
+ QString retval = QString("%1/%2/%3/%4").arg(archivePath).arg(md5.at(0)).arg(md5.at(1)).arg(fileName);
+ return retval;
+ }
+ if(role == CoverPathRole){
+ QList<QVariant> retval;
+ QList<QVariant> covers = item->covers();
+ foreach(QVariant c, covers){
+ CoverItem i = c.value<CoverItem>();
+ retval << i.fullPath();
+ }
+ return retval;
+ }
if((role == Qt::DecorationRole) && (index.column() == 0)){
return QIcon(":/dildo.png");
}
@@ -326,6 +344,34 @@ void MovieModel::removeMovie(const QModelIndex &idx){
removeRows(idx.row(), 1, QModelIndex());
}
+const QVariant MovieModel::maxValue(int column) const{
+ if(mItems.isEmpty()){
+ return QVariant();
+ }
+ QVariant sample = mItems.at(0)->dataAt(column);
+ if(sample.canConvert(QVariant::LongLong)){
+ qint64 retval(-1);
+ foreach(MovieItem* i, mItems){
+ qint64 value = i->dataAt(column).toLongLong();
+ if(value > retval){
+ retval = value;
+ }
+ }
+ return retval;
+ }
+ if(sample.canConvert(QVariant::String)){
+ QString retval;
+ foreach(MovieItem *i, mItems){
+ QString value = i->dataAt(column).toString();
+ if(value > retval){
+ retval = value;
+ }
+ }
+ return retval;
+ }
+ return QVariant();
+}
+
void MovieModel::populate(){
QSqlQuery movieQuery("SELECT imovid FROM movies");
while(movieQuery.next()){