From 41291fecb5a605d7f7656e2fae34702c8fd190e7 Mon Sep 17 00:00:00 2001 From: RickyRister Date: Tue, 10 Dec 2024 22:48:28 -0800 Subject: [PATCH] use rows as unit --- cockatrice/src/dialogs/dlg_settings.cpp | 15 ++++++++------- cockatrice/src/dialogs/dlg_settings.h | 4 ++-- cockatrice/src/game/zones/view_zone_widget.cpp | 13 +++++++++++-- cockatrice/src/settings/cache_settings.cpp | 8 ++++---- cockatrice/src/settings/cache_settings.h | 8 ++++---- dbconverter/src/mocks.cpp | 2 +- tests/carddatabase/mocks.cpp | 2 +- 7 files changed, 31 insertions(+), 21 deletions(-) diff --git a/cockatrice/src/dialogs/dlg_settings.cpp b/cockatrice/src/dialogs/dlg_settings.cpp index c8db63a42..88537ec9d 100644 --- a/cockatrice/src/dialogs/dlg_settings.cpp +++ b/cockatrice/src/dialogs/dlg_settings.cpp @@ -346,18 +346,18 @@ AppearanceSettingsPage::AppearanceSettingsPage() connect(&verticalCardOverlapPercentBox, SIGNAL(valueChanged(int)), &settings, SLOT(setStackCardOverlapPercent(int))); - cardViewInitialHeightBox.setRange(0, 9999); - cardViewInitialHeightBox.setValue(SettingsCache::instance().getCardViewInitialHeight()); - connect(&cardViewInitialHeightBox, qOverload(&QSpinBox::valueChanged), &SettingsCache::instance(), - &SettingsCache::setCardViewInitialHeight); + cardViewInitialRowsMaxBox.setRange(0, 9999); + cardViewInitialRowsMaxBox.setValue(SettingsCache::instance().getCardViewInitialRowsMax()); + connect(&cardViewInitialRowsMaxBox, qOverload(&QSpinBox::valueChanged), &SettingsCache::instance(), + &SettingsCache::setCardViewInitialRowsMax); auto *cardsGrid = new QGridLayout; cardsGrid->addWidget(&displayCardNamesCheckBox, 0, 0, 1, 2); cardsGrid->addWidget(&cardScalingCheckBox, 1, 0, 1, 2); cardsGrid->addWidget(&verticalCardOverlapPercentLabel, 2, 0, 1, 1); cardsGrid->addWidget(&verticalCardOverlapPercentBox, 2, 1, 1, 1); - cardsGrid->addWidget(&cardViewInitialHeightLabel, 3, 0); - cardsGrid->addWidget(&cardViewInitialHeightBox, 3, 1); + cardsGrid->addWidget(&cardViewInitialRowsMaxLabel, 3, 0); + cardsGrid->addWidget(&cardViewInitialRowsMaxBox, 3, 1); cardsGroupBox = new QGroupBox; cardsGroupBox->setLayout(cardsGrid); @@ -455,7 +455,8 @@ void AppearanceSettingsPage::retranslateUi() cardScalingCheckBox.setText(tr("Scale cards on mouse over")); verticalCardOverlapPercentLabel.setText( tr("Minimum overlap percentage of cards on the stack and in vertical hand")); - cardViewInitialHeightLabel.setText(tr("Card view window maximum initial height:")); + cardViewInitialRowsMaxLabel.setText(tr("Card view window maximum initial height:")); + cardViewInitialRowsMaxBox.setSuffix(tr(" rows")); handGroupBox->setTitle(tr("Hand layout")); horizontalHandCheckBox.setText(tr("Display hand horizontally (wastes space)")); diff --git a/cockatrice/src/dialogs/dlg_settings.h b/cockatrice/src/dialogs/dlg_settings.h index 2984569d8..2a3f7bf0b 100644 --- a/cockatrice/src/dialogs/dlg_settings.h +++ b/cockatrice/src/dialogs/dlg_settings.h @@ -96,8 +96,8 @@ private: QCheckBox cardScalingCheckBox; QLabel verticalCardOverlapPercentLabel; QSpinBox verticalCardOverlapPercentBox; - QLabel cardViewInitialHeightLabel; - QSpinBox cardViewInitialHeightBox; + QLabel cardViewInitialRowsMaxLabel; + QSpinBox cardViewInitialRowsMaxBox; QCheckBox horizontalHandCheckBox; QCheckBox leftJustifiedHandCheckBox; QCheckBox invertVerticalCoordinateCheckBox; diff --git a/cockatrice/src/game/zones/view_zone_widget.cpp b/cockatrice/src/game/zones/view_zone_widget.cpp index fbac29fe8..f1984e4cd 100644 --- a/cockatrice/src/game/zones/view_zone_widget.cpp +++ b/cockatrice/src/game/zones/view_zone_widget.cpp @@ -254,6 +254,16 @@ void ZoneViewWidget::resizeEvent(QGraphicsSceneResizeEvent *event) scrollBar->setMaximum(totalZoneHeight - newZoneHeight); } +/** + * Calculates the max initial height from the settings. + * The max initial height setting is given as number of rows, so we need to map it to a height. + **/ +static qreal calcMaxInitialHeight() +{ + const qreal cardsHeight = (SettingsCache::instance().getCardViewInitialRowsMax() + 1) * CARD_HEIGHT * 0.33; + return cardsHeight + 2; // +2 padding to make the cutoff look nicer +} + void ZoneViewWidget::resizeToZoneContents() { QRectF zoneRect = zone->getOptimumRect(); @@ -265,8 +275,7 @@ void ZoneViewWidget::resizeToZoneContents() QSizeF maxSize(width, zoneRect.height() + extraHeight + 10); setMaximumSize(maxSize); - qreal initialZoneHeight = - qMin(zoneRect.height(), static_cast(SettingsCache::instance().getCardViewInitialHeight())); + qreal initialZoneHeight = qMin(zoneRect.height(), calcMaxInitialHeight()); QSizeF initialSize(width, initialZoneHeight + extraHeight + 10); resize(initialSize); diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index c0e595772..5c8d50e0b 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -238,7 +238,7 @@ SettingsCache::SettingsCache() tabGameSplitterSizes = settings->value("interface/tabgame_splittersizes").toByteArray(); knownMissingFeatures = settings->value("interface/knownmissingfeatures", "").toString(); useTearOffMenus = settings->value("interface/usetearoffmenus", true).toBool(); - cardViewInitialHeight = settings->value("interface/cardViewInitialHeight", 500).toInt(); + cardViewInitialRowsMax = settings->value("interface/cardViewInitialRowsMax", 14).toInt(); showShortcuts = settings->value("menu/showshortcuts", true).toBool(); displayCardNames = settings->value("cards/displaycardnames", true).toBool(); @@ -301,10 +301,10 @@ void SettingsCache::setUseTearOffMenus(bool _useTearOffMenus) emit useTearOffMenusChanged(useTearOffMenus); } -void SettingsCache::setCardViewInitialHeight(int _cardViewInitialHeight) +void SettingsCache::setCardViewInitialRowsMax(int _cardViewInitialRowsMax) { - cardViewInitialHeight = _cardViewInitialHeight; - settings->setValue("interface/cardViewInitialHeight", cardViewInitialHeight); + cardViewInitialRowsMax = _cardViewInitialRowsMax; + settings->setValue("interface/cardViewInitialRowsMax", cardViewInitialRowsMax); } void SettingsCache::setKnownMissingFeatures(const QString &_knownMissingFeatures) diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index cf81473c2..0f46adb41 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -123,7 +123,7 @@ private: QString clientVersion; QString knownMissingFeatures; bool useTearOffMenus; - int cardViewInitialHeight; + int cardViewInitialRowsMax; int pixmapCacheSize; int networkCacheSize; int redirectCacheTtl; @@ -486,7 +486,7 @@ public: void setClientVersion(const QString &clientVersion); void setKnownMissingFeatures(const QString &_knownMissingFeatures); void setUseTearOffMenus(bool _useTearOffMenus); - void setCardViewInitialHeight(int _cardViewInitialHeight); + void setCardViewInitialRowsMax(int _cardViewInitialRowsMax); QString getClientID() { return clientID; @@ -503,9 +503,9 @@ public: { return useTearOffMenus; } - int getCardViewInitialHeight() + int getCardViewInitialRowsMax() const { - return cardViewInitialHeight; + return cardViewInitialRowsMax; } ShortcutsSettings &shortcuts() const { diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index 8e1ad8889..6419f267a 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -55,7 +55,7 @@ SettingsCache::SettingsCache() void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */) { } -void SettingsCache::setCardViewInitialHeight(int /* _cardViewInitialHeight */) +void SettingsCache::setCardViewInitialRowsMax(int /* _cardViewInitialRowsMax */) { } void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */) diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index ac07028c7..5e42ccc44 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -59,7 +59,7 @@ SettingsCache::SettingsCache() void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */) { } -void SettingsCache::setCardViewInitialHeight(int /* _cardViewInitialHeight */) +void SettingsCache::setCardViewInitialRowsMax(int /* _cardViewInitialRowsMax */) { } void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */)