diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp index 31aac45e3..6e55f3163 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp @@ -171,18 +171,7 @@ void PrintingSelector::getAllSetsForCurrentCard() } else { setsToUse = filteredSets; } - - const auto &cardProviderId = - SettingsCache::instance().cardOverrides().getCardPreferenceOverride(selectedCard->getName()); - if (!cardProviderId.isEmpty()) { - for (int i = 0; i < setsToUse.size(); ++i) { - const auto &card = setsToUse[i]; - if (card.getProperty("uuid") == cardProviderId) { - setsToUse.move(i, 0); - break; - } - } - } + setsToUse = sortToolBar->prependSelectedPrintings(setsToUse, selectedCard->getName()); // Defer widget creation currentIndex = 0; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp index aac777332..179cafb89 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp @@ -74,7 +74,7 @@ void PrintingSelectorCardSortingWidget::updateSortSetting() * @param cardInfoPerSets The list of card sets to be sorted. * @return A sorted list of card sets. */ -QList PrintingSelectorCardSortingWidget::sortSets(CardInfoPerSetMap cardInfoPerSets) +QList PrintingSelectorCardSortingWidget::sortSets(const CardInfoPerSetMap &cardInfoPerSets) { QList sortedSets; @@ -148,6 +148,24 @@ QList PrintingSelectorCardSortingWidget::filterSets(const QList< return filteredSets; } +QList PrintingSelectorCardSortingWidget::prependSelectedPrintings(const QList &sets, + const QString &cardName) +{ + auto setsToUse = sets; + const auto &cardProviderId = SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName); + if (!cardProviderId.isEmpty()) { + for (int i = 0; i < setsToUse.size(); ++i) { + const auto &card = setsToUse[i]; + if (card.getProperty("uuid") == cardProviderId) { + setsToUse.move(i, 0); + break; + } + } + } + + return setsToUse; +} + /** * @brief Prepend card printings that are contained in the deck to the list of card sets. * diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h index 6c9efa4e6..dd03689bd 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h @@ -12,9 +12,10 @@ class PrintingSelectorCardSortingWidget : public QWidget Q_OBJECT public: explicit PrintingSelectorCardSortingWidget(PrintingSelector *parent); - QList sortSets(CardInfoPerSetMap cardInfoPerSets); - static QList filterSets(const QList &sets, const QString &searchText); - static QList prependPrintingsInDeck(const QList &sets, + QList sortSets(const CardInfoPerSetMap &cardInfoPerSets); + QList filterSets(const QList &sets, const QString &searchText); + QList prependSelectedPrintings(const QList &sets, const QString &cardName); + QList prependPrintingsInDeck(const QList &sets, const CardInfoPtr &selectedCard, DeckListModel *deckModel);