diff options
Diffstat (limited to 'movieitem.cpp')
-rw-r--r-- | movieitem.cpp | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/movieitem.cpp b/movieitem.cpp deleted file mode 100644 index d4760f9..0000000 --- a/movieitem.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version - 2 of the License, or (at your option) any later version. -*/ - -#include <QSqlQuery> - -#include "movieitem.h" -#include "coveritem.h" -#include "helper.h" - -MovieItem::MovieItem(int id, QObject *parent) : QObject(parent), mNumRows(9), mId(id), mGenreId(-1) { - for(int i = 0; i < mNumRows; ++i){ - mRows << QVariant(); - } - if(mId != -1){ - populate(); - setGenreName(); - setActors(); - setCovers(); - } -} - -void MovieItem::setId(int id){ - mId = id; - populate(); - setGenreName(); - setActors(); - setCovers(); -} - -bool MovieItem::setData(const QList<QVariant> &data){ - if(!data.size() == mNumRows){ - return false; - } - mRows = data; - return true; -} - -void MovieItem::setDataAt(int column, const QVariant &data){ - mRows[column] = data; - if(column == Genre){ - setGenreName(); - } -} - -const QList<QVariant> MovieItem::data() const { - return mRows; -} - -const QVariant MovieItem::dataAt(int column) const { - if(column >= NumRows){ - return QVariant(); - } - return mRows[column]; -} - -void MovieItem::populate(){ - QSqlQuery movieData; - movieData.prepare("SELECT ttitle, tfilename, cmd5sum, bisize, igenreid, iquality, idvd, iseriesno, ipartno FROM movies WHERE imovid = :id"); - movieData.bindValue(":id", mId); - movieData.exec(); - if(movieData.next()){ - for(int i = 0; i < mNumRows; ++i){ - mRows[i] = movieData.value(i); - } - } -} - -void MovieItem::setGenreName(){ - qint32 genreId = dataAt(Genre).toInt(); - QSqlQuery genreQuery; - genreQuery.prepare("SELECT tgenrename FROM genre WHERE igenreid = :id"); - genreQuery.bindValue(":id", genreId); - genreQuery.exec(); - while(genreQuery.next()){ - setDataAt(Genre, genreQuery.value(0)); - } -} - -void MovieItem::setActors(){ - mActors.clear(); - mActorIdMap.clear(); - QSqlQuery actorQuery; - actorQuery.prepare("SELECT actor.iactorid, actor.tactorname FROM actor, movieactormap WHERE movieactormap.iactorid = actor.iactorid AND movieactormap.imovid = :id"); - actorQuery.bindValue(":id", mId); - actorQuery.exec(); - while(actorQuery.next()){ - QVariant actorId = actorQuery.value(0); - QString actorName = actorQuery.value(1).toString(); - mActors << actorName; - mActorIdMap.insert(actorName, actorId); - } -} - -void MovieItem::setCovers(){ - mCovers.clear(); - QSqlQuery coverQuery; - coverQuery.prepare("SELECT tfilename, tcovertype, cmd5sum FROM covers WHERE imovid = :id"); - coverQuery.bindValue(":id", mId); - coverQuery.exec(); - while(coverQuery.next()){ - QString filename = coverQuery.value(0).toString(); - QString md5 = coverQuery.value(2).toString(); - QString coverType = coverQuery.value(1).toString(); - QString fullPath = Helper::createArchivePath(filename, md5); - CoverItem item(fullPath, coverType, md5); - QVariant i; - i.setValue(item); - mCovers << i; - } -} - -void MovieItem::setSize(){ - qint64 size = dataAt(Size).toInt(); - QString sizeString(tr("%1 %2iB")); - if(size > 1024){ - double value = size / 1024.0; - setDataAt(Size, sizeString.arg(QString::number(value, 'f', 2), "K")); - } - if(size > (1024 * 1024)){ - double value = size / (1024.0 * 1024.0); - setDataAt(Size, sizeString.arg(QString::number(value, 'f', 2), "M")); - } - if(size > (1024 * 1024 * 1024)){ - double value = size / (1024.0 * 1024.0 * 1024.0); - setDataAt(Size, sizeString.arg(QString::number(value, 'f', 2), "G")); - } -} - |