diff --git a/data/ui/source-dialog.ui b/data/ui/source-dialog.ui index bea1bedb..9a8a43e9 100644 --- a/data/ui/source-dialog.ui +++ b/data/ui/source-dialog.ui @@ -111,6 +111,7 @@ True True True + 2 diff --git a/src/gcal-source-dialog.c b/src/gcal-source-dialog.c index f9b2cbe2..982eebc2 100644 --- a/src/gcal-source-dialog.c +++ b/src/gcal-source-dialog.c @@ -52,6 +52,9 @@ struct _GcalSourceDialog static void action_widget_activated (GtkWidget *widget, gpointer user_data); +static void color_set (GtkColorButton *button, + gpointer user_data); + static gboolean description_label_link_activated (GtkWidget *widget, gchar *uri, gpointer user_data); @@ -91,6 +94,21 @@ action_widget_activated (GtkWidget *widget, gtk_dialog_response (GTK_DIALOG (user_data), response); } +static void +color_set (GtkColorButton *button, + gpointer user_data) +{ + GcalSourceDialogPrivate *priv = GCAL_SOURCE_DIALOG (user_data)->priv; + ESourceSelectable *extension; + GdkRGBA color; + + gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); + + extension = E_SOURCE_SELECTABLE (e_source_get_extension (priv->source, E_SOURCE_EXTENSION_CALENDAR)); + + e_source_selectable_set_color (extension, gdk_rgba_to_string (&color)); +} + /** * description_label_link_activated: * @@ -220,6 +238,7 @@ gcal_source_dialog_class_init (GcalSourceDialogClass *klass) gtk_widget_class_bind_template_child_private (widget_class, GcalSourceDialog, stack); gtk_widget_class_bind_template_callback (widget_class, action_widget_activated); + gtk_widget_class_bind_template_callback (widget_class, color_set); gtk_widget_class_bind_template_callback (widget_class, description_label_link_activated); gtk_widget_class_bind_template_callback (widget_class, name_entry_text_changed); }