mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-18 08:22:15 -07:00
Include settings for unused color identities display.
This commit is contained in:
parent
bbfa971dfd
commit
94f6fa5ec4
7 changed files with 109 additions and 28 deletions
|
|
@ -1,7 +1,10 @@
|
|||
#include "deck_preview_color_identity_widget.h"
|
||||
|
||||
#include "../../../../settings/cache_settings.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QResizeEvent>
|
||||
#include <QSet>
|
||||
|
||||
DeckPreviewColorCircleWidget::DeckPreviewColorCircleWidget(QChar color, QWidget *parent)
|
||||
: QWidget(parent), colorChar(color), circleDiameter(0), isActive(false)
|
||||
|
|
@ -52,35 +55,38 @@ void DeckPreviewColorCircleWidget::paintEvent(QPaintEvent *event)
|
|||
|
||||
// Map color characters to their respective colors
|
||||
QColor circleColor;
|
||||
if (isActive) {
|
||||
switch (colorChar.unicode()) {
|
||||
case 'W':
|
||||
circleColor = Qt::white;
|
||||
break;
|
||||
case 'U':
|
||||
circleColor = QColor(0, 115, 230);
|
||||
break; // Blue
|
||||
case 'B':
|
||||
circleColor = QColor(50, 50, 50);
|
||||
break; // Black
|
||||
case 'R':
|
||||
circleColor = QColor(230, 30, 30);
|
||||
break; // Red
|
||||
case 'G':
|
||||
circleColor = QColor(30, 180, 30);
|
||||
break; // Green
|
||||
default:
|
||||
circleColor = Qt::transparent;
|
||||
break; // Fallback
|
||||
}
|
||||
} else {
|
||||
circleColor = Qt::gray; // Grey out unused colors
|
||||
switch (colorChar.unicode()) {
|
||||
case 'W':
|
||||
circleColor = Qt::white;
|
||||
break;
|
||||
case 'U':
|
||||
circleColor = QColor(0, 115, 230);
|
||||
break; // Blue
|
||||
case 'B':
|
||||
circleColor = QColor(50, 50, 50);
|
||||
break; // Black
|
||||
case 'R':
|
||||
circleColor = QColor(230, 30, 30);
|
||||
break; // Red
|
||||
case 'G':
|
||||
circleColor = QColor(30, 180, 30);
|
||||
break; // Green
|
||||
default:
|
||||
circleColor = Qt::transparent;
|
||||
break; // Fallback
|
||||
}
|
||||
|
||||
// Draw the circle
|
||||
painter.setBrush(circleColor);
|
||||
painter.setPen(Qt::black);
|
||||
painter.drawEllipse(circleRect);
|
||||
if (SettingsCache::instance().getVisualDeckStorageDrawUnusedColorIdentities() || isActive) {
|
||||
// Make the circle faint if it is not active
|
||||
if (!isActive) {
|
||||
circleColor.setAlpha(SettingsCache::instance().getVisualDeckStorageUnusedColorIdentitiesOpacity());
|
||||
}
|
||||
|
||||
// Draw the circle
|
||||
painter.setBrush(circleColor);
|
||||
painter.setPen(Qt::black);
|
||||
painter.drawEllipse(circleRect);
|
||||
}
|
||||
|
||||
// Draw the color character only if the circle is active
|
||||
if (isActive) {
|
||||
|
|
@ -88,13 +94,19 @@ void DeckPreviewColorCircleWidget::paintEvent(QPaintEvent *event)
|
|||
font.setBold(true);
|
||||
font.setPointSize(circleDiameter * 0.4); // Adjust font size relative to circle diameter
|
||||
painter.setFont(font);
|
||||
painter.setPen(Qt::black);
|
||||
if (colorChar.unicode() == 'B') {
|
||||
painter.setPen(Qt::white);
|
||||
} else {
|
||||
painter.setPen(Qt::black);
|
||||
}
|
||||
|
||||
|
||||
// Center the text within the circle
|
||||
painter.drawText(circleRect, Qt::AlignCenter, colorChar);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DeckPreviewColorCircleWidget::setColorActive(bool active)
|
||||
{
|
||||
isActive = active;
|
||||
|
|
|
|||
|
|
@ -350,9 +350,26 @@ AppearanceSettingsPage::AppearanceSettingsPage()
|
|||
connect(&showVisualDeckStorageOnLoadCheckBox, &QCheckBox::QT_STATE_CHANGED, &settings,
|
||||
&SettingsCache::setVisualDeckStorageShowOnLoad);
|
||||
|
||||
visualDeckStorageDrawUnusedColorIdentitiesCheckBox.setChecked(
|
||||
settings.getVisualDeckStorageDrawUnusedColorIdentities());
|
||||
connect(&visualDeckStorageDrawUnusedColorIdentitiesCheckBox, &QCheckBox::QT_STATE_CHANGED, &settings,
|
||||
&SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities);
|
||||
|
||||
visualDeckStorageUnusedColorIdentitiesOpacitySpinBox.setMinimum(0);
|
||||
visualDeckStorageUnusedColorIdentitiesOpacitySpinBox.setMaximum(255);
|
||||
visualDeckStorageUnusedColorIdentitiesOpacitySpinBox.setValue(
|
||||
settings.getVisualDeckStorageUnusedColorIdentitiesOpacity());
|
||||
connect(&visualDeckStorageUnusedColorIdentitiesOpacitySpinBox, &QSpinBox::valueChanged, &settings,
|
||||
&SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity);
|
||||
|
||||
visualDeckStorageUnusedColorIdentitiesOpacityLabel.setBuddy(&visualDeckStorageUnusedColorIdentitiesOpacitySpinBox);
|
||||
|
||||
auto *menuGrid = new QGridLayout;
|
||||
menuGrid->addWidget(&showShortcutsCheckBox, 0, 0);
|
||||
menuGrid->addWidget(&showVisualDeckStorageOnLoadCheckBox, 1, 0);
|
||||
menuGrid->addWidget(&visualDeckStorageDrawUnusedColorIdentitiesCheckBox, 2, 0);
|
||||
menuGrid->addWidget(&visualDeckStorageUnusedColorIdentitiesOpacityLabel, 3, 0);
|
||||
menuGrid->addWidget(&visualDeckStorageUnusedColorIdentitiesOpacitySpinBox, 3, 1);
|
||||
|
||||
menuGroupBox = new QGroupBox;
|
||||
menuGroupBox->setLayout(menuGrid);
|
||||
|
|
@ -488,6 +505,9 @@ void AppearanceSettingsPage::retranslateUi()
|
|||
menuGroupBox->setTitle(tr("Menu settings"));
|
||||
showShortcutsCheckBox.setText(tr("Show keyboard shortcuts in right-click menus"));
|
||||
showVisualDeckStorageOnLoadCheckBox.setText(tr("Show visual deck storage on database load"));
|
||||
visualDeckStorageDrawUnusedColorIdentitiesCheckBox.setText(
|
||||
tr("Draw missing color identities in visual deck storage without color label"));
|
||||
visualDeckStorageUnusedColorIdentitiesOpacityLabel.setText((tr("Missing color identity opacity")));
|
||||
|
||||
cardsGroupBox->setTitle(tr("Card rendering"));
|
||||
displayCardNamesCheckBox.setText(tr("Display card names on cards having a picture"));
|
||||
|
|
|
|||
|
|
@ -96,6 +96,9 @@ private:
|
|||
QLabel maxFontSizeForCardsLabel;
|
||||
QCheckBox showShortcutsCheckBox;
|
||||
QCheckBox showVisualDeckStorageOnLoadCheckBox;
|
||||
QCheckBox visualDeckStorageDrawUnusedColorIdentitiesCheckBox;
|
||||
QLabel visualDeckStorageUnusedColorIdentitiesOpacityLabel;
|
||||
QSpinBox visualDeckStorageUnusedColorIdentitiesOpacitySpinBox;
|
||||
QCheckBox displayCardNamesCheckBox;
|
||||
QCheckBox autoRotateSidewaysLayoutCardsCheckBox;
|
||||
QCheckBox overrideAllCardArtWithPersonalPreferenceCheckBox;
|
||||
|
|
|
|||
|
|
@ -262,6 +262,10 @@ SettingsCache::SettingsCache()
|
|||
visualDeckStorageCardSize = settings->value("cards/visualdeckstoragecardsize", 100).toInt();
|
||||
visualDeckStorageShowOnLoad = settings->value("interface/visualdeckstorageshowonload", true).toBool();
|
||||
visualDeckStorageSortingOrder = settings->value("interface/visualdeckstoragesortingorder", 0).toInt();
|
||||
visualDeckStorageDrawUnusedColorIdentities =
|
||||
settings->value("interface/visualdeckstoragedrawunusedcoloridentities", true).toBool();
|
||||
visualDeckStorageUnusedColorIdentitiesOpacity =
|
||||
settings->value("interface/visualdeckstorageunusedcoloridentitiesopacity", 80).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();
|
||||
|
|
@ -631,6 +635,20 @@ void SettingsCache::setVisualDeckStorageShowOnLoad(QT_STATE_CHANGED_T _visualDec
|
|||
settings->setValue("interface/visualdeckstorageshowonload", visualDeckStorageShowOnLoad);
|
||||
}
|
||||
|
||||
void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities(
|
||||
QT_STATE_CHANGED_T _visualDeckStorageDrawUnusedColorIdentities)
|
||||
{
|
||||
visualDeckStorageDrawUnusedColorIdentities = _visualDeckStorageDrawUnusedColorIdentities;
|
||||
settings->setValue("cards/visualdeckstoragedrawunusedcoloridentities", visualDeckStorageDrawUnusedColorIdentities);
|
||||
}
|
||||
|
||||
void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity)
|
||||
{
|
||||
visualDeckStorageUnusedColorIdentitiesOpacity = _visualDeckStorageUnusedColorIdentitiesOpacity;
|
||||
settings->setValue("cards/visualdeckstorageunusedcoloridentitiesopacity",
|
||||
visualDeckStorageUnusedColorIdentitiesOpacity);
|
||||
}
|
||||
|
||||
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand)
|
||||
{
|
||||
horizontalHand = static_cast<bool>(_horizontalHand);
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@ private:
|
|||
bool printingSelectorNavigationButtonsVisible;
|
||||
int visualDeckStorageSortingOrder;
|
||||
int visualDeckStorageCardSize;
|
||||
bool visualDeckStorageDrawUnusedColorIdentities;
|
||||
int visualDeckStorageUnusedColorIdentitiesOpacity;
|
||||
bool visualDeckStorageShowOnLoad;
|
||||
bool horizontalHand;
|
||||
bool invertVerticalCoordinate;
|
||||
|
|
@ -381,6 +383,14 @@ public:
|
|||
{
|
||||
return visualDeckStorageCardSize;
|
||||
}
|
||||
bool getVisualDeckStorageDrawUnusedColorIdentities() const
|
||||
{
|
||||
return visualDeckStorageDrawUnusedColorIdentities;
|
||||
}
|
||||
int getVisualDeckStorageUnusedColorIdentitiesOpacity() const
|
||||
{
|
||||
return visualDeckStorageUnusedColorIdentitiesOpacity;
|
||||
}
|
||||
bool getVisualDeckStorageShowOnLoad() const
|
||||
{
|
||||
return visualDeckStorageShowOnLoad;
|
||||
|
|
@ -695,6 +705,8 @@ public slots:
|
|||
void setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T _navigationButtonsVisible);
|
||||
void setVisualDeckStorageSortingOrder(int _visualDeckStorageSortingOrder);
|
||||
void setVisualDeckStorageCardSize(int _visualDeckStorageCardSize);
|
||||
void setVisualDeckStorageDrawUnusedColorIdentities(QT_STATE_CHANGED_T _visualDeckStorageDrawUnusedColorIdentities);
|
||||
void setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity);
|
||||
void setVisualDeckStorageShowOnLoad(QT_STATE_CHANGED_T _visualDeckStorageShowOnLoad);
|
||||
void setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand);
|
||||
void setInvertVerticalCoordinate(QT_STATE_CHANGED_T _invertVerticalCoordinate);
|
||||
|
|
|
|||
|
|
@ -193,6 +193,14 @@ void SettingsCache::setVisualDeckStorageCardSize(int /* _visualDeckStorageCardSi
|
|||
void SettingsCache::setVisualDeckStorageShowOnLoad(QT_STATE_CHANGED_T /* _visualDeckStorageShowOnLoad */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities(
|
||||
QT_STATE_CHANGED_T /* _visualDeckStorageDrawUnusedColorIdentities */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity(
|
||||
int /* _visualDeckStorageUnusedColorIdentitiesOpacity */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -197,6 +197,14 @@ void SettingsCache::setVisualDeckStorageCardSize(int /* _visualDeckStorageCardSi
|
|||
void SettingsCache::setVisualDeckStorageShowOnLoad(QT_STATE_CHANGED_T /* _visualDeckStorageShowOnLoad */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities(
|
||||
QT_STATE_CHANGED_T /* _visualDeckStorageDrawUnusedColorIdentities */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity(
|
||||
int /* _visualDeckStorageUnusedColorIdentitiesOpacity */)
|
||||
{
|
||||
}
|
||||
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue