From a8bd9a2310bd630dd4e72fe0ff54a8be17e80064 Mon Sep 17 00:00:00 2001 From: Arno Moeller Date: Fri, 18 Jun 2010 11:40:47 +0200 Subject: Implemented SeriesTreeModel::deleteFromSeries It compiles, let's ship it. Totally untested. --- seriestreemodel.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'seriestreemodel.cpp') diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp index 0da1b04..b8a4425 100644 --- a/seriestreemodel.cpp +++ b/seriestreemodel.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include @@ -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); -- cgit v1.2.3-70-g09d2