use rows as unit

This commit is contained in:
RickyRister 2024-12-10 22:48:28 -08:00
parent 0225c0bc76
commit 41291fecb5
7 changed files with 31 additions and 21 deletions

View file

@ -346,18 +346,18 @@ AppearanceSettingsPage::AppearanceSettingsPage()
connect(&verticalCardOverlapPercentBox, SIGNAL(valueChanged(int)), &settings, connect(&verticalCardOverlapPercentBox, SIGNAL(valueChanged(int)), &settings,
SLOT(setStackCardOverlapPercent(int))); SLOT(setStackCardOverlapPercent(int)));
cardViewInitialHeightBox.setRange(0, 9999); cardViewInitialRowsMaxBox.setRange(0, 9999);
cardViewInitialHeightBox.setValue(SettingsCache::instance().getCardViewInitialHeight()); cardViewInitialRowsMaxBox.setValue(SettingsCache::instance().getCardViewInitialRowsMax());
connect(&cardViewInitialHeightBox, qOverload<int>(&QSpinBox::valueChanged), &SettingsCache::instance(), connect(&cardViewInitialRowsMaxBox, qOverload<int>(&QSpinBox::valueChanged), &SettingsCache::instance(),
&SettingsCache::setCardViewInitialHeight); &SettingsCache::setCardViewInitialRowsMax);
auto *cardsGrid = new QGridLayout; auto *cardsGrid = new QGridLayout;
cardsGrid->addWidget(&displayCardNamesCheckBox, 0, 0, 1, 2); cardsGrid->addWidget(&displayCardNamesCheckBox, 0, 0, 1, 2);
cardsGrid->addWidget(&cardScalingCheckBox, 1, 0, 1, 2); cardsGrid->addWidget(&cardScalingCheckBox, 1, 0, 1, 2);
cardsGrid->addWidget(&verticalCardOverlapPercentLabel, 2, 0, 1, 1); cardsGrid->addWidget(&verticalCardOverlapPercentLabel, 2, 0, 1, 1);
cardsGrid->addWidget(&verticalCardOverlapPercentBox, 2, 1, 1, 1); cardsGrid->addWidget(&verticalCardOverlapPercentBox, 2, 1, 1, 1);
cardsGrid->addWidget(&cardViewInitialHeightLabel, 3, 0); cardsGrid->addWidget(&cardViewInitialRowsMaxLabel, 3, 0);
cardsGrid->addWidget(&cardViewInitialHeightBox, 3, 1); cardsGrid->addWidget(&cardViewInitialRowsMaxBox, 3, 1);
cardsGroupBox = new QGroupBox; cardsGroupBox = new QGroupBox;
cardsGroupBox->setLayout(cardsGrid); cardsGroupBox->setLayout(cardsGrid);
@ -455,7 +455,8 @@ void AppearanceSettingsPage::retranslateUi()
cardScalingCheckBox.setText(tr("Scale cards on mouse over")); cardScalingCheckBox.setText(tr("Scale cards on mouse over"));
verticalCardOverlapPercentLabel.setText( verticalCardOverlapPercentLabel.setText(
tr("Minimum overlap percentage of cards on the stack and in vertical hand")); 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")); handGroupBox->setTitle(tr("Hand layout"));
horizontalHandCheckBox.setText(tr("Display hand horizontally (wastes space)")); horizontalHandCheckBox.setText(tr("Display hand horizontally (wastes space)"));

View file

@ -96,8 +96,8 @@ private:
QCheckBox cardScalingCheckBox; QCheckBox cardScalingCheckBox;
QLabel verticalCardOverlapPercentLabel; QLabel verticalCardOverlapPercentLabel;
QSpinBox verticalCardOverlapPercentBox; QSpinBox verticalCardOverlapPercentBox;
QLabel cardViewInitialHeightLabel; QLabel cardViewInitialRowsMaxLabel;
QSpinBox cardViewInitialHeightBox; QSpinBox cardViewInitialRowsMaxBox;
QCheckBox horizontalHandCheckBox; QCheckBox horizontalHandCheckBox;
QCheckBox leftJustifiedHandCheckBox; QCheckBox leftJustifiedHandCheckBox;
QCheckBox invertVerticalCoordinateCheckBox; QCheckBox invertVerticalCoordinateCheckBox;

View file

@ -254,6 +254,16 @@ void ZoneViewWidget::resizeEvent(QGraphicsSceneResizeEvent *event)
scrollBar->setMaximum(totalZoneHeight - newZoneHeight); 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() void ZoneViewWidget::resizeToZoneContents()
{ {
QRectF zoneRect = zone->getOptimumRect(); QRectF zoneRect = zone->getOptimumRect();
@ -265,8 +275,7 @@ void ZoneViewWidget::resizeToZoneContents()
QSizeF maxSize(width, zoneRect.height() + extraHeight + 10); QSizeF maxSize(width, zoneRect.height() + extraHeight + 10);
setMaximumSize(maxSize); setMaximumSize(maxSize);
qreal initialZoneHeight = qreal initialZoneHeight = qMin(zoneRect.height(), calcMaxInitialHeight());
qMin(zoneRect.height(), static_cast<qreal>(SettingsCache::instance().getCardViewInitialHeight()));
QSizeF initialSize(width, initialZoneHeight + extraHeight + 10); QSizeF initialSize(width, initialZoneHeight + extraHeight + 10);
resize(initialSize); resize(initialSize);

View file

@ -238,7 +238,7 @@ SettingsCache::SettingsCache()
tabGameSplitterSizes = settings->value("interface/tabgame_splittersizes").toByteArray(); tabGameSplitterSizes = settings->value("interface/tabgame_splittersizes").toByteArray();
knownMissingFeatures = settings->value("interface/knownmissingfeatures", "").toString(); knownMissingFeatures = settings->value("interface/knownmissingfeatures", "").toString();
useTearOffMenus = settings->value("interface/usetearoffmenus", true).toBool(); 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(); showShortcuts = settings->value("menu/showshortcuts", true).toBool();
displayCardNames = settings->value("cards/displaycardnames", true).toBool(); displayCardNames = settings->value("cards/displaycardnames", true).toBool();
@ -301,10 +301,10 @@ void SettingsCache::setUseTearOffMenus(bool _useTearOffMenus)
emit useTearOffMenusChanged(useTearOffMenus); emit useTearOffMenusChanged(useTearOffMenus);
} }
void SettingsCache::setCardViewInitialHeight(int _cardViewInitialHeight) void SettingsCache::setCardViewInitialRowsMax(int _cardViewInitialRowsMax)
{ {
cardViewInitialHeight = _cardViewInitialHeight; cardViewInitialRowsMax = _cardViewInitialRowsMax;
settings->setValue("interface/cardViewInitialHeight", cardViewInitialHeight); settings->setValue("interface/cardViewInitialRowsMax", cardViewInitialRowsMax);
} }
void SettingsCache::setKnownMissingFeatures(const QString &_knownMissingFeatures) void SettingsCache::setKnownMissingFeatures(const QString &_knownMissingFeatures)

View file

@ -123,7 +123,7 @@ private:
QString clientVersion; QString clientVersion;
QString knownMissingFeatures; QString knownMissingFeatures;
bool useTearOffMenus; bool useTearOffMenus;
int cardViewInitialHeight; int cardViewInitialRowsMax;
int pixmapCacheSize; int pixmapCacheSize;
int networkCacheSize; int networkCacheSize;
int redirectCacheTtl; int redirectCacheTtl;
@ -486,7 +486,7 @@ public:
void setClientVersion(const QString &clientVersion); void setClientVersion(const QString &clientVersion);
void setKnownMissingFeatures(const QString &_knownMissingFeatures); void setKnownMissingFeatures(const QString &_knownMissingFeatures);
void setUseTearOffMenus(bool _useTearOffMenus); void setUseTearOffMenus(bool _useTearOffMenus);
void setCardViewInitialHeight(int _cardViewInitialHeight); void setCardViewInitialRowsMax(int _cardViewInitialRowsMax);
QString getClientID() QString getClientID()
{ {
return clientID; return clientID;
@ -503,9 +503,9 @@ public:
{ {
return useTearOffMenus; return useTearOffMenus;
} }
int getCardViewInitialHeight() int getCardViewInitialRowsMax() const
{ {
return cardViewInitialHeight; return cardViewInitialRowsMax;
} }
ShortcutsSettings &shortcuts() const ShortcutsSettings &shortcuts() const
{ {

View file

@ -55,7 +55,7 @@ SettingsCache::SettingsCache()
void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */) void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */)
{ {
} }
void SettingsCache::setCardViewInitialHeight(int /* _cardViewInitialHeight */) void SettingsCache::setCardViewInitialRowsMax(int /* _cardViewInitialRowsMax */)
{ {
} }
void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */) void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */)

View file

@ -59,7 +59,7 @@ SettingsCache::SettingsCache()
void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */) void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */)
{ {
} }
void SettingsCache::setCardViewInitialHeight(int /* _cardViewInitialHeight */) void SettingsCache::setCardViewInitialRowsMax(int /* _cardViewInitialRowsMax */)
{ {
} }
void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */) void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */)