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