From 47d30d5f4838a1980545c36308858efc7d5bde0d Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 22 May 2011 05:54:07 +0200 Subject: Update IsLocal when setting DVD no. The field IsLocal in the SeriesTreeModel is now properly updated when the DVD no. changes. It still doesn't propagate to the file view, though. --- filestreewidget.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'filestreewidget.cpp') diff --git a/filestreewidget.cpp b/filestreewidget.cpp index 6999c06..678abb1 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -230,17 +230,22 @@ void FilesTreeWidget::edit(int column){ value = QInputDialog::getInt(this, msg, msg, sIdxes.first().data().toInt(), -1, 10, 1, &dialogOk); } if(column == FilesTreeModel::DvdNo){ - SeriesTreeModel *seriesModel = static_cast(SmGlobals::instance()->model("SeriesModel")); - int nextDvdNo = seriesModel->findNextDvdNo(); + int nextDvdNo = mSeriesModel->findNextDvdNo(); value = QInputDialog::getInt(this, msg, msg, nextDvdNo, -1, 2147483647, 1, &dialogOk); } if(dialogOk){ foreach(QModelIndex curIdx, sIdxes){ mModel->setData(curIdx, value, Qt::EditRole); - } - // reload the view - if((column == FilesTreeModel::DvdNo) && (mModel->mode() != FilesTreeModel::Normal)){ - mModel->setMode(mModel->mode()); + if(column == FilesTreeModel::DvdNo){ + if(curIdx.data(FilesTreeModel::FileTypeRole).toInt() == FilesTreeModel::Movie){ + QModelIndex seriesIdx = mSeriesModel->findRecursive(curIdx.data(FilesTreeModel::SeriesPartIdRole), SeriesTreeModel::SeriesPartId, mSeriesModel->index(0, 0, QModelIndex())); + if(seriesIdx.isValid()){ + QModelIndex isLocalIdx = mSeriesModel->index(seriesIdx.row(), SeriesTreeModel::IsLocal, seriesIdx.parent()); + bool isLocal = (value > -1) ? false : true; + mSeriesModel->setData(isLocalIdx, isLocal, Qt::EditRole); + } + } + } } } } -- cgit v1.2.3-70-g09d2