From 3699ffafe4864a1e20c8980a610d68756c37f5cf Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 22 May 2011 09:41:36 +0200 Subject: Propagate changes from SeriesTreeModel::IsLocaL Propagate changes to SeriesTreeModel::IsLocal to all attached views. For some reason this wasn't as easy as I thought... --- archivetreeview.cpp | 61 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 18 deletions(-) (limited to 'archivetreeview.cpp') diff --git a/archivetreeview.cpp b/archivetreeview.cpp index 65eb11f..0fa471d 100644 --- a/archivetreeview.cpp +++ b/archivetreeview.cpp @@ -46,7 +46,7 @@ #include "seriesmetadatamodel.h" #include "helper.h" -ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){ +ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent), mShowAllFiles(false){ // models mActorsModel = static_cast(SmGlobals::instance()->model("actors")); mGenresModel = static_cast(SmGlobals::instance()->model("genres")); @@ -106,28 +106,43 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){ void ArchiveTreeView::setFileViewMode(int mode){ mSeriesModel->setRowFilter(mode); mSeriesWidget->seriesProxy()->invalidate(); + mFilesModel->setMode(mode); + showAllFiles(mShowAllFiles); constructWindowTitle(); mSeriesWidget->expandItems(); } -void ArchiveTreeView::showAllFiles(){ - int seriesRow = 0; - QModelIndex series = mSeriesModel->index(seriesRow, 0, QModelIndex()); - QList ids; - while(series.isValid()){ - int childRow = 0; - QModelIndex child = mSeriesModel->index(childRow, 0, series); - while(child.isValid()){ - if(mSeriesWidget->seriesProxy()->acceptedByFilter(child.row(), child.parent())){ - ids << child.data(SeriesTreeModel::SeriesPartIdRole).toInt(); +void ArchiveTreeView::showAllFiles(bool toggled){ + mShowAllFiles = toggled; + if(mShowAllFiles){ + int seriesRow = 0; + QModelIndex series = mSeriesModel->index(seriesRow, 0, QModelIndex()); + QList ids; + while(series.isValid()){ + int childRow = 0; + QModelIndex child = mSeriesModel->index(childRow, 0, series); + while(child.isValid()){ + if(mSeriesWidget->seriesProxy()->acceptedByFilter(child.row(), child.parent())){ + ids << child.data(SeriesTreeModel::SeriesPartIdRole).toInt(); + } + child = mSeriesModel->index(++childRow, 0, child.parent()); } - child = mSeriesModel->index(++childRow, 0, child.parent()); + series = mSeriesModel->index(++seriesRow, 0, series.parent()); + } + mFilesModel->setIds(ids); + mFilesWidget->filesTree()->expandAll(); + mFilesWidget->filesTree()->resizeColumnToContents(0); + }else{ + QModelIndexList selectedSeries = mSeriesWidget->seriesTree()->selectionModel()->selectedRows(); + QModelIndex selected; + if(selectedSeries.isEmpty()){ + selected = mSeriesWidget->seriesProxy()->index(0, 0); + }else{ + selected = selectedSeries.at(0); } - series = mSeriesModel->index(++seriesRow, 0, series.parent()); + mSeriesWidget->seriesTree()->selectionModel()->setCurrentIndex(selected, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + currentChanged(QItemSelection(), QItemSelection()); } - mFilesModel->setIds(ids); - mFilesWidget->filesTree()->expandAll(); - mFilesWidget->filesTree()->resizeColumnToContents(0); } void ArchiveTreeView::cleanDatabase(const QString &table){ @@ -312,8 +327,18 @@ void ArchiveTreeView::invalidateSorting(){ } void ArchiveTreeView::constructWindowTitle(){ - QString modeString = mFilesModel->modeName(mFilesModel->mode()); - mWindowTitle = QString("Movie Archive - [%1]").arg(modeString); + int rowFilter = mSeriesModel->rowFilter(); + mWindowTitle = QString(tr("Movie Archive")); + switch(rowFilter){ + case SeriesTreeModel::Archived: + mWindowTitle.append(tr(" - [Archived]")); + break; + case SeriesTreeModel::Local: + mWindowTitle.append(tr(" - [Local]")); + break; + default: + ; + } emit needWindowTitleChange(mWindowTitle); } -- cgit v1.2.3-70-g09d2