Hide arena only cards (#5759)

* Add settings (default: true) to ignore online-only cards

* Use QAbstractButton::toggled

Also, fix dbconverter build

* Mocks mocks mocks

* Update dlg_manage_sets.cpp

* translations

* Update dlg_manage_sets.cpp

---------

Co-authored-by: Zach H <zahalpern+github@gmail.com>
This commit is contained in:
Basile Clement 2025-03-22 06:07:42 +01:00 committed by GitHub
parent 345606846f
commit 0ae7d01234
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 330 additions and 259 deletions

View file

@ -8,6 +8,7 @@
#include "../settings/cache_settings.h"
#include <QAction>
#include <QCheckBox>
#include <QDebug>
#include <QDialogButtonBox>
#include <QGridLayout>
@ -162,6 +163,11 @@ WndSets::WndSets(QWidget *parent) : QMainWindow(parent)
sortWarning->setLayout(sortWarningLayout);
sortWarning->setVisible(false);
includeOnlineOnlyCards = SettingsCache::instance().getIncludeOnlineOnlyCards();
QCheckBox *onlineOnly = new QCheckBox(tr("Include online-only (Arena) cards [requires restart]"));
onlineOnly->setChecked(includeOnlineOnlyCards);
connect(onlineOnly, &QAbstractButton::toggled, this, &WndSets::includeOnlineOnlyCardsChanged);
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actSave()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(actRestore()));
@ -175,8 +181,9 @@ WndSets::WndSets(QWidget *parent) : QMainWindow(parent)
mainLayout->addWidget(enableSomeButton, 2, 1);
mainLayout->addWidget(disableSomeButton, 2, 2);
mainLayout->addWidget(sortWarning, 3, 1, 1, 2);
mainLayout->addWidget(hintsGroupBox, 4, 1, 1, 2);
mainLayout->addWidget(buttonBox, 5, 1, 1, 2);
mainLayout->addWidget(onlineOnly, 4, 1, 1, 2);
mainLayout->addWidget(hintsGroupBox, 5, 1, 1, 2);
mainLayout->addWidget(buttonBox, 6, 1, 1, 2);
mainLayout->setColumnStretch(1, 1);
mainLayout->setColumnStretch(2, 1);
@ -239,9 +246,15 @@ void WndSets::rebuildMainLayout(int actionToTake)
}
}
void WndSets::includeOnlineOnlyCardsChanged(bool _includeOnlineOnlyCards)
{
includeOnlineOnlyCards = _includeOnlineOnlyCards;
}
void WndSets::actSave()
{
model->save(CardDatabaseManager::getInstance());
SettingsCache::instance().setIncludeOnlineOnlyCards(includeOnlineOnlyCards);
PictureLoader::clearPixmapCache();
close();
}