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