window: Simplify CSS recalculation code

This commit is contained in:
Georges Basile Stavracas Neto
2024-11-06 10:36:46 -03:00
parent 963e6a28dd
commit 1e8fa097e0
+6 -12
View File
@@ -276,25 +276,20 @@ update_active_date (GcalWindow *window,
static void static void
recalculate_calendar_colors_css (GcalWindow *self) recalculate_calendar_colors_css (GcalWindow *self)
{ {
g_autoptr (GString) css_colors = NULL;
g_autoptr (GError) error = NULL; g_autoptr (GError) error = NULL;
g_autoptr (GList) calendars = NULL; g_autoptr (GList) calendars = NULL;
g_autofree gchar *new_css_data = NULL;
g_auto (GStrv) new_css_snippets = NULL;
GcalManager *manager; GcalManager *manager;
GQuark color_id;
GList *l;
gint arr_length;
gint i = 0;
css_colors = g_string_new (NULL);
manager = gcal_context_get_manager (self->context); manager = gcal_context_get_manager (self->context);
calendars = gcal_manager_get_calendars (manager); calendars = gcal_manager_get_calendars (manager);
arr_length = g_list_length (calendars); for (GList *l = calendars; l; l = l->next)
new_css_snippets = g_new0 (gchar*, arr_length + 2);
for (l = calendars; l; l = l->next, i++)
{ {
g_autofree gchar* color_str = NULL; g_autofree gchar* color_str = NULL;
const GdkRGBA *color; const GdkRGBA *color;
GcalCalendar *calendar; GcalCalendar *calendar;
GQuark color_id;
calendar = GCAL_CALENDAR (l->data); calendar = GCAL_CALENDAR (l->data);
@@ -302,11 +297,10 @@ recalculate_calendar_colors_css (GcalWindow *self)
color_str = gdk_rgba_to_string (color); color_str = gdk_rgba_to_string (color);
color_id = g_quark_from_string (color_str); color_id = g_quark_from_string (color_str);
new_css_snippets[i] = g_strdup_printf (".color-%u { --event-bg-color: %s; }", color_id, color_str); g_string_append_printf (css_colors, ".color-%u { --event-bg-color: %s; }\n", color_id, color_str);
} }
new_css_data = g_strjoinv ("\n", new_css_snippets); gtk_css_provider_load_from_string (self->colors_provider, css_colors->str);
gtk_css_provider_load_from_string (self->colors_provider, new_css_data);
if (error) if (error)
g_warning ("Error creating custom stylesheet. %s", error->message); g_warning ("Error creating custom stylesheet. %s", error->message);