diff options
author | Arno <am@disconnect.de> | 2014-04-04 16:13:24 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2014-04-04 16:13:24 +0200 |
commit | 78c36ad6caab4a6c22bc95ee1f983ea841416ab9 (patch) | |
tree | ecbfd36fc3852c92d87570a2b7172d22473aa44c /archivemodel.cpp | |
parent | fedc8437f088a666462f21858f82733d2aa33761 (diff) | |
download | SheMov-78c36ad6caab4a6c22bc95ee1f983ea841416ab9.tar.gz SheMov-78c36ad6caab4a6c22bc95ee1f983ea841416ab9.tar.bz2 SheMov-78c36ad6caab4a6c22bc95ee1f983ea841416ab9.zip |
Delete SeriesPart
Make it possible to delete a SeriesPart. This may happen if eg. you
download the same clip/movie with a better quality.
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r-- | archivemodel.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
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<int> &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); } |