mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-19 17:02:15 -07:00
Adjust font size when adjusting card size.
This commit is contained in:
parent
7d42a43c87
commit
ba73cda339
3 changed files with 43 additions and 4 deletions
|
|
@ -30,8 +30,8 @@ PrintingSelectorCardDisplayWidget::PrintingSelectorCardDisplayWidget(QWidget *pa
|
|||
|
||||
const QString combinedSetName =
|
||||
QString(setInfoForCard.getPtr()->getLongName() + " (" + setInfoForCard.getPtr()->getShortName() + ")");
|
||||
setNameAndCollectorsNumberDisplayWidget =
|
||||
new SetNameAndCollectorsNumberDisplayWidget(this, combinedSetName, setInfoForCard.getProperty("num"));
|
||||
setNameAndCollectorsNumberDisplayWidget = new SetNameAndCollectorsNumberDisplayWidget(
|
||||
this, combinedSetName, setInfoForCard.getProperty("num"), cardSizeSlider);
|
||||
|
||||
layout->addWidget(overlayWidget, 0, Qt::AlignHCenter);
|
||||
layout->addWidget(setNameAndCollectorsNumberDisplayWidget, 1, Qt::AlignHCenter | Qt::AlignBottom);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
#include "set_name_and_collectors_number_display_widget.h"
|
||||
|
||||
#include <QSlider>
|
||||
|
||||
SetNameAndCollectorsNumberDisplayWidget::SetNameAndCollectorsNumberDisplayWidget(QWidget *parent,
|
||||
const QString &_setName,
|
||||
const QString &_collectorsNumber)
|
||||
const QString &_collectorsNumber,
|
||||
QSlider *_cardSizeSlider)
|
||||
: QWidget(parent)
|
||||
{
|
||||
layout = new QVBoxLayout(this);
|
||||
|
|
@ -19,10 +22,41 @@ SetNameAndCollectorsNumberDisplayWidget::SetNameAndCollectorsNumberDisplayWidget
|
|||
collectorsNumber->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
|
||||
collectorsNumber->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||
|
||||
cardSizeSlider = _cardSizeSlider;
|
||||
|
||||
connect(cardSizeSlider, &QSlider::valueChanged, this, &SetNameAndCollectorsNumberDisplayWidget::adjustFontSize);
|
||||
|
||||
layout->addWidget(setName);
|
||||
layout->addWidget(collectorsNumber);
|
||||
}
|
||||
|
||||
|
||||
void SetNameAndCollectorsNumberDisplayWidget::adjustFontSize(int scalePercentage)
|
||||
{
|
||||
// Define the base font size and the range
|
||||
const int minFontSize = 8; // Minimum font size
|
||||
const int maxFontSize = 32; // Maximum font size
|
||||
const int basePercentage = 100; // Scale at 100%
|
||||
|
||||
// Calculate the new font size
|
||||
int newFontSize = minFontSize + (scalePercentage - basePercentage) * (maxFontSize - minFontSize) / (250 - 25);
|
||||
|
||||
// Clamp the font size to the defined range
|
||||
newFontSize = std::clamp(newFontSize, minFontSize, maxFontSize);
|
||||
|
||||
// Update the fonts for both labels
|
||||
QFont setNameFont = setName->font();
|
||||
setNameFont.setPointSize(newFontSize);
|
||||
setName->setFont(setNameFont);
|
||||
|
||||
QFont collectorsNumberFont = collectorsNumber->font();
|
||||
collectorsNumberFont.setPointSize(newFontSize);
|
||||
collectorsNumber->setFont(collectorsNumberFont);
|
||||
|
||||
// Optionally trigger a resize to accommodate new font size
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
void SetNameAndCollectorsNumberDisplayWidget::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
QWidget::resizeEvent(event); // Ensure the parent class handles the event first
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define SET_NAME_AND_COLLECTORS_NUMBER_DISPLAY_WIDGET_H
|
||||
|
||||
#include <QLabel>
|
||||
#include <QSlider>
|
||||
#include <QVBoxLayout>
|
||||
#include <QWidget>
|
||||
|
||||
|
|
@ -9,13 +10,17 @@ class SetNameAndCollectorsNumberDisplayWidget : public QWidget
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SetNameAndCollectorsNumberDisplayWidget(QWidget *parent, const QString &setName, const QString &collectorsNumber);
|
||||
SetNameAndCollectorsNumberDisplayWidget(QWidget *parent, const QString &setName, const QString &collectorsNumber, QSlider *cardSizeSlider);
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
|
||||
public slots:
|
||||
void adjustFontSize(int scalePercentage);
|
||||
|
||||
private:
|
||||
QVBoxLayout *layout;
|
||||
QLabel *setName;
|
||||
QLabel *collectorsNumber;
|
||||
QSlider *cardSizeSlider;
|
||||
};
|
||||
|
||||
#endif // SET_NAME_AND_COLLECTORS_NUMBER_DISPLAY_WIDGET_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue