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 | |
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.
-rw-r--r-- | seriestreemodel.cpp | 25 | ||||
-rw-r--r-- | seriestreemodel.h | 3 | ||||
-rw-r--r-- | seriestreewidget.cpp | 9 | ||||
-rw-r--r-- | seriestreewidget.h | 1 | ||||
-rw-r--r-- | shemov.cpp | 1 |
5 files changed, 38 insertions, 1 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); diff --git a/seriestreemodel.h b/seriestreemodel.h index a393c32..6cb55b8 100644 --- a/seriestreemodel.h +++ b/seriestreemodel.h @@ -34,7 +34,7 @@ class SeriesTreeModel : public SmTreeModel { QFileInfoList findFiles(const QModelIndex &where) const; //delete - //bool deleteFromSeries(const QModelIndex &what); + bool deleteFromSeries(const QModelIndex &what); signals: void needResort(); @@ -49,6 +49,7 @@ class SeriesTreeModel : public SmTreeModel { QSqlQuery *mUpdateSeriesIdQuery; QSqlQuery *mUpdateSeriesNameQuery; QSqlQuery *mDeleteSeriesQuery; + QSqlQuery *mDeleteSeriesPartQuery; QSqlQuery *mSeriesInsertQuery; QSqlQuery *mSeriesFilesQuery; QSqlQuery *mSeriesPartFilesQuery; diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 816a293..071667d 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -46,6 +46,7 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ mView->setColumnHidden(i, true); } mView->resizeColumnToContents(0); + mView->setSelectionMode(QAbstractItemView::ExtendedSelection); connect(mModel, SIGNAL(needResort()), this, SLOT(resort())); //layout @@ -69,6 +70,14 @@ void SeriesTreeWidget::newSeries(){ } } +void SeriesTreeWidget::deleteFromSeries(){ + QModelIndexList selected = mView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + +} + void SeriesTreeWidget::filter(){ mProxy->setFilterRegExp(mFilterEdit->text()); } diff --git a/seriestreewidget.h b/seriestreewidget.h index 6e949b2..4f23afb 100644 --- a/seriestreewidget.h +++ b/seriestreewidget.h @@ -25,6 +25,7 @@ class SeriesTreeWidget : public QWidget { public slots: void newSeries(); + void deleteFromSeries(); private slots: void filter(); @@ -363,6 +363,7 @@ void SheMov::createActions(){ mDeleteFromSeriesA = new QAction(tr("Delete entry..."), this); mATree->seriesWidget()->seriesTree()->addAction(mDeleteFromSeriesA); + // misc mOpenWithMapperFS = new QSignalMapper(this); mOpenWithMapperAV = new QSignalMapper(this); |