diff options
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r-- | filestreemodel.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp index cbfbd24..35883d3 100644 --- a/filestreemodel.cpp +++ b/filestreemodel.cpp @@ -8,6 +8,7 @@ #include <QSqlQuery> #include <QLocale> #include <QIcon> +#include <QFileInfo> #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()){ + + } +} |