summaryrefslogtreecommitdiffstats
path: root/seriestreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'seriestreemodel.cpp')
-rw-r--r--seriestreemodel.cpp16
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;
}