summaryrefslogtreecommitdiffstats
path: root/seriestreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'seriestreemodel.cpp')
-rw-r--r--seriestreemodel.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp
index 0da1b04..b8a4425 100644
--- a/seriestreemodel.cpp
+++ b/seriestreemodel.cpp
@@ -8,6 +8,7 @@
#include <QSqlQuery>
#include <QSqlError>
#include <QIcon>
+#include <QFile>
#include <QDebug>
@@ -25,6 +26,8 @@ SeriesTreeModel::SeriesTreeModel(QStringList &headers, QObject *parent) : SmTree
mUpdateSeriesNameQuery->prepare("UPDATE series SET tseries_name = :newname WHERE iseries_id = :id");
mDeleteSeriesQuery = new QSqlQuery(mDb);
mDeleteSeriesQuery->prepare("DELETE FROM series where iseries_id = :id");
+ mDeleteSeriesPartQuery = new QSqlQuery(mDb);
+ mDeleteSeriesPartQuery->prepare("DELETE FROM seriesparts WHERE iseriesparts_id = :id");
mSeriesInsertQuery = new QSqlQuery(mDb);
mSeriesInsertQuery->prepare("INSERT INTO series(tseries_name) VALUES(:name)");
mSeriesFilesQuery = new QSqlQuery(mDb);
@@ -177,6 +180,28 @@ QFileInfoList SeriesTreeModel::findFiles(const QModelIndex &where) const{
return retval;
}
+bool SeriesTreeModel::deleteFromSeries(const QModelIndex &what){
+ int nodeType = what.data(TypeRole).toInt();
+ QSqlQuery *query = 0;
+ if(nodeType == Series || nodeType == NewSeries){
+ query = mDeleteSeriesQuery;
+ query->bindValue(":id", what.data(SeriesIdRole));
+ }else if(nodeType == Part){
+ query = mDeleteSeriesPartQuery;
+ query->bindValue(":id", what.data(SeriesPartIdRole));
+ }
+ if(query){
+ QFileInfoList files = findFiles(what);
+ if(query->exec()){
+ foreach(QFileInfo fi, files){
+ QFile::remove(fi.absoluteFilePath());
+ }
+ return true;
+ }
+ }
+ return false;
+}
+
void SeriesTreeModel::populate(){
QSqlQuery seriesQuery = QSqlQuery("SELECT iseries_id, tseries_name FROM series ORDER BY tseries_name", mDb);
SmTreeItem *rootItem = new SmTreeItem(5);