diff --git a/pj_plugins/dialog_protocol/include/pj_plugins/host/widget_data_view.hpp b/pj_plugins/dialog_protocol/include/pj_plugins/host/widget_data_view.hpp index e55bfa4d..4037eccf 100644 --- a/pj_plugins/dialog_protocol/include/pj_plugins/host/widget_data_view.hpp +++ b/pj_plugins/dialog_protocol/include/pj_plugins/host/widget_data_view.hpp @@ -75,6 +75,9 @@ class WidgetDataView { [[nodiscard]] std::optional> selectedItems(std::string_view name) const { return getStringArray(name, "selected_items"); } + [[nodiscard]] std::optional> listItemColors(std::string_view name) const { + return getStringArray(name, "list_item_colors"); + } // --- QTableWidget --- [[nodiscard]] std::optional> tableHeaders(std::string_view name) const { diff --git a/pj_plugins/dialog_protocol/include/pj_plugins/sdk/widget_data.hpp b/pj_plugins/dialog_protocol/include/pj_plugins/sdk/widget_data.hpp index 10ed5a95..4db30cb0 100644 --- a/pj_plugins/dialog_protocol/include/pj_plugins/sdk/widget_data.hpp +++ b/pj_plugins/dialog_protocol/include/pj_plugins/sdk/widget_data.hpp @@ -93,6 +93,14 @@ class WidgetData { return *this; } + // Set foreground colors for QListWidget items, parallel to the items vector + // set by setListItems. Each entry is a CSS color string (e.g. "#ff0000") or + // empty to use the default palette color. Size must match the items vector. + WidgetData& setListItemColors(std::string_view name, const std::vector& colors) { + entry(name)["list_item_colors"] = colors; + return *this; + } + // --- QTableWidget --- WidgetData& setTableHeaders(std::string_view name, const std::vector& headers) { entry(name)["headers"] = headers;