feat(settings): adjustable opacity for the favorite gold outline + star
Adds a "Favorite Highlight Opacity" slider (15-100%, default 100%) to Settings > Appearance > Scale & Effects. It scales the alpha of the four favorite gold tokens (fill/border/icon/outline) at their resolve site in the Balance address list via material::ScaleAlpha, so the gold row outline and the star button fade together. The multiplier is skin-agnostic (it scales whatever alpha the theme resolved) and touches only favorited rows; non-favorite rows and the white selection highlight are unchanged, and the 100% default is byte-identical to the previous look. The preference lives in Settings (favorite_opacity, clamped 0.15-1.0 in both the setter and on load), persists across restarts, updates live, and is not low-spec gated (it's a pure color-alpha preference, independent of the transparency sliders). New i18n keys favorite_opacity / tt_favorite_opacity are translated into all eight locales; the CJK subset font is rebuilt to add the two new glyphs the zh string needs. Verified: full + lite builds clean, full + lite test suites pass, hygiene OK. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -204,6 +204,8 @@ bool Settings::load(const std::string& path)
|
||||
ui_opacity_ = 1.0f; // legacy: reduced = fully opaque
|
||||
}
|
||||
loadScalar(j, "window_opacity", window_opacity_);
|
||||
loadScalar(j, "favorite_opacity", favorite_opacity_);
|
||||
favorite_opacity_ = std::clamp(favorite_opacity_, 0.15f, 1.0f); // matches setFavoriteOpacity()
|
||||
if (j.contains("balance_layout")) {
|
||||
if (j["balance_layout"].is_string())
|
||||
balance_layout_ = j["balance_layout"].get<std::string>();
|
||||
@@ -542,6 +544,7 @@ bool Settings::save(const std::string& path)
|
||||
j["gradient_background"] = gradient_background_;
|
||||
j["ui_opacity"] = ui_opacity_;
|
||||
j["window_opacity"] = window_opacity_;
|
||||
j["favorite_opacity"] = favorite_opacity_;
|
||||
j["balance_layout"] = balance_layout_; // saved as string ID
|
||||
j["portfolio_style"] = portfolio_style_;
|
||||
j["contacts_view_mode"] = contacts_view_mode_;
|
||||
|
||||
Reference in New Issue
Block a user