fix: find by prefix if card not found only
This commit is contained in:
parent
9092f2298b
commit
10ab53c4ac
1 changed files with 3 additions and 1 deletions
|
@ -719,7 +719,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml)
|
|||
|
||||
CardInfo *CardNameMap::findByPrefix(const std::string &prefix) {
|
||||
for (CardNameMap::iterator it = this->begin(); it != this->end(); ++it) {
|
||||
if (std::mismatch(prefix.begin(), prefix.end(),
|
||||
if (std::mismatch(prefix.begin(), prefix.end(),
|
||||
it.key().toStdString().begin()).first == prefix.end())
|
||||
return it.value();
|
||||
}
|
||||
|
@ -731,6 +731,8 @@ CardInfo *CardDatabase::getCardFromMap(CardNameMap &cardMap, const QString &card
|
|||
|
||||
if (cardName.isEmpty())
|
||||
return noCard;
|
||||
else if (cardMap.contains(cardName))
|
||||
return cardMap.value(cardName);
|
||||
else if ((foundCard = cardMap.findByPrefix(cardName.toStdString())))
|
||||
return foundCard;
|
||||
else if (createIfNotFound) {
|
||||
|
|
Loading…
Reference in a new issue