diff options
author | Arno <am@disconnect.de> | 2011-05-15 09:58:19 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2011-05-15 09:58:19 +0200 |
commit | 9b2f7da813faea42587c0a78435a41aa338471fe (patch) | |
tree | 97b3107d499695502d397af3d5c4eced92d4adcf /archivetreeview.cpp | |
parent | 3a70006747322708b81b91f52b447abb33d91df0 (diff) | |
download | SheMov-9b2f7da813faea42587c0a78435a41aa338471fe.tar.gz SheMov-9b2f7da813faea42587c0a78435a41aa338471fe.tar.bz2 SheMov-9b2f7da813faea42587c0a78435a41aa338471fe.zip |
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.
Diffstat (limited to 'archivetreeview.cpp')
-rw-r--r-- | archivetreeview.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
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<SeriesTreeModel*>(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<int> 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"){ |