summaryrefslogtreecommitdiffstats
path: root/seriestreemodel.cpp
diff options
context:
space:
mode:
authorArno Moeller <am@mindwerk.de>2010-06-18 11:40:47 +0200
committerArno Moeller <am@mindwerk.de>2010-06-18 11:42:16 +0200
commita8bd9a2310bd630dd4e72fe0ff54a8be17e80064 (patch)
tree8cd3e720224cc693eac966267f27b7f1848bf739 /seriestreemodel.cpp
parentbf883fc87c19f10dd4bc74947883792d3af0537c (diff)
downloadSheMov-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.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);