mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-10 20:13:24 -08:00
[Icons] Keep semantic red and green on themed glyphs
The one-glyph cutover recolored every icon from a single palette role, so a disabled deck, a not-ready player and a remove button all lost the red or green that carried their meaning. Add Positive and Negative application colors beside the accents, ship scheme-appropriate defaults for every theme, and resolve them through ThemeManager. Icons now take an IconTint: a palette role for structural glyphs, or a semantic role for states and add/remove actions. A disabled semantic icon falls back to the disabled foreground; on a selected row a semantic tint keeps its color only while it stays legible on the highlight, and a palette tint keeps the existing WindowText -> HighlightedText swap.
This commit is contained in:
parent
9fdbe45ffb
commit
9449876a28
35 changed files with 339 additions and 53 deletions
|
|
@ -9,6 +9,7 @@
|
|||
#include <QList>
|
||||
#include <QMetaEnum>
|
||||
#include <QPair>
|
||||
#include <QStringLiteral>
|
||||
#include <QTextStream>
|
||||
#include <qnamespace.h>
|
||||
#include <utility>
|
||||
|
|
@ -451,3 +452,19 @@ FontConfig FontConfig::fromThemeDir(const QString &themeDirPath)
|
|||
|
||||
return fromFile(QDir(themeDirPath).absoluteFilePath(fileName()));
|
||||
}
|
||||
|
||||
QColor defaultAppColor(AppColor::Role role, bool dark)
|
||||
{
|
||||
switch (role) {
|
||||
case AppColor::AccentStrong:
|
||||
case AppColor::AccentSoft:
|
||||
// Derived from the palette highlight by ThemeManager::appColor().
|
||||
return {};
|
||||
case AppColor::Positive:
|
||||
return QColor(dark ? QStringLiteral("#6dd58c") : QStringLiteral("#1b7f3b"));
|
||||
case AppColor::Negative:
|
||||
return QColor(dark ? QStringLiteral("#ff8a80") : QStringLiteral("#b3261e"));
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue