From 9b2f7da813faea42587c0a78435a41aa338471fe Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 15 May 2011 09:58:19 +0200 Subject: Implement show all files Implemented a new function showing all files belonging to the selected series. The function respectect the current filter of the SeriesTreeWidget. --- archivetreeview.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'archivetreeview.cpp') diff --git a/archivetreeview.cpp b/archivetreeview.cpp index 7587a6a..9bb5aae 100644 --- a/archivetreeview.cpp +++ b/archivetreeview.cpp @@ -103,13 +103,32 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){ } void ArchiveTreeView::setFileViewMode(int mode){ - SeriesTreeModel *seriesModel = static_cast(SmGlobals::instance()->model("SeriesModel")); - seriesModel->setRowFilter(mode); + mSeriesModel->setRowFilter(mode); mSeriesWidget->seriesProxy()->invalidate(); 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(); + } + child = mSeriesModel->index(++childRow, 0, child.parent()); + } + series = mSeriesModel->index(++seriesRow, 0, series.parent()); + } + mFilesModel->setIds(ids); + mFilesWidget->filesTree()->expandAll(); + mFilesWidget->filesTree()->resizeColumnToContents(0); +} + void ArchiveTreeView::cleanDatabase(const QString &table){ MappingTableModel *model = 0; if(table == "genres"){ -- cgit v1.2.3-70-g09d2