mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-27 08:24:39 -07:00
[Card] Rename CardSearchLanguage to SearchLanguageMode
This commit is contained in:
parent
04f77bd9f7
commit
ad8ebde2a1
21 changed files with 72 additions and 72 deletions
|
|
@ -50,7 +50,7 @@ static std::once_flag init;
|
||||||
struct DeckSearchLanguageContext
|
struct DeckSearchLanguageContext
|
||||||
{
|
{
|
||||||
QString searchLanguage;
|
QString searchLanguage;
|
||||||
CardSearchLanguage searchLanguageMode = CardSearchLanguage::English;
|
SearchLanguageMode searchLanguageMode = SearchLanguageMode::English;
|
||||||
};
|
};
|
||||||
thread_local DeckSearchLanguageContext deckSearchLanguageContext;
|
thread_local DeckSearchLanguageContext deckSearchLanguageContext;
|
||||||
|
|
||||||
|
|
@ -128,7 +128,7 @@ static void setupParserRules()
|
||||||
// actual functionality
|
// actual functionality
|
||||||
search["DeckContentQuery"] = [](const peg::SemanticValues &sv) -> DeckFilter {
|
search["DeckContentQuery"] = [](const peg::SemanticValues &sv) -> DeckFilter {
|
||||||
const QString searchLanguage = deckSearchLanguageContext.searchLanguage;
|
const QString searchLanguage = deckSearchLanguageContext.searchLanguage;
|
||||||
const CardSearchLanguage searchLanguageMode = deckSearchLanguageContext.searchLanguageMode;
|
const SearchLanguageMode searchLanguageMode = deckSearchLanguageContext.searchLanguageMode;
|
||||||
auto cardFilter = FilterString(std::any_cast<QString>(sv[0]), searchLanguage, searchLanguageMode);
|
auto cardFilter = FilterString(std::any_cast<QString>(sv[0]), searchLanguage, searchLanguageMode);
|
||||||
auto numberMatcher = sv.size() > 1 ? std::any_cast<NumberMatcher>(sv[1]) : [](int count) { return count > 0; };
|
auto numberMatcher = sv.size() > 1 ? std::any_cast<NumberMatcher>(sv[1]) : [](int count) { return count > 0; };
|
||||||
|
|
||||||
|
|
@ -201,7 +201,7 @@ DeckFilterString::DeckFilterString()
|
||||||
|
|
||||||
DeckFilterString::DeckFilterString(const QString &expr,
|
DeckFilterString::DeckFilterString(const QString &expr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode)
|
SearchLanguageMode searchLanguageMode)
|
||||||
{
|
{
|
||||||
QByteArray ba = expr.simplified().toUtf8();
|
QByteArray ba = expr.simplified().toUtf8();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public:
|
||||||
DeckFilterString();
|
DeckFilterString();
|
||||||
explicit DeckFilterString(const QString &expr,
|
explicit DeckFilterString(const QString &expr,
|
||||||
const QString &searchLanguage = QString(),
|
const QString &searchLanguage = QString(),
|
||||||
CardSearchLanguage searchLanguageMode = CardSearchLanguage::English);
|
SearchLanguageMode searchLanguageMode = SearchLanguageMode::English);
|
||||||
bool check(const DeckSearchData &data) const
|
bool check(const DeckSearchData &data) const
|
||||||
{
|
{
|
||||||
return filter(data);
|
return filter(data);
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ DlgCreateToken::DlgCreateToken(const QStringList &_predefinedTokens, QWidget *pa
|
||||||
CardsDisplaySettings *cardsDisplay = &SettingsCache::instance().cardsDisplay();
|
CardsDisplaySettings *cardsDisplay = &SettingsCache::instance().cardsDisplay();
|
||||||
const auto applyCardSearchLanguage = [this, cardsDisplay]() {
|
const auto applyCardSearchLanguage = [this, cardsDisplay]() {
|
||||||
cardDatabaseDisplayModel->setSearchLanguage(
|
cardDatabaseDisplayModel->setSearchLanguage(
|
||||||
cardsDisplay->getCardLang(), static_cast<CardSearchLanguage>(cardsDisplay->getCardSearchLanguage()));
|
cardsDisplay->getCardLang(), static_cast<SearchLanguageMode>(cardsDisplay->getCardSearchLanguage()));
|
||||||
};
|
};
|
||||||
applyCardSearchLanguage();
|
applyCardSearchLanguage();
|
||||||
connect(cardsDisplay, &CardsDisplaySettings::cardLangChanged, this, applyCardSearchLanguage);
|
connect(cardsDisplay, &CardsDisplaySettings::cardLangChanged, this, applyCardSearchLanguage);
|
||||||
|
|
|
||||||
|
|
@ -258,7 +258,7 @@ void ZoneViewZone::setFilterString(const QString &_filterString)
|
||||||
{
|
{
|
||||||
const CardsDisplaySettings &cardsDisplay = SettingsCache::instance().cardsDisplay();
|
const CardsDisplaySettings &cardsDisplay = SettingsCache::instance().cardsDisplay();
|
||||||
filterString = FilterString(_filterString, cardsDisplay.getCardLang(),
|
filterString = FilterString(_filterString, cardsDisplay.getCardLang(),
|
||||||
static_cast<CardSearchLanguage>(cardsDisplay.getCardSearchLanguage()));
|
static_cast<SearchLanguageMode>(cardsDisplay.getCardSearchLanguage()));
|
||||||
reorganizeCards();
|
reorganizeCards();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ DeckEditorDatabaseDisplayWidget::DeckEditorDatabaseDisplayWidget(QWidget *parent
|
||||||
CardsDisplaySettings *cardsDisplay = &SettingsCache::instance().cardsDisplay();
|
CardsDisplaySettings *cardsDisplay = &SettingsCache::instance().cardsDisplay();
|
||||||
const auto applyCardSearchLanguage = [this, cardsDisplay]() {
|
const auto applyCardSearchLanguage = [this, cardsDisplay]() {
|
||||||
databaseDisplayModel->setSearchLanguage(cardsDisplay->getCardLang(),
|
databaseDisplayModel->setSearchLanguage(cardsDisplay->getCardLang(),
|
||||||
static_cast<CardSearchLanguage>(cardsDisplay->getCardSearchLanguage()));
|
static_cast<SearchLanguageMode>(cardsDisplay->getCardSearchLanguage()));
|
||||||
};
|
};
|
||||||
applyCardSearchLanguage();
|
applyCardSearchLanguage();
|
||||||
connect(cardsDisplay, &CardsDisplaySettings::cardLangChanged, this, applyCardSearchLanguage);
|
connect(cardsDisplay, &CardsDisplaySettings::cardLangChanged, this, applyCardSearchLanguage);
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ GeneralSettingsPage::GeneralSettingsPage()
|
||||||
cardSearchLanguageBox.addItem("");
|
cardSearchLanguageBox.addItem("");
|
||||||
cardSearchLanguageBox.addItem("");
|
cardSearchLanguageBox.addItem("");
|
||||||
const int cardSearchLanguageIndex = SettingsCache::instance().cardsDisplay().getCardSearchLanguage();
|
const int cardSearchLanguageIndex = SettingsCache::instance().cardsDisplay().getCardSearchLanguage();
|
||||||
cardSearchLanguageBox.setCurrentIndex(cardSearchLanguageIndex < 0 ? static_cast<int>(CardSearchLanguage::English)
|
cardSearchLanguageBox.setCurrentIndex(cardSearchLanguageIndex < 0 ? static_cast<int>(SearchLanguageMode::English)
|
||||||
: cardSearchLanguageIndex);
|
: cardSearchLanguageIndex);
|
||||||
|
|
||||||
connect(&cardSearchLanguageBox, qOverload<int>(&QComboBox::currentIndexChanged), this,
|
connect(&cardSearchLanguageBox, qOverload<int>(&QComboBox::currentIndexChanged), this,
|
||||||
|
|
@ -521,10 +521,10 @@ void GeneralSettingsPage::retranslateUi()
|
||||||
cardLanguageNoteLabel.setText(
|
cardLanguageNoteLabel.setText(
|
||||||
tr("Foreign card names, text and art apply after you update the card database (Oracle)."));
|
tr("Foreign card names, text and art apply after you update the card database (Oracle)."));
|
||||||
cardSearchLanguageLabel.setText(tr("Language used in card search:"));
|
cardSearchLanguageLabel.setText(tr("Language used in card search:"));
|
||||||
cardSearchLanguageBox.setItemText(static_cast<int>(CardSearchLanguage::English), tr("English"));
|
cardSearchLanguageBox.setItemText(static_cast<int>(SearchLanguageMode::English), tr("English"));
|
||||||
cardSearchLanguageBox.setItemText(static_cast<int>(CardSearchLanguage::Selected),
|
cardSearchLanguageBox.setItemText(static_cast<int>(SearchLanguageMode::Selected),
|
||||||
tr("Selected card language (untranslated cards still match in English)"));
|
tr("Selected card language (untranslated cards still match in English)"));
|
||||||
cardSearchLanguageBox.setItemText(static_cast<int>(CardSearchLanguage::Both),
|
cardSearchLanguageBox.setItemText(static_cast<int>(SearchLanguageMode::Both),
|
||||||
tr("English and selected card language"));
|
tr("English and selected card language"));
|
||||||
advertiseTranslationPageLabel.setText(
|
advertiseTranslationPageLabel.setText(
|
||||||
QString("<a href='%1'>%2</a>").arg(WIKI_TRANSLATION_FAQ).arg(tr("How to help with translations")));
|
QString("<a href='%1'>%2</a>").arg(WIKI_TRANSLATION_FAQ).arg(tr("How to help with translations")));
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ void applyCardSearchLanguage(CardSearchModel *searchModel)
|
||||||
{
|
{
|
||||||
const auto &cardsDisplay = SettingsCache::instance().cardsDisplay();
|
const auto &cardsDisplay = SettingsCache::instance().cardsDisplay();
|
||||||
searchModel->setSearchLanguage(cardsDisplay.getCardLang(),
|
searchModel->setSearchLanguage(cardsDisplay.getCardLang(),
|
||||||
static_cast<CardSearchLanguage>(cardsDisplay.getCardSearchLanguage()));
|
static_cast<SearchLanguageMode>(cardsDisplay.getCardSearchLanguage()));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
||||||
CardsDisplaySettings *cardsDisplay = &SettingsCache::instance().cardsDisplay();
|
CardsDisplaySettings *cardsDisplay = &SettingsCache::instance().cardsDisplay();
|
||||||
const auto applyCardSearchLanguage = [this, cardsDisplay]() {
|
const auto applyCardSearchLanguage = [this, cardsDisplay]() {
|
||||||
databaseDisplayModel->setSearchLanguage(cardsDisplay->getCardLang(),
|
databaseDisplayModel->setSearchLanguage(cardsDisplay->getCardLang(),
|
||||||
static_cast<CardSearchLanguage>(cardsDisplay->getCardSearchLanguage()));
|
static_cast<SearchLanguageMode>(cardsDisplay->getCardSearchLanguage()));
|
||||||
};
|
};
|
||||||
applyCardSearchLanguage();
|
applyCardSearchLanguage();
|
||||||
connect(cardsDisplay, &CardsDisplaySettings::cardLangChanged, this, applyCardSearchLanguage);
|
connect(cardsDisplay, &CardsDisplaySettings::cardLangChanged, this, applyCardSearchLanguage);
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@ void VisualDeckStorageSortFilterProxyModel::updateSearchMatches()
|
||||||
|
|
||||||
const auto &cardsDisplay = SettingsCache::instance().cardsDisplay();
|
const auto &cardsDisplay = SettingsCache::instance().cardsDisplay();
|
||||||
DeckFilterString filterString(searchText, cardsDisplay.getCardLang(),
|
DeckFilterString filterString(searchText, cardsDisplay.getCardLang(),
|
||||||
static_cast<CardSearchLanguage>(cardsDisplay.getCardSearchLanguage()));
|
static_cast<SearchLanguageMode>(cardsDisplay.getCardSearchLanguage()));
|
||||||
for (int row = 0; row < count; ++row) {
|
for (int row = 0; row < count; ++row) {
|
||||||
const DeckPreviewData &data = source->dataForRow(row);
|
const DeckPreviewData &data = source->dataForRow(row);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
/**
|
/**
|
||||||
* @brief The card languages card search should run against.
|
* @brief The card languages card search should run against.
|
||||||
*/
|
*/
|
||||||
enum class CardSearchLanguage
|
enum class SearchLanguageMode
|
||||||
{
|
{
|
||||||
English, ///< Only search the English card names and texts.
|
English, ///< Only search the English card names and texts.
|
||||||
Selected, ///< Search the selected card language (untranslated cards still match in English).
|
Selected, ///< Search the selected card language (untranslated cards still match in English).
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ static std::once_flag init;
|
||||||
struct SearchLanguageContext
|
struct SearchLanguageContext
|
||||||
{
|
{
|
||||||
QString searchLanguage;
|
QString searchLanguage;
|
||||||
CardSearchLanguage searchLanguageMode = CardSearchLanguage::English;
|
SearchLanguageMode searchLanguageMode = SearchLanguageMode::English;
|
||||||
};
|
};
|
||||||
thread_local SearchLanguageContext searchLanguageContext;
|
thread_local SearchLanguageContext searchLanguageContext;
|
||||||
|
|
||||||
|
|
@ -92,14 +92,14 @@ namespace
|
||||||
bool matchesInSearchLanguage(const QString &english,
|
bool matchesInSearchLanguage(const QString &english,
|
||||||
const QString &localized,
|
const QString &localized,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode,
|
SearchLanguageMode searchLanguageMode,
|
||||||
const StringMatcher &matcher)
|
const StringMatcher &matcher)
|
||||||
{
|
{
|
||||||
if (searchLanguageMode == CardSearchLanguage::English) {
|
if (searchLanguageMode == SearchLanguageMode::English) {
|
||||||
return matcher(english);
|
return matcher(english);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchLanguageMode == CardSearchLanguage::Both && matcher(english)) {
|
if (searchLanguageMode == SearchLanguageMode::Both && matcher(english)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -371,7 +371,7 @@ static void setupParserRules()
|
||||||
search["OracleQuery"] = [](const peg::SemanticValues &sv) -> Filter {
|
search["OracleQuery"] = [](const peg::SemanticValues &sv) -> Filter {
|
||||||
const auto matcher = std::any_cast<StringMatcher>(sv[0]);
|
const auto matcher = std::any_cast<StringMatcher>(sv[0]);
|
||||||
const QString searchLanguage = searchLanguageContext.searchLanguage;
|
const QString searchLanguage = searchLanguageContext.searchLanguage;
|
||||||
const CardSearchLanguage searchLanguageMode = searchLanguageContext.searchLanguageMode;
|
const SearchLanguageMode searchLanguageMode = searchLanguageContext.searchLanguageMode;
|
||||||
return [=](const CardData &x) {
|
return [=](const CardData &x) {
|
||||||
return matchesInSearchLanguage(x->getText(), x->getLocalizedText(searchLanguage), searchLanguage,
|
return matchesInSearchLanguage(x->getText(), x->getLocalizedText(searchLanguage), searchLanguage,
|
||||||
searchLanguageMode, matcher);
|
searchLanguageMode, matcher);
|
||||||
|
|
@ -453,7 +453,7 @@ static void setupParserRules()
|
||||||
search["GenericQuery"] = [](const peg::SemanticValues &sv) -> Filter {
|
search["GenericQuery"] = [](const peg::SemanticValues &sv) -> Filter {
|
||||||
const auto matcher = std::any_cast<StringMatcher>(sv[0]);
|
const auto matcher = std::any_cast<StringMatcher>(sv[0]);
|
||||||
const QString searchLanguage = searchLanguageContext.searchLanguage;
|
const QString searchLanguage = searchLanguageContext.searchLanguage;
|
||||||
const CardSearchLanguage searchLanguageMode = searchLanguageContext.searchLanguageMode;
|
const SearchLanguageMode searchLanguageMode = searchLanguageContext.searchLanguageMode;
|
||||||
return [=](const CardData &x) {
|
return [=](const CardData &x) {
|
||||||
return matchesInSearchLanguage(x->getName(), x->getLocalizedName(searchLanguage), searchLanguage,
|
return matchesInSearchLanguage(x->getName(), x->getLocalizedName(searchLanguage), searchLanguage,
|
||||||
searchLanguageMode, matcher);
|
searchLanguageMode, matcher);
|
||||||
|
|
@ -472,7 +472,7 @@ FilterString::FilterString()
|
||||||
_error = "Not initialized";
|
_error = "Not initialized";
|
||||||
}
|
}
|
||||||
|
|
||||||
FilterString::FilterString(const QString &expr, const QString &searchLanguage, CardSearchLanguage searchLanguageMode)
|
FilterString::FilterString(const QString &expr, const QString &searchLanguage, SearchLanguageMode searchLanguageMode)
|
||||||
{
|
{
|
||||||
QByteArray ba = expr.simplified().toUtf8();
|
QByteArray ba = expr.simplified().toUtf8();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public:
|
||||||
FilterString();
|
FilterString();
|
||||||
explicit FilterString(const QString &exp,
|
explicit FilterString(const QString &exp,
|
||||||
const QString &searchLanguage = QString(),
|
const QString &searchLanguage = QString(),
|
||||||
CardSearchLanguage searchLanguageMode = CardSearchLanguage::English);
|
SearchLanguageMode searchLanguageMode = SearchLanguageMode::English);
|
||||||
[[nodiscard]] bool check(const CardData &card) const
|
[[nodiscard]] bool check(const CardData &card) const
|
||||||
{
|
{
|
||||||
if (card.isNull()) {
|
if (card.isNull()) {
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ FilterTreeNode *FilterItemList::termNode(const QString &term)
|
||||||
bool FilterItemList::testTypeAnd(const CardInfoPtr info,
|
bool FilterItemList::testTypeAnd(const CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
for (auto i = childNodes.constBegin(); i != childNodes.constEnd(); i++) {
|
for (auto i = childNodes.constBegin(); i != childNodes.constEnd(); i++) {
|
||||||
if (!(*i)->isEnabled()) {
|
if (!(*i)->isEnabled()) {
|
||||||
|
|
@ -121,7 +121,7 @@ bool FilterItemList::testTypeAnd(const CardInfoPtr info,
|
||||||
bool FilterItemList::testTypeAndNot(const CardInfoPtr info,
|
bool FilterItemList::testTypeAndNot(const CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
// if any one in the list is true, return false
|
// if any one in the list is true, return false
|
||||||
return !testTypeOr(info, attr, searchLanguage, searchLanguageMode);
|
return !testTypeOr(info, attr, searchLanguage, searchLanguageMode);
|
||||||
|
|
@ -130,7 +130,7 @@ bool FilterItemList::testTypeAndNot(const CardInfoPtr info,
|
||||||
bool FilterItemList::testTypeOr(const CardInfoPtr info,
|
bool FilterItemList::testTypeOr(const CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
bool noChildEnabledChild = true;
|
bool noChildEnabledChild = true;
|
||||||
|
|
||||||
|
|
@ -154,7 +154,7 @@ bool FilterItemList::testTypeOr(const CardInfoPtr info,
|
||||||
bool FilterItemList::testTypeOrNot(const CardInfoPtr info,
|
bool FilterItemList::testTypeOrNot(const CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
// if any one in the list is false, return true
|
// if any one in the list is false, return true
|
||||||
return !testTypeAnd(info, attr, searchLanguage, searchLanguageMode);
|
return !testTypeAnd(info, attr, searchLanguage, searchLanguageMode);
|
||||||
|
|
@ -162,13 +162,13 @@ bool FilterItemList::testTypeOrNot(const CardInfoPtr info,
|
||||||
|
|
||||||
bool FilterItem::acceptName(const CardInfoPtr info,
|
bool FilterItem::acceptName(const CardInfoPtr info,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
if (searchLanguageMode == CardSearchLanguage::English) {
|
if (searchLanguageMode == SearchLanguageMode::English) {
|
||||||
return info->getName().contains(term, Qt::CaseInsensitive);
|
return info->getName().contains(term, Qt::CaseInsensitive);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchLanguageMode == CardSearchLanguage::Both && info->getName().contains(term, Qt::CaseInsensitive)) {
|
if (searchLanguageMode == SearchLanguageMode::Both && info->getName().contains(term, Qt::CaseInsensitive)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -181,13 +181,13 @@ bool FilterItem::acceptName(const CardInfoPtr info,
|
||||||
|
|
||||||
bool FilterItem::acceptNameExact(const CardInfoPtr info,
|
bool FilterItem::acceptNameExact(const CardInfoPtr info,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
if (searchLanguageMode == CardSearchLanguage::English) {
|
if (searchLanguageMode == SearchLanguageMode::English) {
|
||||||
return info->getName() == term;
|
return info->getName() == term;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchLanguageMode == CardSearchLanguage::Both && info->getName() == term) {
|
if (searchLanguageMode == SearchLanguageMode::Both && info->getName() == term) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -255,13 +255,13 @@ bool FilterItem::acceptColor(const CardInfoPtr info) const
|
||||||
|
|
||||||
bool FilterItem::acceptText(const CardInfoPtr info,
|
bool FilterItem::acceptText(const CardInfoPtr info,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
if (searchLanguageMode == CardSearchLanguage::English) {
|
if (searchLanguageMode == SearchLanguageMode::English) {
|
||||||
return info->getText().contains(term, Qt::CaseInsensitive);
|
return info->getText().contains(term, Qt::CaseInsensitive);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchLanguageMode == CardSearchLanguage::Both && info->getText().contains(term, Qt::CaseInsensitive)) {
|
if (searchLanguageMode == SearchLanguageMode::Both && info->getText().contains(term, Qt::CaseInsensitive)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -459,7 +459,7 @@ bool FilterItem::relationCheck(int cardInfo) const
|
||||||
bool FilterItem::acceptCardAttr(const CardInfoPtr info,
|
bool FilterItem::acceptCardAttr(const CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
switch (attr) {
|
switch (attr) {
|
||||||
case CardFilter::AttrName:
|
case CardFilter::AttrName:
|
||||||
|
|
@ -544,7 +544,7 @@ FilterTreeNode *FilterTree::termNode(const CardFilter *f)
|
||||||
bool FilterTree::testAttr(const CardInfoPtr info,
|
bool FilterTree::testAttr(const CardInfoPtr info,
|
||||||
const LogicMap *lm,
|
const LogicMap *lm,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
const FilterItemList *fil;
|
const FilterItemList *fil;
|
||||||
bool status = true;
|
bool status = true;
|
||||||
|
|
@ -579,7 +579,7 @@ bool FilterTree::testAttr(const CardInfoPtr info,
|
||||||
|
|
||||||
bool FilterTree::acceptsCard(const CardInfoPtr info,
|
bool FilterTree::acceptsCard(const CardInfoPtr info,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const
|
SearchLanguageMode searchLanguageMode) const
|
||||||
{
|
{
|
||||||
for (auto i = childNodes.constBegin(); i != childNodes.constEnd(); i++) {
|
for (auto i = childNodes.constBegin(); i != childNodes.constEnd(); i++) {
|
||||||
if ((*i)->isEnabled() && !testAttr(info, *i, searchLanguage, searchLanguageMode)) {
|
if ((*i)->isEnabled() && !testAttr(info, *i, searchLanguage, searchLanguageMode)) {
|
||||||
|
|
|
||||||
|
|
@ -171,19 +171,19 @@ public:
|
||||||
[[nodiscard]] bool testTypeAnd(CardInfoPtr info,
|
[[nodiscard]] bool testTypeAnd(CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const;
|
SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool testTypeAndNot(CardInfoPtr info,
|
[[nodiscard]] bool testTypeAndNot(CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const;
|
SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool testTypeOr(CardInfoPtr info,
|
[[nodiscard]] bool testTypeOr(CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const;
|
SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool testTypeOrNot(CardInfoPtr info,
|
[[nodiscard]] bool testTypeOrNot(CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const;
|
SearchLanguageMode searchLanguageMode) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
class FilterItem : public FilterTreeNode
|
class FilterItem : public FilterTreeNode
|
||||||
|
|
@ -221,15 +221,15 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] bool
|
[[nodiscard]] bool
|
||||||
acceptName(CardInfoPtr info, const QString &searchLanguage, CardSearchLanguage searchLanguageMode) const;
|
acceptName(CardInfoPtr info, const QString &searchLanguage, SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool
|
[[nodiscard]] bool
|
||||||
acceptNameExact(CardInfoPtr info, const QString &searchLanguage, CardSearchLanguage searchLanguageMode) const;
|
acceptNameExact(CardInfoPtr info, const QString &searchLanguage, SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool acceptType(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptType(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool acceptMainType(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptMainType(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool acceptSubType(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptSubType(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool acceptColor(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptColor(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool
|
[[nodiscard]] bool
|
||||||
acceptText(CardInfoPtr info, const QString &searchLanguage, CardSearchLanguage searchLanguageMode) const;
|
acceptText(CardInfoPtr info, const QString &searchLanguage, SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool acceptSet(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptSet(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool acceptManaCost(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptManaCost(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool acceptCmc(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptCmc(CardInfoPtr info) const;
|
||||||
|
|
@ -239,7 +239,7 @@ public:
|
||||||
[[nodiscard]] bool acceptCardAttr(CardInfoPtr info,
|
[[nodiscard]] bool acceptCardAttr(CardInfoPtr info,
|
||||||
CardFilter::Attr attr,
|
CardFilter::Attr attr,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const;
|
SearchLanguageMode searchLanguageMode) const;
|
||||||
[[nodiscard]] bool acceptFormat(CardInfoPtr info) const;
|
[[nodiscard]] bool acceptFormat(CardInfoPtr info) const;
|
||||||
[[nodiscard]] bool relationCheck(int cardInfo) const;
|
[[nodiscard]] bool relationCheck(int cardInfo) const;
|
||||||
};
|
};
|
||||||
|
|
@ -262,7 +262,7 @@ private:
|
||||||
bool testAttr(CardInfoPtr info,
|
bool testAttr(CardInfoPtr info,
|
||||||
const LogicMap *lm,
|
const LogicMap *lm,
|
||||||
const QString &searchLanguage,
|
const QString &searchLanguage,
|
||||||
CardSearchLanguage searchLanguageMode) const;
|
SearchLanguageMode searchLanguageMode) const;
|
||||||
|
|
||||||
void nodeChanged() const override
|
void nodeChanged() const override
|
||||||
{
|
{
|
||||||
|
|
@ -302,7 +302,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] bool
|
[[nodiscard]] bool
|
||||||
acceptsCard(CardInfoPtr info, const QString &searchLanguage, CardSearchLanguage searchLanguageMode) const;
|
acceptsCard(CardInfoPtr info, const QString &searchLanguage, SearchLanguageMode searchLanguageMode) const;
|
||||||
void removeFiltersByAttr(CardFilter::Attr filterType);
|
void removeFiltersByAttr(CardFilter::Attr filterType);
|
||||||
void removeFilter(const CardFilter *toRemove);
|
void removeFilter(const CardFilter *toRemove);
|
||||||
void clear();
|
void clear();
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ void CardSearchModel::updateSearchResults(const QString &query)
|
||||||
// The completer suggestions match against the same languages the card
|
// The completer suggestions match against the same languages the card
|
||||||
// search uses, so typing a localized name finds the card.
|
// search uses, so typing a localized name finds the card.
|
||||||
QString matchName = card->getName();
|
QString matchName = card->getName();
|
||||||
if (searchLanguageMode != CardSearchLanguage::English && !searchLanguage.isEmpty() && searchLanguage != "en") {
|
if (searchLanguageMode != SearchLanguageMode::English && !searchLanguage.isEmpty() && searchLanguage != "en") {
|
||||||
matchName = card->getLocalizedName(searchLanguage);
|
matchName = card->getLocalizedName(searchLanguage);
|
||||||
}
|
}
|
||||||
const QString lowerName = matchName.toLower();
|
const QString lowerName = matchName.toLower();
|
||||||
|
|
@ -88,7 +88,7 @@ void CardSearchModel::updateSearchResults(const QString &query)
|
||||||
auto sortByDistanceThenLength = [this](const SearchResult &a, const SearchResult &b) {
|
auto sortByDistanceThenLength = [this](const SearchResult &a, const SearchResult &b) {
|
||||||
QString nameA = a.card->getName();
|
QString nameA = a.card->getName();
|
||||||
QString nameB = b.card->getName();
|
QString nameB = b.card->getName();
|
||||||
if (searchLanguageMode != CardSearchLanguage::English && !searchLanguage.isEmpty() && searchLanguage != "en") {
|
if (searchLanguageMode != SearchLanguageMode::English && !searchLanguage.isEmpty() && searchLanguage != "en") {
|
||||||
nameA = a.card->getLocalizedName(searchLanguage);
|
nameA = a.card->getLocalizedName(searchLanguage);
|
||||||
nameB = b.card->getLocalizedName(searchLanguage);
|
nameB = b.card->getLocalizedName(searchLanguage);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ public:
|
||||||
|
|
||||||
void updateSearchResults(const QString &query); // Update results based on input
|
void updateSearchResults(const QString &query); // Update results based on input
|
||||||
|
|
||||||
void setSearchLanguage(const QString &searchLang, CardSearchLanguage mode)
|
void setSearchLanguage(const QString &searchLang, SearchLanguageMode mode)
|
||||||
{
|
{
|
||||||
if (searchLanguage == searchLang && searchLanguageMode == mode) {
|
if (searchLanguage == searchLang && searchLanguageMode == mode) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -46,7 +46,7 @@ private:
|
||||||
CardDatabaseDisplayModel *sourceModel;
|
CardDatabaseDisplayModel *sourceModel;
|
||||||
QList<SearchResult> searchResults;
|
QList<SearchResult> searchResults;
|
||||||
QString searchLanguage;
|
QString searchLanguage;
|
||||||
CardSearchLanguage searchLanguageMode = CardSearchLanguage::English;
|
SearchLanguageMode searchLanguageMode = SearchLanguageMode::English;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CARD_SEARCH_MODEL_H
|
#endif // CARD_SEARCH_MODEL_H
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ bool CardDatabaseDisplayModel::filterAcceptsRow(int sourceRow, const QModelIndex
|
||||||
bool CardDatabaseDisplayModel::rowMatchesCardName(CardInfoPtr info) const
|
bool CardDatabaseDisplayModel::rowMatchesCardName(CardInfoPtr info) const
|
||||||
{
|
{
|
||||||
if (!cardName.isEmpty() && !info->getName().contains(cardName, Qt::CaseInsensitive) &&
|
if (!cardName.isEmpty() && !info->getName().contains(cardName, Qt::CaseInsensitive) &&
|
||||||
searchLanguageMode != CardSearchLanguage::English && !searchLanguage.isEmpty() && searchLanguage != "en" &&
|
searchLanguageMode != SearchLanguageMode::English && !searchLanguage.isEmpty() && searchLanguage != "en" &&
|
||||||
!info->getLocalizedName(searchLanguage).contains(cardName, Qt::CaseInsensitive)) {
|
!info->getLocalizedName(searchLanguage).contains(cardName, Qt::CaseInsensitive)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -245,7 +245,7 @@ void CardDatabaseDisplayModel::setStringFilter(const QString &_src)
|
||||||
dirty();
|
dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardDatabaseDisplayModel::setSearchLanguage(const QString &searchLang, CardSearchLanguage mode)
|
void CardDatabaseDisplayModel::setSearchLanguage(const QString &searchLang, SearchLanguageMode mode)
|
||||||
{
|
{
|
||||||
if (searchLanguage == searchLang && searchLanguageMode == mode) {
|
if (searchLanguage == searchLang && searchLanguageMode == mode) {
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ private:
|
||||||
int loadedRowCount;
|
int loadedRowCount;
|
||||||
QTimer dirtyTimer;
|
QTimer dirtyTimer;
|
||||||
QString searchLanguage;
|
QString searchLanguage;
|
||||||
CardSearchLanguage searchLanguageMode = CardSearchLanguage::English;
|
SearchLanguageMode searchLanguageMode = SearchLanguageMode::English;
|
||||||
QString searchText;
|
QString searchText;
|
||||||
|
|
||||||
/** The translation table that will be used for sanitizeCardName. */
|
/** The translation table that will be used for sanitizeCardName. */
|
||||||
|
|
@ -65,7 +65,7 @@ public:
|
||||||
cardNameSet = _cardNameSet;
|
cardNameSet = _cardNameSet;
|
||||||
dirty();
|
dirty();
|
||||||
}
|
}
|
||||||
void setSearchLanguage(const QString &searchLang, CardSearchLanguage mode);
|
void setSearchLanguage(const QString &searchLang, SearchLanguageMode mode);
|
||||||
|
|
||||||
void dirty()
|
void dirty()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ QString CardsDisplaySettings::getCardLang() const
|
||||||
|
|
||||||
int CardsDisplaySettings::getCardSearchLanguage() const
|
int CardsDisplaySettings::getCardSearchLanguage() const
|
||||||
{
|
{
|
||||||
return getValue("cardSearchLanguage", QString(), QString(), static_cast<int>(CardSearchLanguage::English)).toInt();
|
return getValue("cardSearchLanguage", QString(), QString(), static_cast<int>(SearchLanguageMode::English)).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardsDisplaySettings::setDisplayCardNames(bool _displayCardNames)
|
void CardsDisplaySettings::setDisplayCardNames(bool _displayCardNames)
|
||||||
|
|
|
||||||
|
|
@ -84,42 +84,42 @@ CardInfoPtr localizedCat()
|
||||||
TEST_F(CardQuery, SearchLanguageEnglishMatchesOnlyEnglish)
|
TEST_F(CardQuery, SearchLanguageEnglishMatchesOnlyEnglish)
|
||||||
{
|
{
|
||||||
const CardData localized = localizedCat();
|
const CardData localized = localizedCat();
|
||||||
ASSERT_TRUE(FilterString("Cat", "de", CardSearchLanguage::English).check(localized));
|
ASSERT_TRUE(FilterString("Cat", "de", SearchLanguageMode::English).check(localized));
|
||||||
ASSERT_FALSE(FilterString("Kater", "de", CardSearchLanguage::English).check(localized));
|
ASSERT_FALSE(FilterString("Kater", "de", SearchLanguageMode::English).check(localized));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(CardQuery, SearchLanguageSelectedMatchesLocalizedNameAndText)
|
TEST_F(CardQuery, SearchLanguageSelectedMatchesLocalizedNameAndText)
|
||||||
{
|
{
|
||||||
const CardData localized = localizedCat();
|
const CardData localized = localizedCat();
|
||||||
ASSERT_TRUE(FilterString("Kater", "de", CardSearchLanguage::Selected).check(localized));
|
ASSERT_TRUE(FilterString("Kater", "de", SearchLanguageMode::Selected).check(localized));
|
||||||
ASSERT_TRUE(FilterString("o:miaut", "de", CardSearchLanguage::Selected).check(localized));
|
ASSERT_TRUE(FilterString("o:miaut", "de", SearchLanguageMode::Selected).check(localized));
|
||||||
ASSERT_FALSE(FilterString("Cat", "de", CardSearchLanguage::Selected).check(localized));
|
ASSERT_FALSE(FilterString("Cat", "de", SearchLanguageMode::Selected).check(localized));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(CardQuery, SearchLanguageSelectedFallsBackToEnglishForUntranslatedCards)
|
TEST_F(CardQuery, SearchLanguageSelectedFallsBackToEnglishForUntranslatedCards)
|
||||||
{
|
{
|
||||||
const CardData localized = localizedCat();
|
const CardData localized = localizedCat();
|
||||||
ASSERT_TRUE(FilterString("Cat", "fr", CardSearchLanguage::Selected).check(localized));
|
ASSERT_TRUE(FilterString("Cat", "fr", SearchLanguageMode::Selected).check(localized));
|
||||||
ASSERT_FALSE(FilterString("Kater", "fr", CardSearchLanguage::Selected).check(localized));
|
ASSERT_FALSE(FilterString("Kater", "fr", SearchLanguageMode::Selected).check(localized));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(CardQuery, SearchLanguageBothMatchesEitherLanguage)
|
TEST_F(CardQuery, SearchLanguageBothMatchesEitherLanguage)
|
||||||
{
|
{
|
||||||
const CardData localized = localizedCat();
|
const CardData localized = localizedCat();
|
||||||
ASSERT_TRUE(FilterString("Cat", "de", CardSearchLanguage::Both).check(localized));
|
ASSERT_TRUE(FilterString("Cat", "de", SearchLanguageMode::Both).check(localized));
|
||||||
ASSERT_TRUE(FilterString("Kater", "de", CardSearchLanguage::Both).check(localized));
|
ASSERT_TRUE(FilterString("Kater", "de", SearchLanguageMode::Both).check(localized));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(CardQuery, SearchLanguageIsBoundPerInstance)
|
TEST_F(CardQuery, SearchLanguageIsBoundPerInstance)
|
||||||
{
|
{
|
||||||
const CardData localized = localizedCat();
|
const CardData localized = localizedCat();
|
||||||
|
|
||||||
FilterString germanQuery("Kater", "de", CardSearchLanguage::Selected);
|
FilterString germanQuery("Kater", "de", SearchLanguageMode::Selected);
|
||||||
ASSERT_TRUE(germanQuery.check(localized));
|
ASSERT_TRUE(germanQuery.check(localized));
|
||||||
|
|
||||||
// Constructing an English-bound instance afterwards must not change the
|
// Constructing an English-bound instance afterwards must not change the
|
||||||
// language the earlier instance searches in.
|
// language the earlier instance searches in.
|
||||||
FilterString englishQuery("Kater", "", CardSearchLanguage::English);
|
FilterString englishQuery("Kater", "", SearchLanguageMode::English);
|
||||||
ASSERT_FALSE(englishQuery.check(localized));
|
ASSERT_FALSE(englishQuery.check(localized));
|
||||||
ASSERT_TRUE(germanQuery.check(localized));
|
ASSERT_TRUE(germanQuery.check(localized));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -565,14 +565,14 @@ TEST_F(SettingsDefaultsTest, CardsDisplay_CardLang_SetAndGet)
|
||||||
TEST_F(SettingsDefaultsTest, CardsDisplay_CardSearchLanguage_Default)
|
TEST_F(SettingsDefaultsTest, CardsDisplay_CardSearchLanguage_Default)
|
||||||
{
|
{
|
||||||
CardsDisplaySettings s(settingsPath, nullptr);
|
CardsDisplaySettings s(settingsPath, nullptr);
|
||||||
ASSERT_EQ(s.getCardSearchLanguage(), static_cast<int>(CardSearchLanguage::English));
|
ASSERT_EQ(s.getCardSearchLanguage(), static_cast<int>(SearchLanguageMode::English));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(SettingsDefaultsTest, CardsDisplay_CardSearchLanguage_SetAndGet)
|
TEST_F(SettingsDefaultsTest, CardsDisplay_CardSearchLanguage_SetAndGet)
|
||||||
{
|
{
|
||||||
CardsDisplaySettings s(settingsPath, nullptr);
|
CardsDisplaySettings s(settingsPath, nullptr);
|
||||||
s.setCardSearchLanguage(static_cast<int>(CardSearchLanguage::Selected));
|
s.setCardSearchLanguage(static_cast<int>(SearchLanguageMode::Selected));
|
||||||
ASSERT_EQ(s.getCardSearchLanguage(), static_cast<int>(CardSearchLanguage::Selected));
|
ASSERT_EQ(s.getCardSearchLanguage(), static_cast<int>(SearchLanguageMode::Selected));
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- VisualDeckStorageSettings ---
|
// --- VisualDeckStorageSettings ---
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue