diff options
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 70 |
1 files changed, 62 insertions, 8 deletions
@@ -171,6 +171,7 @@ void SheMov::tabChanged(int newTab){ mBackDirA->setEnabled(true); mShowNoCoverDialogA->setEnabled(false); mFilesTreeHeadersGroup->setEnabled(false); + mFilterGroup->setEnabled(false); } if(newTab == 1){ setWindowTitle(mATree->windowTitle()); @@ -178,6 +179,7 @@ void SheMov::tabChanged(int newTab){ mBackDirA->setEnabled(false); mShowNoCoverDialogA->setEnabled(true); mFilesTreeHeadersGroup->setEnabled(true); + mFilterGroup->setEnabled(true); } updateSelectionCount(QItemSelection(), QItemSelection()); } @@ -479,6 +481,46 @@ void SheMov::createActions(){ connect(mHoverMoviesA, SIGNAL(triggered()), hoverMapper, SLOT(map())); mHoverTreeGroup->addAction(mHoverMoviesA); + //Tree view filter + mFilterGroup = new QActionGroup(this); + mFilterMapper = new QSignalMapper(this); + mFilterBySeriesA = new QAction(QIcon(":/butt_plug.png"), tr("Series name"), this); + mFilterBySeriesA->setCheckable(true); + mFilterMapper->setMapping(mFilterBySeriesA, SeriesTreeWidget::FilterSeries); + connect(mFilterBySeriesA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterBySeriesA); + mFilterByActorA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Actor"), this); + mFilterByActorA->setCheckable(true); + mFilterMapper->setMapping(mFilterByActorA, SeriesTreeWidget::FilterActor); + connect(mFilterByActorA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterByActorA); + mFilterByGenreA = new QAction(QIcon(":/spreadingpants.png"), tr("Genre"), this); + mFilterByGenreA->setCheckable(true); + mFilterMapper->setMapping(mFilterByGenreA, SeriesTreeWidget::FilterGenre); + connect(mFilterByGenreA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterByGenreA); + mFilterByQualityA = new QAction(QIcon(":/shackles.png"), tr("Quality"), this); + mFilterByQualityA->setCheckable(true); + mFilterMapper->setMapping(mFilterByQualityA, SeriesTreeWidget::FilterQuality); + connect(mFilterByQualityA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterByQualityA); + mFilterByFilenameA = new QAction(QIcon(":/steel_collar.png"), tr("Filename"), this); + mFilterByFilenameA->setCheckable(true); + mFilterMapper->setMapping(mFilterByFilenameA, SeriesTreeWidget::FilterFileName); + connect(mFilterByFilenameA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterByFilenameA); + mFilterByDvdNoA = new QAction(QIcon(":/big_ass.png"), tr("Dvd No."), this); + mFilterByDvdNoA->setCheckable(true); + mFilterMapper->setMapping(mFilterByDvdNoA, SeriesTreeWidget::FilterDvdNo); + connect(mFilterByDvdNoA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterByDvdNoA); + mFilterBySizeA = new QAction(QIcon(":/hourglass_figure.png"), tr("Size"), this); + mFilterBySizeA->setCheckable(true); + mFilterMapper->setMapping(mFilterBySizeA, SeriesTreeWidget::FilterSize); + connect(mFilterBySizeA, SIGNAL(triggered()), mFilterMapper, SLOT(map())); + mFilterGroup->addAction(mFilterBySizeA); + connect(mFilterMapper, SIGNAL(mapped(int)), mATree->seriesWidget(), SLOT(setFilterMode(int))); + //file view hover mFSHoverGroup = new QActionGroup(this); mFSHoverGroup->setExclusive(false); @@ -594,26 +636,29 @@ void SheMov::createMenus(){ sep14->setSeparator(true); mTreeViewMenu->addAction(sep14); mTreeHeaderMenu = new QMenu(tr("Show headers"), this); - foreach(QAction *a, mFilesTreeHeadersGroup->actions()){ - mTreeHeaderMenu->addAction(a); - } + mTreeHeaderMenu->addActions(mFilesTreeHeadersGroup->actions()); mTreeViewMenu->addMenu(mTreeHeaderMenu); QAction *sep15 = new QAction(this); sep15->setSeparator(true); mTreeViewMenu->addAction(sep15); mTreeHoverMenu = new QMenu(tr("Hover over"), this); - foreach(QAction *a, mHoverTreeGroup->actions()){ - mTreeHoverMenu->addAction(a); - } + mTreeHoverMenu->addActions(mHoverTreeGroup->actions()); mTreeViewMenu->addMenu(mTreeHoverMenu); mViewAVMenuA = menuBar()->addMenu(mTreeViewMenu); + mTreeFilterMenu = new QMenu(tr("Filter by"), this); + mTreeFilterMenu->addActions(mFilterGroup->actions()); + QAction *sep17 = new QAction(this); + sep17->setSeparator(true); + mTreeViewMenu->addAction(sep17); + mTreeViewMenu->addMenu(mTreeFilterMenu); //FileSystem view menu mFSViewMenu = new QMenu(tr("&View"), this); mFSHoverMenu = new QMenu(tr("Hover over"), this); - foreach(QAction *a, mFSHoverGroup->actions()){ + mFSHoverMenu->addActions(mFSHoverGroup->actions()); + /*foreach(QAction *a, mFSHoverGroup->actions()){ mFSHoverMenu->addAction(a); - } + }*/ mFSViewMenu->addMenu(mFSHoverMenu); mViewFSMenuA = menuBar()->addMenu(mFSViewMenu); @@ -779,6 +824,8 @@ void SheMov::createToolBar(){ toolBar->addAction(mShowArchivedA); toolBar->addAction(mShowLocalA); toolBar->addSeparator(); + toolBar->addActions(mFilterGroup->actions()); + toolBar->addSeparator(); toolBar->addAction(mHoverPicsA); toolBar->addAction(mHoverArchiveA); toolBar->addAction(mHoverDirectoriesA); @@ -871,6 +918,13 @@ void SheMov::readSettings(){ pal.setColor(QPalette::AlternateBase, Qt::white); } qApp->setPalette(pal); + int seriesFilterMode = s.value("archive/filtermode").toInt(); + QAction *filterAction = qobject_cast<QAction*>(mFilterMapper->mapping(seriesFilterMode)); + if(filterAction){ + filterAction->trigger(); + mATree->seriesWidget()->filter(); + } + } void SheMov::checkConsistency(){ |