Fix Color chooser option value setting and getting.

This commit is contained in:
John Ralls 2021-08-05 17:26:04 -07:00
parent c83a3f44dd
commit 8079470c8a

View File

@ -2166,19 +2166,25 @@ public:
void set_ui_item_from_option(GncOption& option) noexcept override
{
GdkRGBA color;
if (gdk_rgba_parse(&color,
option.get_value<std::string>().c_str()))
auto rgba_str{g_strdup_printf("#%s",
option.get_value<std::string>().c_str())};
if (gdk_rgba_parse(&color, rgba_str))
{
auto color_button = GTK_COLOR_CHOOSER(get_widget());
gtk_color_chooser_set_rgba(color_button, &color);
}
g_free(rgba_str);
}
void set_option_from_ui_item(GncOption& option) noexcept override
{
GdkRGBA color;
auto color_button = GTK_COLOR_CHOOSER(get_widget());
gtk_color_chooser_get_rgba(color_button, &color);
auto rgba_str = gdk_rgba_to_string(&color);
auto rgba_str = g_strdup_printf("%2x%2x%2x%2x",
(uint8_t)(color.red * 255),
(uint8_t)(color.green * 255),
(uint8_t)(color.blue * 255),
(uint8_t)(color.alpha * 255));
option.set_value(std::string{rgba_str});
g_free(rgba_str);
}