[gnome-calendar] manager: Replace gcal_manager_get_sources()
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] manager: Replace gcal_manager_get_sources()
- Date: Sat, 4 May 2019 15:06:57 +0000 (UTC)
commit 810ef7956b8a815e55cd687e9bf50be4d0e8c2e3
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Fri May 3 19:35:21 2019 -0300
manager: Replace gcal_manager_get_sources()
With a GcalCalendar-based function.
src/gcal-application.c | 23 ++++++++-------
src/gcal-edit-dialog.c | 68 +++++++++++++++++++++-----------------------
src/gcal-manager.c | 45 ++---------------------------
src/gcal-manager.h | 4 +--
src/gcal-quick-add-popover.c | 21 +++++++++-----
src/gcal-window.c | 21 ++++++++------
6 files changed, 75 insertions(+), 107 deletions(-)
---
diff --git a/src/gcal-application.c b/src/gcal-application.c
index d4a9c37f..3d6f908b 100644
--- a/src/gcal-application.c
+++ b/src/gcal-application.c
@@ -101,31 +101,34 @@ process_sources (GcalApplication *self)
g_autofree gchar *new_css_data = NULL;
g_auto (GStrv) new_css_snippets = NULL;
GcalManager *manager;
- GList *sources, *l;
- ESource *source;
+ GList *calendars, *l;
GQuark color_id;
- GdkRGBA color;
gint arr_length;
gint i = 0;
manager = gcal_context_get_manager (self->context);
- sources = gcal_manager_get_sources_connected (manager);
- arr_length = g_list_length (sources);
+ calendars = gcal_manager_get_calendars (manager);
+ arr_length = g_list_length (calendars);
new_css_snippets = g_new0 (gchar*, arr_length + 2);
- for (l = sources; l != NULL; l = g_list_next (l), i++)
+ for (l = calendars; l; l = l->next, i++)
{
g_autofree gchar* color_str = NULL;
+ const GdkRGBA *color;
+ GcalCalendar *calendar;
- source = l->data;
+ calendar = l->data;
- get_color_name_from_source (source, &color);
- color_str = gdk_rgba_to_string (&color);
+ if (!gcal_calendar_get_visible (calendar))
+ continue;
+
+ color = gcal_calendar_get_color (calendar);
+ color_str = gdk_rgba_to_string (color);
color_id = g_quark_from_string (color_str);
new_css_snippets[i] = g_strdup_printf (CSS_TEMPLATE, color_id, color_str);
}
- g_list_free (sources);
+ g_list_free (calendars);
new_css_data = g_strjoinv ("\n", new_css_snippets);
diff --git a/src/gcal-edit-dialog.c b/src/gcal-edit-dialog.c
index 57081a52..0d014976 100644
--- a/src/gcal-edit-dialog.c
+++ b/src/gcal-edit-dialog.c
@@ -161,58 +161,59 @@ static gint
sources_menu_sort_func (gconstpointer a,
gconstpointer b)
{
- ESource *source1, *source2;
+ GcalCalendar *calendar1, *calendar2;
- source1 = E_SOURCE (a);
- source2 = E_SOURCE (b);
+ calendar1 = GCAL_CALENDAR ((gpointer) a);
+ calendar2 = GCAL_CALENDAR ((gpointer) b);
- return g_ascii_strcasecmp (e_source_get_display_name (source1), e_source_get_display_name (source2));
+ return g_ascii_strcasecmp (gcal_calendar_get_name (calendar1),
+ gcal_calendar_get_name (calendar2));
}
static void
fill_sources_menu (GcalEditDialog *self)
{
+ g_autoptr (GList) list = NULL;
GcalManager *manager;
- GList *list;
GList *aux;
if (self->context == NULL)
return;
manager = gcal_context_get_manager (self->context);
- list = gcal_manager_get_sources (manager);
+ list = gcal_manager_get_calendars (manager);
self->sources_menu = g_menu_new ();
list = g_list_sort (list, sources_menu_sort_func);
for (aux = list; aux != NULL; aux = aux->next)
{
- ESource *source;
+ GcalCalendar *calendar;
+ const GdkRGBA *color;
GMenuItem *item;
- GdkRGBA color;
cairo_surface_t *surface;
GdkPixbuf *pix;
- source = E_SOURCE (aux->data);
+ calendar = GCAL_CALENDAR (aux->data);
/* retrieve color */
- get_color_name_from_source (source, &color);
- surface = get_circle_surface_from_color (&color, 16);
+ color = gcal_calendar_get_color (calendar);
+ surface = get_circle_surface_from_color (color, 16);
pix = gdk_pixbuf_get_from_surface (surface, 0, 0, 16, 16);
/* menu item */
- item = g_menu_item_new (e_source_get_display_name (source), "select-calendar");
+ item = g_menu_item_new (gcal_calendar_get_name (calendar), "select-calendar");
g_menu_item_set_icon (item, G_ICON (pix));
/* set insensitive for read-only calendars */
- if (!gcal_manager_is_client_writable (manager, source))
+ if (gcal_calendar_is_read_only (calendar))
{
g_menu_item_set_action_and_target_value (item, "select-calendar", NULL);
}
else
{
- g_menu_item_set_action_and_target_value (item, "select-calendar",
- g_variant_new_string (e_source_get_uid (source)));
+ const gchar *id = gcal_calendar_get_id (calendar);
+ g_menu_item_set_action_and_target_value (item, "select-calendar", g_variant_new_string (id));
}
g_menu_append_item (self->sources_menu, item);
@@ -226,8 +227,6 @@ fill_sources_menu (GcalEditDialog *self)
/* HACK: show the popover menu icons */
fix_popover_menu_icons (GTK_POPOVER (self->sources_popover));
-
- g_list_free (list);
}
static void
@@ -629,9 +628,9 @@ on_calendar_selected_action_cb (GSimpleAction *action,
GVariant *value,
gpointer user_data)
{
+ g_autoptr (GList) list = NULL;
GcalEditDialog *self;
GcalManager *manager;
- GList *list;
GList *aux;
gchar *uid;
@@ -639,7 +638,7 @@ on_calendar_selected_action_cb (GSimpleAction *action,
self = GCAL_EDIT_DIALOG (user_data);
manager = gcal_context_get_manager (self->context);
- list = gcal_manager_get_sources (manager);
+ list = gcal_manager_get_calendars (manager);
/* retrieve selected calendar uid */
g_variant_get (value, "s", &uid);
@@ -647,31 +646,28 @@ on_calendar_selected_action_cb (GSimpleAction *action,
/* search for any source with the given UID */
for (aux = list; aux != NULL; aux = aux->next)
{
- ESource *source;
- source = E_SOURCE (aux->data);
-
- if (g_strcmp0 (e_source_get_uid (source), uid) == 0)
- {
- GdkRGBA color;
- cairo_surface_t *surface;
+ GcalCalendar *calendar = GCAL_CALENDAR (aux->data);
- /* retrieve color */
- get_color_name_from_source (source, &color);
+ if (g_strcmp0 (gcal_calendar_get_id (calendar), uid) == 0)
+ {
+ cairo_surface_t *surface;
+ const GdkRGBA *color;
- surface = get_circle_surface_from_color (&color, 16);
- gtk_image_set_from_surface (GTK_IMAGE (self->source_image), surface);
+ /* retrieve color */
+ color = gcal_calendar_get_color (calendar);
+ surface = get_circle_surface_from_color (color, 16);
+ gtk_image_set_from_surface (GTK_IMAGE (self->source_image), surface);
- self->selected_source = source;
+ self->selected_source = gcal_calendar_get_source (calendar);
- gtk_label_set_label (GTK_LABEL (self->subtitle_label), e_source_get_display_name (source));
+ gtk_label_set_label (GTK_LABEL (self->subtitle_label), gcal_calendar_get_name (calendar));
- g_clear_pointer (&surface, cairo_surface_destroy);
- break;
- }
+ g_clear_pointer (&surface, cairo_surface_destroy);
+ break;
+ }
}
g_free (uid);
- g_list_free (list);
GCAL_EXIT;
}
diff --git a/src/gcal-manager.c b/src/gcal-manager.c
index 36266aa8..751b3dc1 100644
--- a/src/gcal-manager.c
+++ b/src/gcal-manager.c
@@ -773,53 +773,12 @@ gcal_manager_get_source (GcalManager *self,
return e_source_registry_ref_source (self->source_registry, uid);
}
-/**
- * gcal_manager_get_sources:
- * @self: a #GcalManager
- *
- * Retrieve a list of the enabled sources used in the application.
- *
- * Returns: (nullable)(transfer container)(content-type ESource): a #GList
- */
-GList*
-gcal_manager_get_sources (GcalManager *self)
-{
- GHashTableIter iter;
- gpointer key, value;
- GList *aux = NULL;
-
- GCAL_ENTRY;
-
- g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
-
- g_hash_table_iter_init (&iter, self->clients);
-
- while (g_hash_table_iter_next (&iter, &key, &value))
- {
- if (!is_source_enabled (key))
- continue;
-
- aux = g_list_append (aux, key);
- }
-
- GCAL_RETURN (aux);
-}
-
-/**
- * gcal_manager_get_sources_connected:
- * @self: a #GcalManager
- *
- * Returns a #GList with every source connected on the app,
- * whether they are enabled or not.
- *
- * Returns: (nullable)(transfer container)(content-type ESource): a #GList
- */
GList*
-gcal_manager_get_sources_connected (GcalManager *self)
+gcal_manager_get_calendars (GcalManager *self)
{
g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
- return g_hash_table_get_keys (self->clients);
+ return g_hash_table_get_values (self->clients);
}
/**
diff --git a/src/gcal-manager.h b/src/gcal-manager.h
index aa814660..2e1b68d8 100644
--- a/src/gcal-manager.h
+++ b/src/gcal-manager.h
@@ -35,9 +35,7 @@ GcalManager* gcal_manager_new (void);
ESource* gcal_manager_get_source (GcalManager *self,
const gchar *uid);
-GList* gcal_manager_get_sources (GcalManager *self);
-
-GList* gcal_manager_get_sources_connected (GcalManager *self);
+GList* gcal_manager_get_calendars (GcalManager *self);
ESource* gcal_manager_get_default_source (GcalManager *self);
diff --git a/src/gcal-quick-add-popover.c b/src/gcal-quick-add-popover.c
index b8c58160..c7569073 100644
--- a/src/gcal-quick-add-popover.c
+++ b/src/gcal-quick-add-popover.c
@@ -788,17 +788,24 @@ gcal_quick_add_popover_set_property (GObject *object,
case PROP_CONTEXT:
if (g_set_object (&self->context, g_value_get_object (value)))
{
+ g_autoptr (GList) calendars = NULL;
GcalManager *manager;
- GList *sources, *l;
+ GList *l;
/* Add currently loaded sources */
manager = gcal_context_get_manager (self->context);
- sources = gcal_manager_get_sources_connected (manager);
-
- for (l = sources; l != NULL; l = g_list_next (l))
- on_source_added (manager, l->data, gcal_manager_is_client_writable (manager, l->data), self);
-
- g_list_free (sources);
+ calendars = gcal_manager_get_calendars (manager);
+
+ for (l = calendars; l; l = l->next)
+ {
+ GcalCalendar *calendar = l->data;
+ on_source_added (manager,
+ gcal_calendar_get_source (calendar),
+ gcal_calendar_get_visible (calendar),
+ self);
+ }
+
+ g_list_free (calendars);
/* Connect to the manager signals and keep the list updates */
g_signal_connect (manager, "source-added", G_CALLBACK (on_source_added), self);
diff --git a/src/gcal-window.c b/src/gcal-window.c
index 24e6f24b..e2138221 100644
--- a/src/gcal-window.c
+++ b/src/gcal-window.c
@@ -1192,14 +1192,19 @@ gcal_window_set_property (GObject *object,
if (!gcal_manager_get_loading (manager))
{
- GList *sources, *l;
-
- sources = gcal_manager_get_sources_connected (manager);
-
- for (l = sources; l != NULL; l = g_list_next (l))
- add_source (manager, l->data, is_source_enabled (l->data), self);
-
- g_list_free (sources);
+ g_autoptr (GList) calendars = NULL;
+ GList *l;
+
+ calendars = gcal_manager_get_calendars (manager);
+
+ for (l = calendars; l; l = l->next)
+ {
+ GcalCalendar *calendar = l->data;
+ add_source (manager,
+ gcal_calendar_get_source (calendar),
+ gcal_calendar_get_visible (calendar),
+ self);
+ }
}
g_signal_connect (manager, "source-added", G_CALLBACK (add_source), object);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]