manager: Remove "loading" property
The stack is robust enough to handle dynamically loading the calendars.
This commit is contained in:
@@ -86,9 +86,6 @@ struct _GcalManager
|
|||||||
ViewStateData *search_view_data;
|
ViewStateData *search_view_data;
|
||||||
|
|
||||||
GCancellable *async_ops;
|
GCancellable *async_ops;
|
||||||
|
|
||||||
/* state flags */
|
|
||||||
gint sources_at_launch;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT)
|
G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT)
|
||||||
@@ -97,7 +94,6 @@ enum
|
|||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_DEFAULT_CALENDAR,
|
PROP_DEFAULT_CALENDAR,
|
||||||
PROP_LOADING,
|
|
||||||
NUM_PROPS
|
NUM_PROPS
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -678,10 +674,6 @@ gcal_manager_get_property (GObject *object,
|
|||||||
g_value_take_object (value, e_source_registry_ref_default_calendar (self->source_registry));
|
g_value_take_object (value, e_source_registry_ref_default_calendar (self->source_registry));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_LOADING:
|
|
||||||
g_value_set_boolean (value, gcal_manager_get_loading (self));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
}
|
}
|
||||||
@@ -711,17 +703,6 @@ gcal_manager_class_init (GcalManagerClass *klass)
|
|||||||
E_TYPE_SOURCE,
|
E_TYPE_SOURCE,
|
||||||
G_PARAM_READWRITE);
|
G_PARAM_READWRITE);
|
||||||
|
|
||||||
/**
|
|
||||||
* GcalManager:loading:
|
|
||||||
*
|
|
||||||
* Whether the manager is loading or not.
|
|
||||||
*/
|
|
||||||
properties[PROP_LOADING] = g_param_spec_boolean ("loading",
|
|
||||||
"Loading",
|
|
||||||
"Whether it's still loading or not",
|
|
||||||
TRUE,
|
|
||||||
G_PARAM_READABLE);
|
|
||||||
|
|
||||||
g_object_class_install_properties (object_class, NUM_PROPS, properties);
|
g_object_class_install_properties (object_class, NUM_PROPS, properties);
|
||||||
|
|
||||||
/* signals */
|
/* signals */
|
||||||
@@ -1411,24 +1392,6 @@ gcal_manager_get_events (GcalManager *self,
|
|||||||
GCAL_RETURN (data.events);
|
GCAL_RETURN (data.events);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gcal_manager_get_loading:
|
|
||||||
* @self: a #GcalManager
|
|
||||||
*
|
|
||||||
* Retrieves whether @self is still loading or not. Loading is
|
|
||||||
* complete when the Online Accounts client is retrieved, and all
|
|
||||||
* the calendars are loaded.
|
|
||||||
*
|
|
||||||
* Returns: %TRUE if manager is still loading; %FALSE otherwise
|
|
||||||
*/
|
|
||||||
gboolean
|
|
||||||
gcal_manager_get_loading (GcalManager *self)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GCAL_IS_MANAGER (self), FALSE);
|
|
||||||
|
|
||||||
return self->sources_at_launch > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gcal_manager_get_event_from_shell_search:
|
* gcal_manager_get_event_from_shell_search:
|
||||||
* @self: a #GcalManager
|
* @self: a #GcalManager
|
||||||
@@ -1591,7 +1554,6 @@ gcal_manager_startup (GcalManager *self)
|
|||||||
e_cal_data_model_set_timezone (self->e_data_model, e_cal_util_get_system_timezone ());
|
e_cal_data_model_set_timezone (self->e_data_model, e_cal_util_get_system_timezone ());
|
||||||
|
|
||||||
sources = e_source_registry_list_enabled (self->source_registry, E_SOURCE_EXTENSION_CALENDAR);
|
sources = e_source_registry_list_enabled (self->source_registry, E_SOURCE_EXTENSION_CALENDAR);
|
||||||
self->sources_at_launch = g_list_length (sources);
|
|
||||||
|
|
||||||
for (l = sources; l != NULL; l = l->next)
|
for (l = sources; l != NULL; l = l->next)
|
||||||
load_source (self, l->data);
|
load_source (self, l->data);
|
||||||
|
|||||||
@@ -91,8 +91,6 @@ GList* gcal_manager_get_events (GcalManager
|
|||||||
icaltimetype *range_start,
|
icaltimetype *range_start,
|
||||||
icaltimetype *range_end);
|
icaltimetype *range_end);
|
||||||
|
|
||||||
gboolean gcal_manager_get_loading (GcalManager *self);
|
|
||||||
|
|
||||||
/* GNOME Shell-related functions */
|
/* GNOME Shell-related functions */
|
||||||
GcalEvent* gcal_manager_get_event_from_shell_search (GcalManager *self,
|
GcalEvent* gcal_manager_get_event_from_shell_search (GcalManager *self,
|
||||||
const gchar *uuid);
|
const gchar *uuid);
|
||||||
|
|||||||
@@ -237,22 +237,18 @@ gcal_calendar_popover_set_property (GObject *object,
|
|||||||
{
|
{
|
||||||
case PROP_CONTEXT:
|
case PROP_CONTEXT:
|
||||||
{
|
{
|
||||||
|
g_autoptr (GList) calendars = NULL;
|
||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
g_assert (self->context == NULL);
|
g_assert (self->context == NULL);
|
||||||
self->context = g_value_dup_object (value);
|
self->context = g_value_dup_object (value);
|
||||||
|
|
||||||
manager = gcal_context_get_manager (self->context);
|
manager = gcal_context_get_manager (self->context);
|
||||||
if (!gcal_manager_get_loading (manager))
|
calendars = gcal_manager_get_calendars (manager);
|
||||||
{
|
|
||||||
g_autoptr (GList) calendars = NULL;
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
calendars = gcal_manager_get_calendars (manager);
|
for (l = calendars; l; l = l->next)
|
||||||
|
add_calendar (self, l->data);
|
||||||
for (l = calendars; l; l = l->next)
|
|
||||||
add_calendar (self, l->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_signal_connect (manager, "calendar-added", G_CALLBACK (on_manager_calendar_added_cb), object);
|
g_signal_connect (manager, "calendar-added", G_CALLBACK (on_manager_calendar_added_cb), object);
|
||||||
g_signal_connect (manager, "calendar-removed", G_CALLBACK (on_manager_calendar_removed_cb), object);
|
g_signal_connect (manager, "calendar-removed", G_CALLBACK (on_manager_calendar_removed_cb), object);
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ struct _GcalShellSearchProvider
|
|||||||
GcalContext *context;
|
GcalContext *context;
|
||||||
|
|
||||||
PendingSearch *pending_search;
|
PendingSearch *pending_search;
|
||||||
guint scheduled_search_id;
|
|
||||||
GHashTable *events;
|
GHashTable *events;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -87,9 +86,6 @@ execute_search (GcalShellSearchProvider *self)
|
|||||||
|
|
||||||
manager = gcal_context_get_manager (self->context);
|
manager = gcal_context_get_manager (self->context);
|
||||||
|
|
||||||
if (gcal_manager_get_loading (manager))
|
|
||||||
GCAL_RETURN (TRUE);
|
|
||||||
|
|
||||||
now = g_date_time_new_now (gcal_context_get_timezone (self->context));
|
now = g_date_time_new_now (gcal_context_get_timezone (self->context));
|
||||||
start = g_date_time_add_weeks (now, -1);
|
start = g_date_time_add_weeks (now, -1);
|
||||||
range_start = g_date_time_to_unix (start);
|
range_start = g_date_time_to_unix (start);
|
||||||
@@ -117,8 +113,6 @@ execute_search (GcalShellSearchProvider *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
gcal_manager_set_shell_search_query (manager, search_query);
|
gcal_manager_set_shell_search_query (manager, search_query);
|
||||||
|
|
||||||
self->scheduled_search_id = 0;
|
|
||||||
g_application_hold (g_application_get_default ());
|
g_application_hold (g_application_get_default ());
|
||||||
|
|
||||||
GCAL_RETURN (FALSE);
|
GCAL_RETURN (FALSE);
|
||||||
@@ -129,8 +123,6 @@ schedule_search (GcalShellSearchProvider *self,
|
|||||||
GDBusMethodInvocation *invocation,
|
GDBusMethodInvocation *invocation,
|
||||||
gchar **terms)
|
gchar **terms)
|
||||||
{
|
{
|
||||||
GcalManager *manager;
|
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
/* don't attempt searches for a single character */
|
/* don't attempt searches for a single character */
|
||||||
@@ -145,30 +137,16 @@ schedule_search (GcalShellSearchProvider *self,
|
|||||||
g_object_unref (self->pending_search->invocation);
|
g_object_unref (self->pending_search->invocation);
|
||||||
g_strfreev (self->pending_search->terms);
|
g_strfreev (self->pending_search->terms);
|
||||||
|
|
||||||
if (self->scheduled_search_id == 0)
|
g_application_release (g_application_get_default ());
|
||||||
g_application_release (g_application_get_default ());
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
self->pending_search = g_new0 (PendingSearch, 1);
|
self->pending_search = g_new0 (PendingSearch, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self->scheduled_search_id != 0)
|
|
||||||
{
|
|
||||||
g_source_remove (self->scheduled_search_id);
|
|
||||||
self->scheduled_search_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
self->pending_search->invocation = g_object_ref (invocation);
|
self->pending_search->invocation = g_object_ref (invocation);
|
||||||
self->pending_search->terms = g_strdupv (terms);
|
self->pending_search->terms = g_strdupv (terms);
|
||||||
|
|
||||||
manager = gcal_context_get_manager (self->context);
|
|
||||||
if (gcal_manager_get_loading (manager))
|
|
||||||
{
|
|
||||||
self->scheduled_search_id = g_timeout_add_seconds (1, (GSourceFunc) execute_search, self);
|
|
||||||
GCAL_RETURN ();
|
|
||||||
}
|
|
||||||
|
|
||||||
execute_search (self);
|
execute_search (self);
|
||||||
|
|
||||||
GCAL_EXIT;
|
GCAL_EXIT;
|
||||||
|
|||||||
Reference in New Issue
Block a user