summaryrefslogtreecommitdiffstats
path: root/filestreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r--filestreemodel.cpp32
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()){
+
+ }
+}