From 36d60fc19f6cbc1a76931479664589544411763b Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 8 Jul 2010 22:58:55 +0200 Subject: Preparations for NewMovieWizard::accept -new memfunc: SeriesTreeModel::addSeries -new memfunc: SeriesTreeModel::addSeriesPart started FilesTreeModel::addFile, not finished yet. --- filestreemodel.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'filestreemodel.cpp') diff --git a/filestreemodel.cpp b/filestreemodel.cpp index cbfbd24..35883d3 100644 --- a/filestreemodel.cpp +++ b/filestreemodel.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "filestreemodel.h" #include "smtreeitem.h" @@ -19,10 +20,14 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo mUpdateDvdQuery->prepare("UPDATE files SET idvd = :dvd WHERE ifiles_id = :id"); mUpdateQualityQuery = new QSqlQuery(mDb); mUpdateQualityQuery->prepare("UPDATE files SET siquality = :quality WHERE ifiles_id = :id"); + mInsertFileQuery = new QSqlQuery(mDb); + mInsertFileQuery->prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siqualiy) VALUES(:seriespartid, :fname, :md5, :size, :dvd, :type, :fileno, :quality)"); } FilesTreeModel::~FilesTreeModel(){ delete mUpdateDvdQuery; + delete mUpdateQualityQuery; + delete mInsertFileQuery; mDb = QSqlDatabase(); } @@ -195,3 +200,30 @@ Qt::ItemFlags FilesTreeModel::flags(const QModelIndex &index) const{ } return retval; } + +bool FilesTreeModel::addFile(const QString &fullPath, int type, int quality, int filePart, int seriesPartId, int dvd){ + QFileInfo fi(fullPath); + qint64 size = fi.size(); + if(!fi.exists()){ + //should be a dvd + size = Q_INT64_C(4707319808); + } + + QString md5Sum = Helper::md5Sum(fullPath); + + //prepare query + mDb.transaction(); + mInsertFileQuery->bindValue(":seriespartid", seriesPartId); + mInsertFileQuery->bindValue(":fname", fi.fileName()); + mInsertFileQuery->bindValue(":md5", md5Sum); + mInsertFileQuery->bindValue(":size", size); + mInsertFileQuery->bindValue(":dvd", dvd); + mInsertFileQuery->bindValue(":type", type); + mInsertFileQuery->bindValue(":fileno", filePart); + mInsertFileQuery->bindValue(":quality", quality); + + //insert item + if(mInsertFileQuery->exec()){ + + } +} -- cgit v1.2.3-70-g09d2