diff options
-rw-r--r-- | filestreemodel.cpp | 15 | ||||
-rw-r--r-- | filestreemodel.h | 2 | ||||
-rw-r--r-- | filestreewidget.cpp | 6 |
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); |