diff options
Diffstat (limited to 'archivebrowser.cpp')
-rw-r--r-- | archivebrowser.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/archivebrowser.cpp b/archivebrowser.cpp index 281c2fa..9234dbb 100644 --- a/archivebrowser.cpp +++ b/archivebrowser.cpp @@ -56,6 +56,7 @@ ArchiveBrowser::ArchiveBrowser(QWidget *parent) : QWidget(parent), mSelectedSize mQualityFilter = new QComboBox; toolBar->addWidget(mQualityFilter); setupQualityFilter(); + toolBar->addSeparator(); QStringList genres = mModel->availableGenres(); std::sort(genres.begin(), genres.end()); QActionGroup *gDataAG = new QActionGroup(this); @@ -72,6 +73,20 @@ ArchiveBrowser::ArchiveBrowser(QWidget *parent) : QWidget(parent), mSelectedSize genreMenu->addActions(gDataAG->actions()); genreA->setMenu(genreMenu); toolBar->addAction(genreA); + QActionGroup *gDataExcludedAG = new QActionGroup(this); + gDataExcludedAG->setExclusive(false); + for(const QString &g : std::as_const(genres)){ + QAction *a = new QAction(g, this); + a->setCheckable(true); + gDataExcludedAG->addAction(a); + connect(a, &QAction::triggered, a, [=] { mProxy->toggleExcludedGenre(a); }); + } + QIcon excludedGenreIcon = Helper::icon(Qt::transparent, qApp->palette().color(QPalette::Text), 'E', true, false); + QAction *excludedGenreA = new QAction(excludedGenreIcon, tr("Filter genres"), this); + QMenu *excludedGenreMenu = new QMenu; + excludedGenreMenu->addActions(gDataExcludedAG->actions()); + excludedGenreA->setMenu(excludedGenreMenu); + toolBar->addAction(excludedGenreA); toolBar->addSeparator(); mSizeFilter = new QCheckBox(tr("Filter by size")); connect(mSizeFilter, &QCheckBox::checkStateChanged, mProxy, &ArchiveBrowserModelProxy::setSizeFilter); |