From 78c36ad6caab4a6c22bc95ee1f983ea841416ab9 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 4 Apr 2014 16:13:24 +0200 Subject: Delete SeriesPart Make it possible to delete a SeriesPart. This may happen if eg. you download the same clip/movie with a better quality. --- archivemodel.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'archivemodel.cpp') diff --git a/archivemodel.cpp b/archivemodel.cpp index 3fcd34e..0e29c37 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -507,6 +507,34 @@ void ArchiveModel::addCovers(int partId, const QStringList covers){ } } +bool ArchiveModel::deleteSeriesPart(int partId){ + QSqlQuery filesQ(mDb); + filesQ.prepare("SELECT cmd5sum,tfilename FROM files WHERE iseriespart_id = :id"); + filesQ.bindValue(":id", partId); + QStringList fileNames; + if(filesQ.exec()){ + while(filesQ.next()){ + QString md5 = filesQ.value(0).toString(); + QString fn = filesQ.value(1).toString(); + fileNames << Helper::createArchivePath(fn, md5); + } + bool success = true; + foreach(QString f, fileNames){ + if(!QFile::remove(f)){ + success = false; + break; + } + } + if(success){ + QSqlQuery deleteQ(mDb); + deleteQ.prepare("DELETE FROM seriesparts WHERE iseriesparts_id = :id"); + deleteQ.bindValue(":id", partId); + return deleteQ.exec(); + } + } + return false; +} + QStringList ArchiveModel::allSources() const{ QSqlQuery sQ("SELECT DISTINCT(tsourcemedium) FROM metadata ORDER BY tsourcemedium ASC", mDb); QStringList retval; @@ -914,6 +942,18 @@ void ArchiveFilesModel::populate(const QSet &seriesPartIds){ setRoot(root); } +QStringList ArchiveFilesModel::filesForSeriespart(int seriesPartId) const{ + QStringList retval; + QSqlQuery q(mDb); + q.prepare("SELECT tfilename FROM files where iseriespart_id = :id ORDER BY tfilename DESC"); + q.bindValue(":id", seriesPartId); + q.exec(); + while(q.next()){ + retval.append(q.value(0).toString()); + } + return retval; +} + void ArchiveFilesModel::refresh(){ populate(mSeriesPartIds); } -- cgit v1.2.3-70-g09d2