Allow tokens to consider providerIds. (#6075)

Tokens created through Ctrl + T use the pinned printing, if available.
Tokens created through a related card menu use a token from the same set, if available.

Took 2 hours 25 minutes

Took 10 seconds

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2025-08-15 07:10:36 +02:00 committed by GitHub
parent 3a42354efd
commit f2cbdae829
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 36 additions and 9 deletions

View file

@ -198,7 +198,16 @@ void DlgCreateToken::tokenSelectionChanged(const QModelIndex &current, const QMo
annotationEdit->setText("");
}
pic->setCard(CardDatabaseManager::getInstance()->getPreferredCard(cardInfo));
const auto &cardProviderId =
SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardInfo->getName());
if (!cardProviderId.isEmpty()) {
CardRef ref;
ref.name = cardInfo->getName();
ref.providerId = cardProviderId;
pic->setCard(CardDatabaseManager::getInstance()->getCard(ref));
} else {
pic->setCard(CardDatabaseManager::getInstance()->getPreferredCard(cardInfo));
}
}
void DlgCreateToken::updateSearchFieldWithoutUpdatingFilter(const QString &newValue) const
@ -250,5 +259,6 @@ TokenInfo DlgCreateToken::getTokenInfo() const
.pt = ptEdit->text(),
.annotation = annotationEdit->text(),
.destroy = destroyCheckBox->isChecked(),
.faceDown = faceDownCheckBox->isChecked()};
.faceDown = faceDownCheckBox->isChecked(),
.providerId = SettingsCache::instance().cardOverrides().getCardPreferenceOverride(nameEdit->text())};
}