summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filestreemodel.cpp15
-rw-r--r--filestreemodel.h2
-rw-r--r--filestreewidget.cpp6
3 files changed, 22 insertions, 1 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index fd6264a..38ef000 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -38,6 +38,8 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
mFilesQuery->prepare("SELECT tfilename, cmd5sum FROM files WHERE iseriespart_id = :id");
mDeleteFileQuery = new QSqlQuery(mDb);
mDeleteFileQuery->prepare("DELETE FROM files WHERE ifiles_id = :id");
+ mFileTypeQuery = new QSqlQuery(mDb);
+ mFileTypeQuery->prepare("SELECT sifiletype FROM files WHERE cmd5sum = :md5");
//file types
mFileTypes.insert(1, tr("Movie"));
@@ -362,6 +364,19 @@ QMap<QString, QString> FilesTreeModel::pictureMetaInfo(const QModelIndex &idx){
return retval;
}
+int FilesTreeModel::fileType(const QString &md5sum) const{
+ if(md5sum == "00000000000000000000000000000000"){
+ return -1;
+ }
+ mFileTypeQuery->bindValue(":md5", md5sum);
+ int retval = -1;
+ mFileTypeQuery->exec();
+ while(mFileTypeQuery->next()){
+ retval = mFileTypeQuery->value(0).toInt();
+ }
+ 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();
diff --git a/filestreemodel.h b/filestreemodel.h
index a620312..5140478 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -44,6 +44,7 @@ class FilesTreeModel : public SmTreeModel {
QMap<QString, QString> pictureInfo(const QString &path) const;
QMap<QString, QString> pictureInfo(const QModelIndex &idx) const;
QMap<QString, QString> pictureMetaInfo(const QModelIndex &idx);
+ int fileType(const QString &md5sum) const;
//file manipulation
bool addFile(const QString &fullPath, int type, int quality, int filePart, int seriesPartId, int dvd = -1);
@@ -66,6 +67,7 @@ class FilesTreeModel : public SmTreeModel {
QSqlQuery *mInsertFileQuery;
QSqlQuery *mFilesQuery;
QSqlQuery *mDeleteFileQuery;
+ QSqlQuery *mFileTypeQuery;
//misc
QHash<int, QString> mFileTypes;
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index 7fbc0fc..b017d7d 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -90,7 +90,11 @@ void FilesTreeWidget::moveToBurn(){
foreach(QString name, files.keys()){
QString sourceFile = Helper::createArchivePath(name, files.value(name));
QString targetFile = QString("%1/%2/%3").arg(burnDir).arg(dirName).arg(name);
- if(name == i.data(FilesTreeModel::FileNameRole).toString()){
+ int fileType = mModel->fileType(files.value(name));
+ if(fileType == -1){
+ continue;
+ }
+ if(fileType == FilesTreeModel::Movie){
QFile::rename(sourceFile, targetFile);
}else{
QFile::copy(sourceFile, targetFile);