diff options
Diffstat (limited to 'seriestreemodel.cpp')
-rw-r--r-- | seriestreemodel.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp index 5113ae9..fb993bb 100644 --- a/seriestreemodel.cpp +++ b/seriestreemodel.cpp @@ -237,6 +237,13 @@ QFileInfoList SeriesTreeModel::findSortedMovies(const QModelIndex &from) const{ return retval; } +int SeriesTreeModel::seriesIdByPartId(int partId){ + if(mSeriesPartSeriesMap.contains(partId)){ + return mSeriesPartSeriesMap.value(partId); + } + return -1; +} + int SeriesTreeModel::findNextDvdNo() const{ int dvdno = 0; mNextDvdNoQuery->exec(); @@ -308,6 +315,7 @@ bool SeriesTreeModel::addSeriesPart(int seriesPart, const QModelIndex &parent){ partData << parent.data(NameRole) << seriesId << id << seriesPart << Part; if(addRow(partData, parent)){ mDb.commit(); + mSeriesPartSeriesMap.insert(id, seriesId); return true; } } @@ -331,6 +339,7 @@ void SeriesTreeModel::populate(){ partData << seriesData.at(Name) << seriesData.at(SeriesId) << mSeriesPartsQuery->value(0) << mSeriesPartsQuery->value(1) << Part; SmTreeItem *partItem = new SmTreeItem(partData, seriesItem); seriesItem->appendChild(partItem); + mSeriesPartSeriesMap.insert(mSeriesPartsQuery->value(0).toInt(), seriesData.at(1).toInt()); } } setRoot(rootItem); @@ -358,6 +367,13 @@ bool SeriesTreeModel::mergeSeries(const QModelIndex &from, const QModelIndex &to //series has to be empty root()->removeChild(from.row()); } + //update seriespartmap + QList<int> seriesPartIds = mSeriesPartSeriesMap.keys(oldSeriesId); + foreach(int seriesPartId, seriesPartIds){ + mSeriesPartSeriesMap.remove(seriesPartId); + mSeriesPartSeriesMap.insert(seriesPartId, newSeriesId); + } + reset(); return true; } |