diff options
author | Arno Moeller <am@mindwerk.de> | 2010-06-18 11:40:47 +0200 |
---|---|---|
committer | Arno Moeller <am@mindwerk.de> | 2010-06-18 11:42:16 +0200 |
commit | a8bd9a2310bd630dd4e72fe0ff54a8be17e80064 (patch) | |
tree | 8cd3e720224cc693eac966267f27b7f1848bf739 /seriestreemodel.cpp | |
parent | bf883fc87c19f10dd4bc74947883792d3af0537c (diff) | |
download | SheMov-a8bd9a2310bd630dd4e72fe0ff54a8be17e80064.tar.gz SheMov-a8bd9a2310bd630dd4e72fe0ff54a8be17e80064.tar.bz2 SheMov-a8bd9a2310bd630dd4e72fe0ff54a8be17e80064.zip |
Implemented SeriesTreeModel::deleteFromSeries
It compiles, let's ship it. Totally untested.
Diffstat (limited to 'seriestreemodel.cpp')
-rw-r--r-- | seriestreemodel.cpp | 25 |
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); |