feat(market): portfolio groups — PORTFOLIO heading, clickable cards, icon + color
- Rename the portfolio heading "MY DRGX" -> "PORTFOLIO". - Group cards are now clickable: clicking one opens the editor directly on that group (edit mode), with a hover highlight + hand cursor. - PortfolioEntry gains an `icon` (project_icons wallet-icon name) and a `color` (packed IM_COL32 accent); both are persisted in settings.json. - Editor edit-mode gains an icon picker (the same wallet icon set as the overview tab's address-label dialog, via material::project_icons) with a "None" option, and a color picker (preset accent palette + a default/no-color swatch). - Group cards render the chosen icon to the left of the name and, when a color is set, a left accent bar + the icon tinted in that color. Full-node + Lite build clean; ctest 1/1; hygiene clean. Rendering change — needs a screenshot check of the Market portfolio + the editor. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -314,6 +314,10 @@ bool Settings::load(const std::string& path)
|
||||
if (e.contains("addresses") && e["addresses"].is_array())
|
||||
for (const auto& a : e["addresses"])
|
||||
if (a.is_string()) entry.addresses.push_back(a.get<std::string>());
|
||||
if (e.contains("icon") && e["icon"].is_string())
|
||||
entry.icon = e["icon"].get<std::string>();
|
||||
if (e.contains("color") && e["color"].is_number())
|
||||
entry.color = e["color"].get<unsigned int>();
|
||||
if (!entry.label.empty()) portfolio_entries_.push_back(std::move(entry));
|
||||
}
|
||||
}
|
||||
@@ -463,6 +467,8 @@ bool Settings::save(const std::string& path)
|
||||
entry["label"] = e.label;
|
||||
entry["addresses"] = json::array();
|
||||
for (const auto& a : e.addresses) entry["addresses"].push_back(a);
|
||||
entry["icon"] = e.icon;
|
||||
entry["color"] = e.color;
|
||||
j["portfolio_entries"].push_back(std::move(entry));
|
||||
}
|
||||
j["font_scale"] = font_scale_;
|
||||
|
||||
Reference in New Issue
Block a user