diff options
-rw-r--r-- | archivetreeview.cpp | 23 | ||||
-rw-r--r-- | archivetreeview.h | 1 | ||||
-rw-r--r-- | seriestreewidget.h | 1 | ||||
-rw-r--r-- | shemov.cpp | 7 | ||||
-rw-r--r-- | shemov.h | 1 |
5 files changed, 31 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"){ diff --git a/archivetreeview.h b/archivetreeview.h index 342e3c4..0de5782 100644 --- a/archivetreeview.h +++ b/archivetreeview.h @@ -47,6 +47,7 @@ class ArchiveTreeView : public QWidget public slots: void setFileViewMode(int mode); + void showAllFiles(); void cleanDatabase(const QString &table); void showNoCoverDialog(); void selectMovie(const QModelIndex &idx); diff --git a/seriestreewidget.h b/seriestreewidget.h index 9c2438e..9e2e0dc 100644 --- a/seriestreewidget.h +++ b/seriestreewidget.h @@ -115,6 +115,7 @@ class SeriesTreeSortModel : public QSortFilterProxyModel { public: SeriesTreeSortModel(QObject *parent = 0); ~SeriesTreeSortModel() {} + bool acceptedByFilter(int source_row, const QModelIndex &parent) const { return filterAcceptsRow(source_row, parent); } protected: virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const; @@ -468,6 +468,8 @@ void SheMov::createActions(){ mShowNormalA->setChecked(true); mShowNoCoverDialogA = new QAction(QIcon(":/higheels.png"), tr("List movies without cover..."), this); connect(mShowNoCoverDialogA, SIGNAL(triggered()), mATree, SLOT(showNoCoverDialog())); + mShowAllFilesA = new QAction(tr("Show All files"), this); + connect(mShowAllFilesA, SIGNAL(triggered()), mATree, SLOT(showAllFiles())); //Tree view headers QHash<QString, int> headerData = filesModel->headerData(); @@ -667,6 +669,7 @@ void SheMov::createMenus(){ mTreeViewMenu->addAction(mShowNormalA); mTreeViewMenu->addAction(mShowLocalA); mTreeViewMenu->addAction(mShowArchivedA); + mTreeViewMenu->addAction(mShowAllFilesA); QAction *sep14 = new QAction(this); sep14->setSeparator(true); mTreeViewMenu->addAction(sep14); @@ -779,6 +782,10 @@ void SheMov::createMenus(){ sep7->setSeparator(true); mATree->filesWidget()->filesTree()->addAction(sep7); mATree->filesWidget()->filesTree()->addActions(mEditGroup->actions()); + QAction *sep21 = new QAction(this); + sep21->setSeparator(true); + mATree->filesWidget()->filesTree()->addAction(sep20); + mATree->filesWidget()->filesTree()->addAction(mShowAllFilesA); QAction *sep8 = new QAction(this); sep8->setSeparator(true); mATree->filesWidget()->filesTree()->addAction(sep8); @@ -120,6 +120,7 @@ class SheMov : public QMainWindow { QAction *mShowLocalA; QAction *mShowArchivedA; QAction *mShowNormalA; + QAction *mShowAllFilesA; QAction *mShowNoCoverDialogA; QActionGroup *mShowTreeGroup; QAction *mHoverPicsA; |