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