From 3059637838def4a362952a475981f001c51f9433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Fri, 6 Dec 2024 02:53:05 +0100 Subject: [PATCH] Persist sort options and change default to 'preference'. --- .../printing_selector_card_sorting_widget.cpp | 10 +++++++++- .../printing_selector_card_sorting_widget.h | 1 + cockatrice/src/settings/cache_settings.cpp | 8 ++++++++ cockatrice/src/settings/cache_settings.h | 7 +++++++ 4 files changed, 25 insertions(+), 1 deletion(-) 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 a0d700170..c4c9d47f7 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 @@ -1,5 +1,6 @@ #include "printing_selector_card_sorting_widget.h" +#include "../../../../settings/cache_settings.h" #include "../../../../utility/card_set_comparator.h" const QString PrintingSelectorCardSortingWidget::SORT_OPTIONS_ALPHABETICAL = tr("Alphabetical"); @@ -18,7 +19,9 @@ PrintingSelectorCardSortingWidget::PrintingSelectorCardSortingWidget(PrintingSel sortOptionsSelector = new QComboBox(this); sortOptionsSelector->addItems(SORT_OPTIONS); - sortOptionsSelector->setCurrentIndex(2); + sortOptionsSelector->setCurrentIndex(SettingsCache::instance().getPrintingSelectorSortOrder()); + connect(sortOptionsSelector, &QComboBox::currentTextChanged, this, + &PrintingSelectorCardSortingWidget::updateSortSetting); connect(sortOptionsSelector, &QComboBox::currentTextChanged, parent, &PrintingSelector::updateDisplay); sortToolBar->addWidget(sortOptionsSelector); @@ -40,6 +43,11 @@ void PrintingSelectorCardSortingWidget::updateSortOrder() parent->updateDisplay(); } +void PrintingSelectorCardSortingWidget::updateSortSetting() +{ + SettingsCache::instance().setPrintingSelectorSortOrder(sortOptionsSelector->currentIndex()); +} + QList PrintingSelectorCardSortingWidget::sortSets(CardInfoPerSetMap cardInfoPerSets) { QList sortedSets; 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 6ecd69e9f..b943a6e83 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 @@ -19,6 +19,7 @@ public: public slots: void updateSortOrder(); + void updateSortSetting(); private: PrintingSelector *parent; diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 2cb2d7334..7125a8c9e 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -245,6 +245,7 @@ SettingsCache::SettingsCache() overrideAllCardArtWithPersonalPreference = settings->value("cards/overrideallcardartwithpersonalpreference", false).toBool(); bumpSetsWithCardsInDeckToTop = settings->value("cards/bumpsetswithcardsindecktotop", true).toBool(); + printingSelectorSortOrder = settings->value("cards/printingselectorsortorder", 1).toInt(); horizontalHand = settings->value("hand/horizontal", true).toBool(); invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool(); minPlayersForMultiColumnLayout = settings->value("interface/min_players_multicolumn", 4).toInt(); @@ -544,6 +545,13 @@ void SettingsCache::setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T _bumpSets emit bumpSetsWithCardsInDeckToTopChanged(); } +void SettingsCache::setPrintingSelectorSortOrder(int _printingSelectorSortOrder) +{ + printingSelectorSortOrder = _printingSelectorSortOrder; + settings->setValue("cards/printingselectorsortorder", printingSelectorSortOrder); + emit printingSelectorSortOrderChanged(); +} + void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand) { horizontalHand = static_cast(_horizontalHand); diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index 4274ace80..d7bade998 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -50,6 +50,7 @@ signals: void displayCardNamesChanged(); void overrideAllCardArtWithPersonalPreferenceChanged(); void bumpSetsWithCardsInDeckToTopChanged(); + void printingSelectorSortOrderChanged(); void horizontalHandChanged(); void handJustificationChanged(); void invertVerticalCoordinateChanged(); @@ -103,6 +104,7 @@ private: bool displayCardNames; bool overrideAllCardArtWithPersonalPreference; bool bumpSetsWithCardsInDeckToTop; + int printingSelectorSortOrder; bool horizontalHand; bool invertVerticalCoordinate; int minPlayersForMultiColumnLayout; @@ -311,6 +313,10 @@ public: { return bumpSetsWithCardsInDeckToTop; } + int getPrintingSelectorSortOrder() const + { + return printingSelectorSortOrder; + } bool getHorizontalHand() const { return horizontalHand; @@ -592,6 +598,7 @@ public slots: void setDisplayCardNames(QT_STATE_CHANGED_T _displayCardNames); void setOverrideAllCardArtWithPersonalPreference(QT_STATE_CHANGED_T _overrideAllCardArt); void setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T _bumpSetsWithCardsInDeckToTop); + void setPrintingSelectorSortOrder(int _printingSelectorSortOrder); void setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand); void setInvertVerticalCoordinate(QT_STATE_CHANGED_T _invertVerticalCoordinate); void setMinPlayersForMultiColumnLayout(int _minPlayersForMultiColumnLayout);