diff options
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r-- | archivemodel.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp index 940f18f..75f6509 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -507,6 +507,38 @@ bool ArchiveModel::setFavorite(int partId, bool favorite){ return false; } +void ArchiveModel::addCovers(int partId, const QStringList covers){ + QSqlQuery coverQ(mDb); + coverQ.prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, sifiletype, cpicsize) VALUES(:id, :fn, :md5, :size, :type, :picsize)"); + foreach(QString c, covers){ + QFileInfo fi(c); + if(!fi.exists()){ + continue; + } + qint64 size = fi.size(); + QString md5sum = Helper::md5Sum(c); + QVariant picSize = Helper::picSize(c); + int type = ArchiveFilesModel::GeneralCover; + QString archivedFile = Helper::moveToArchive(c, md5sum, true); + if(archivedFile.isEmpty()){ + //copy failed + continue; + } + QFileInfo afi(archivedFile); + coverQ.bindValue(":id", partId); + coverQ.bindValue(":fn", afi.fileName()); + coverQ.bindValue(":md5", md5sum); + coverQ.bindValue(":size", size); + coverQ.bindValue(":type", type); + coverQ.bindValue(":picsize", picSize); + if(coverQ.exec()){ + QFile::remove(c); + }else{ + QFile::remove(archivedFile); + } + } +} + QStringList ArchiveModel::allSources() const{ QSqlQuery sQ("SELECT DISTINCT(tsourcemedium) FROM metadata ORDER BY tsourcemedium ASC", mDb); QStringList retval; |