diff --git a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp index 4957d671f..d5827cd2a 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp @@ -1,6 +1,8 @@ #include "card_size_widget.h" -CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget) : parent(parent), flowWidget(flowWidget) +#include "../../../../settings/cache_settings.h" + +CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget, int defaultValue) : parent(parent), flowWidget(flowWidget) { cardSizeLayout = new QHBoxLayout(this); setLayout(cardSizeLayout); @@ -9,7 +11,7 @@ CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget) : parent cardSizeLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); cardSizeSlider = new QSlider(Qt::Horizontal, this); cardSizeSlider->setRange(50, 250); - cardSizeSlider->setValue(100); + cardSizeSlider->setValue(defaultValue); cardSizeLayout->addWidget(cardSizeLabel); cardSizeLayout->addWidget(cardSizeSlider); @@ -17,6 +19,13 @@ CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget) : parent if (flowWidget != nullptr) { connect(cardSizeSlider, &QSlider::valueChanged, flowWidget, &FlowWidget::setMinimumSizeToMaxSizeHint); } + + connect(cardSizeSlider, &QSlider::valueChanged, this, &CardSizeWidget::updateCardSizeSetting); +} + +void CardSizeWidget::updateCardSizeSetting(int newValue) +{ + SettingsCache::instance().setPrintingSelectorCardSize(newValue); } QSlider *CardSizeWidget::getSlider() const diff --git a/cockatrice/src/client/ui/widgets/cards/card_size_widget.h b/cockatrice/src/client/ui/widgets/cards/card_size_widget.h index dc0960776..69c1f2fa9 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_size_widget.h +++ b/cockatrice/src/client/ui/widgets/cards/card_size_widget.h @@ -13,8 +13,10 @@ class CardSizeWidget : public QWidget Q_OBJECT public: - explicit CardSizeWidget(QWidget *parent, FlowWidget *flowWidget = nullptr); + explicit CardSizeWidget(QWidget *parent, FlowWidget *flowWidget = nullptr, int defaultValue = 100); QSlider *getSlider() const; +public slots: + void updateCardSizeSetting(int newValue); private: QWidget *parent; 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 31985b5a4..c5a6aae6b 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp @@ -33,7 +33,7 @@ PrintingSelector::PrintingSelector(QWidget *parent, flowWidget = new FlowWidget(this, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); layout->addWidget(flowWidget); - cardSizeWidget = new CardSizeWidget(this); + cardSizeWidget = new CardSizeWidget(this, flowWidget, SettingsCache::instance().getPrintingSelectorCardSize()); layout->addWidget(cardSizeWidget); cardSelectionBar = new PrintingSelectorCardSelectionWidget(this); diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 7125a8c9e..0ae5f6255 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -246,6 +246,7 @@ SettingsCache::SettingsCache() settings->value("cards/overrideallcardartwithpersonalpreference", false).toBool(); bumpSetsWithCardsInDeckToTop = settings->value("cards/bumpsetswithcardsindecktotop", true).toBool(); printingSelectorSortOrder = settings->value("cards/printingselectorsortorder", 1).toInt(); + printingSelectorCardSize = settings->value("cards/printingselectorcardsize", 100).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(); @@ -552,6 +553,13 @@ void SettingsCache::setPrintingSelectorSortOrder(int _printingSelectorSortOrder) emit printingSelectorSortOrderChanged(); } +void SettingsCache::setPrintingSelectorCardSize(int _printingSelectorCardSize) +{ + printingSelectorCardSize = _printingSelectorCardSize; + settings->setValue("cards/printingselectorcardsize", printingSelectorCardSize); + emit printingSelectorCardSizeChanged(); +} + 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 d7bade998..abe21824f 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -51,6 +51,7 @@ signals: void overrideAllCardArtWithPersonalPreferenceChanged(); void bumpSetsWithCardsInDeckToTopChanged(); void printingSelectorSortOrderChanged(); + void printingSelectorCardSizeChanged(); void horizontalHandChanged(); void handJustificationChanged(); void invertVerticalCoordinateChanged(); @@ -105,6 +106,7 @@ private: bool overrideAllCardArtWithPersonalPreference; bool bumpSetsWithCardsInDeckToTop; int printingSelectorSortOrder; + int printingSelectorCardSize; bool horizontalHand; bool invertVerticalCoordinate; int minPlayersForMultiColumnLayout; @@ -317,6 +319,10 @@ public: { return printingSelectorSortOrder; } + int getPrintingSelectorCardSize() const + { + return printingSelectorCardSize; + } bool getHorizontalHand() const { return horizontalHand; @@ -599,6 +605,7 @@ public slots: void setOverrideAllCardArtWithPersonalPreference(QT_STATE_CHANGED_T _overrideAllCardArt); void setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T _bumpSetsWithCardsInDeckToTop); void setPrintingSelectorSortOrder(int _printingSelectorSortOrder); + void setPrintingSelectorCardSize(int _printingSelectorCardSize); void setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand); void setInvertVerticalCoordinate(QT_STATE_CHANGED_T _invertVerticalCoordinate); void setMinPlayersForMultiColumnLayout(int _minPlayersForMultiColumnLayout); diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index 43872ff99..38f429af2 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -166,6 +166,9 @@ void SettingsCache::setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T /* _bumpS void SettingsCache::setPrintingSelectorSortOrder(int /* _printingSelectorSortOrder */) { } +void SettingsCache::setPrintingSelectorCardSize(int /* _printingSelectorCardSize */) +{ +} void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */) { } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index 4ff6a2d7c..6d155b8f9 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -170,6 +170,9 @@ void SettingsCache::setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T /* _bumpS void SettingsCache::setPrintingSelectorSortOrder(int /* _printingSelectorSortOrder */) { } +void SettingsCache::setPrintingSelectorCardSize(int /* _printingSelectorCardSize */) +{ +} void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */) { }