[gnome-todo] provider: Make API synchronous
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] provider: Make API synchronous
- Date: Tue, 30 Jan 2018 19:33:32 +0000 (UTC)
commit 83f9da89541e003884e83dc42c05e7cae4701897
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Jan 30 17:31:48 2018 -0200
provider: Make API synchronous
This is temporary, until we find a good way to
handle it asynchronously.
plugins/eds/gtd-provider-eds.c | 169 ++++++++-----------------------
plugins/todo-txt/gtd-provider-todo-txt.c | 36 ++++---
plugins/todoist/gtd-provider-todoist.c | 36 ++++---
src/engine/gtd-manager.c | 82 +++++++++++++--
src/gtd-application.c | 2 +-
src/gtd-dnd-row.c | 5 +-
src/interfaces/gtd-provider.c | 60 +++++++----
src/interfaces/gtd-provider.h | 50 ++++++---
src/provider/gtd-provider-popover.c | 2 +-
9 files changed, 247 insertions(+), 195 deletions(-)
---
diff --git a/plugins/eds/gtd-provider-eds.c b/plugins/eds/gtd-provider-eds.c
index c406f9d..0f237c8 100644
--- a/plugins/eds/gtd-provider-eds.c
+++ b/plugins/eds/gtd-provider-eds.c
@@ -590,8 +590,10 @@ gtd_provider_eds_get_icon (GtdProvider *provider)
}
static void
-gtd_provider_eds_create_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_eds_create_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
g_autofree gchar *new_uid = NULL;
GtdProviderEdsPrivate *priv;
@@ -600,7 +602,6 @@ gtd_provider_eds_create_task (GtdProvider *provider,
ECalComponent *component;
ECalClient *client;
ESource *source;
- GError *error;
g_return_if_fail (GTD_IS_TASK (task));
g_return_if_fail (GTD_IS_TASK_LIST_EDS (gtd_task_get_list (task)));
@@ -611,26 +612,17 @@ gtd_provider_eds_create_task (GtdProvider *provider,
source = gtd_task_list_eds_get_source (tasklist);
client = g_hash_table_lookup (priv->clients, source);
component = gtd_task_eds_get_component (GTD_TASK_EDS (task));
- error = NULL;
/* The task is not ready until we finish the operation */
gtd_object_set_ready (GTD_OBJECT (task), FALSE);
- e_cal_client_create_object_sync (client,
- e_cal_component_get_icalcomponent (component),
- &new_uid,
- NULL, // We won't cancel the operation
- &error);
-
- if (error)
+ if (!e_cal_client_create_object_sync (client,
+ e_cal_component_get_icalcomponent (component),
+ &new_uid,
+ cancellable,
+ error))
{
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error removing task"),
- error->message,
- NULL,
- NULL);
gtd_task_list_remove_task (gtd_task_get_list (task), task);
- g_clear_error (&error);
}
else
{
@@ -647,8 +639,10 @@ gtd_provider_eds_create_task (GtdProvider *provider,
}
static void
-gtd_provider_eds_update_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_eds_update_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderEdsPrivate *priv;
GtdProviderEds *self;
@@ -656,7 +650,6 @@ gtd_provider_eds_update_task (GtdProvider *provider,
ECalComponent *component;
ECalClient *client;
ESource *source;
- GError *error;
g_return_if_fail (GTD_IS_TASK (task));
g_return_if_fail (GTD_IS_TASK_LIST_EDS (gtd_task_get_list (task)));
@@ -667,7 +660,6 @@ gtd_provider_eds_update_task (GtdProvider *provider,
source = gtd_task_list_eds_get_source (tasklist);
client = g_hash_table_lookup (priv->clients, source);
component = gtd_task_eds_get_component (GTD_TASK_EDS (task));
- error = NULL;
e_cal_component_commit_sequence (component);
@@ -677,25 +669,17 @@ gtd_provider_eds_update_task (GtdProvider *provider,
e_cal_client_modify_object_sync (client,
e_cal_component_get_icalcomponent (component),
E_CAL_OBJ_MOD_THIS,
- NULL, // We won't cancel the operation
- &error);
-
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error updating task"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
+ cancellable,
+ error);
gtd_object_set_ready (GTD_OBJECT (task), TRUE);
}
static void
-gtd_provider_eds_remove_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_eds_remove_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderEdsPrivate *priv;
@@ -705,7 +689,6 @@ gtd_provider_eds_remove_task (GtdProvider *provider,
ECalComponent *component;
ECalClient *client;
ESource *source;
- GError *error;
g_return_if_fail (GTD_IS_TASK (task));
g_return_if_fail (GTD_IS_TASK_LIST_EDS (gtd_task_get_list (task)));
@@ -717,7 +700,6 @@ gtd_provider_eds_remove_task (GtdProvider *provider,
client = g_hash_table_lookup (priv->clients, source);
component = gtd_task_eds_get_component (GTD_TASK_EDS (task));
id = e_cal_component_get_id (component);
- error = NULL;
/* The task is not ready until we finish the operation */
gtd_object_set_ready (GTD_OBJECT (task), FALSE);
@@ -726,36 +708,26 @@ gtd_provider_eds_remove_task (GtdProvider *provider,
id->uid,
id->rid,
E_CAL_OBJ_MOD_THIS,
- NULL, // We won't cancel the operation
- &error);
+ cancellable,
+ error);
gtd_object_set_ready (GTD_OBJECT (task), TRUE);
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error removing task"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
-
e_cal_component_free_id (id);
}
static void
-gtd_provider_eds_create_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_eds_create_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderEdsPrivate *priv;
GtdProviderEds *self;
ESource *source;
- GError *error;
self = GTD_PROVIDER_EDS (provider);
priv = gtd_provider_eds_get_instance_private (self);
- error = NULL;
source = NULL;
/* Create an ESource */
@@ -769,72 +741,35 @@ gtd_provider_eds_create_task_list (GtdProvider *provider,
e_source_set_display_name (source, gtd_task_list_get_name (list));
gtd_object_set_ready (GTD_OBJECT (provider), FALSE);
- e_source_registry_commit_source_sync (priv->source_registry, source, NULL, &error);
-
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error creating task list"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
-
- if (e_source_get_remote_creatable (source))
- {
- ESource *parent;
-
- parent = e_source_registry_ref_source (priv->source_registry, e_source_get_parent (source));
- e_source_remote_create_sync (parent, source, NULL, &error);
-
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error creating remote task list"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
-
- g_object_unref (parent);
- }
+ e_source_registry_commit_source_sync (priv->source_registry,
+ source,
+ cancellable,
+ error);
gtd_object_set_ready (GTD_OBJECT (list), TRUE);
}
static void
-gtd_provider_eds_update_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_eds_update_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderEdsPrivate *priv;
ESource *source;
- GError *error;
g_return_if_fail (GTD_IS_TASK_LIST (list));
g_return_if_fail (gtd_task_list_eds_get_source (GTD_TASK_LIST_EDS (list)));
priv = gtd_provider_eds_get_instance_private (GTD_PROVIDER_EDS (provider));
source = gtd_task_list_eds_get_source (GTD_TASK_LIST_EDS (list));
- error = NULL;
gtd_object_set_ready (GTD_OBJECT (provider), FALSE);
e_source_registry_commit_source_sync (priv->source_registry,
source,
- NULL,
- &error);
-
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error updating task list"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
+ cancellable,
+ error);
gtd_object_set_ready (GTD_OBJECT (provider), TRUE);
@@ -842,11 +777,12 @@ gtd_provider_eds_update_task_list (GtdProvider *provider,
}
static void
-gtd_provider_eds_remove_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_eds_remove_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
ESource *source;
- GError *error;
g_return_if_fail (GTD_IS_TASK_LIST (list));
g_return_if_fail (gtd_task_list_eds_get_source (GTD_TASK_LIST_EDS (list)));
@@ -856,32 +792,7 @@ gtd_provider_eds_remove_task_list (GtdProvider *provider,
gtd_object_set_ready (GTD_OBJECT (provider), FALSE);
- e_source_remove_sync (source, NULL, &error);
-
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error removing task list"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
-
- if (e_source_get_remote_deletable (source))
- {
- e_source_remote_delete_sync (source, NULL, &error);
-
- if (error)
- {
- gtd_manager_emit_error_message (gtd_manager_get_default (),
- _("Error removing remote task list"),
- error->message,
- NULL,
- NULL);
- g_clear_error (&error);
- }
- }
+ e_source_remove_sync (source, cancellable, error);
gtd_object_set_ready (GTD_OBJECT (provider), TRUE);
diff --git a/plugins/todo-txt/gtd-provider-todo-txt.c b/plugins/todo-txt/gtd-provider-todo-txt.c
index 2e9d281..4f0808c 100644
--- a/plugins/todo-txt/gtd-provider-todo-txt.c
+++ b/plugins/todo-txt/gtd-provider-todo-txt.c
@@ -376,8 +376,10 @@ gtd_provider_todo_txt_load_source_monitor (GtdProviderTodoTxt *self)
}
static void
-gtd_provider_todo_txt_create_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_todo_txt_create_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoTxt *self;
@@ -390,8 +392,10 @@ gtd_provider_todo_txt_create_task (GtdProvider *provider,
}
static void
-gtd_provider_todo_txt_update_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_todo_txt_update_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoTxt *self;
@@ -405,8 +409,10 @@ gtd_provider_todo_txt_update_task (GtdProvider *provider,
}
static void
-gtd_provider_todo_txt_remove_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_todo_txt_remove_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoTxt *self;
@@ -420,8 +426,10 @@ gtd_provider_todo_txt_remove_task (GtdProvider *provider,
}
static void
-gtd_provider_todo_txt_create_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_todo_txt_create_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoTxt *self;
gchar *name;
@@ -441,8 +449,10 @@ gtd_provider_todo_txt_create_task_list (GtdProvider *provider,
}
static void
-gtd_provider_todo_txt_update_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_todo_txt_update_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoTxt *self;
@@ -456,8 +466,10 @@ gtd_provider_todo_txt_update_task_list (GtdProvider *provider,
}
static void
-gtd_provider_todo_txt_remove_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_todo_txt_remove_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoTxt *self;
diff --git a/plugins/todoist/gtd-provider-todoist.c b/plugins/todoist/gtd-provider-todoist.c
index 41184c2..b23d1b7 100644
--- a/plugins/todoist/gtd-provider-todoist.c
+++ b/plugins/todoist/gtd-provider-todoist.c
@@ -682,8 +682,10 @@ synchronize_call (GtdProviderTodoist *self)
}
static void
-gtd_provider_todoist_create_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_todoist_create_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoist *self;
PostCallbackData *data;
@@ -768,8 +770,10 @@ gtd_provider_todoist_create_task (GtdProvider *provider,
}
static void
-gtd_provider_todoist_update_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_todoist_update_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoist *self;
PostCallbackData *data;
@@ -842,8 +846,10 @@ gtd_provider_todoist_update_task (GtdProvider *provider,
}
static void
-gtd_provider_todoist_remove_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_todoist_remove_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoist *self;
PostCallbackData *data;
@@ -885,8 +891,10 @@ gtd_provider_todoist_remove_task (GtdProvider *provider,
}
static void
-gtd_provider_todoist_create_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_todoist_create_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoist *self;
PostCallbackData *data;
@@ -946,8 +954,10 @@ gtd_provider_todoist_create_task_list (GtdProvider *provider,
}
static void
-gtd_provider_todoist_update_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_todoist_update_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoist *self;
PostCallbackData *data;
@@ -995,8 +1005,10 @@ gtd_provider_todoist_update_task_list (GtdProvider *provider,
}
static void
-gtd_provider_todoist_remove_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_todoist_remove_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
GtdProviderTodoist *self;
PostCallbackData *data;
diff --git a/src/engine/gtd-manager.c b/src/engine/gtd-manager.c
index c033e19..adf0856 100644
--- a/src/engine/gtd-manager.c
+++ b/src/engine/gtd-manager.c
@@ -54,6 +54,8 @@ typedef struct
GList *panels;
GtdProvider *default_provider;
GtdTimer *timer;
+
+ GCancellable *cancellable;
} GtdManagerPrivate;
struct _GtdManager
@@ -94,6 +96,18 @@ enum
static guint signals[NUM_SIGNALS] = { 0, };
+static void
+reset_cancellable_if_cancelled (GtdManager *self)
+{
+ GtdManagerPrivate *priv = gtd_manager_get_instance_private (self);
+
+ if (!g_cancellable_is_cancelled (priv->cancellable))
+ return;
+
+ g_clear_object (&priv->cancellable);
+ priv->cancellable = g_cancellable_new ();
+}
+
static void
check_provider_is_default (GtdManager *manager,
GtdProvider *provider)
@@ -131,6 +145,7 @@ gtd_manager_finalize (GObject *object)
{
GtdManager *self = (GtdManager *)object;
+ g_clear_object (&self->priv->cancellable);
g_clear_object (&self->priv->plugin_manager);
g_clear_object (&self->priv->settings);
g_clear_object (&self->priv->timer);
@@ -598,6 +613,7 @@ gtd_manager_init (GtdManager *self)
self->priv->settings = g_settings_new ("org.gnome.todo");
self->priv->plugin_manager = gtd_plugin_manager_new ();
self->priv->timer = gtd_timer_new ();
+ self->priv->cancellable = g_cancellable_new ();
}
/**
@@ -634,16 +650,25 @@ void
gtd_manager_create_task (GtdManager *manager,
GtdTask *task)
{
+ g_autoptr (GError) error = NULL;
+ GtdManagerPrivate *priv;
GtdTaskList *list;
GtdProvider *provider;
g_return_if_fail (GTD_IS_MANAGER (manager));
g_return_if_fail (GTD_IS_TASK (task));
+ priv = gtd_manager_get_instance_private (manager);
list = gtd_task_get_list (task);
provider = gtd_task_list_get_provider (list);
- gtd_provider_create_task (provider, task);
+ gtd_provider_create_task (provider, task, priv->cancellable, &error);
+
+ if (error)
+ {
+ g_warning ("Error creating task: %s", error->message);
+ reset_cancellable_if_cancelled (manager);
+ }
}
/**
@@ -657,16 +682,25 @@ void
gtd_manager_remove_task (GtdManager *manager,
GtdTask *task)
{
+ g_autoptr (GError) error = NULL;
+ GtdManagerPrivate *priv;
GtdTaskList *list;
GtdProvider *provider;
g_return_if_fail (GTD_IS_MANAGER (manager));
g_return_if_fail (GTD_IS_TASK (task));
+ priv = gtd_manager_get_instance_private (manager);
list = gtd_task_get_list (task);
provider = gtd_task_list_get_provider (list);
- gtd_provider_remove_task (provider, task);
+ gtd_provider_remove_task (provider, task, priv->cancellable, &error);
+
+ if (error)
+ {
+ g_warning ("Error removing task: %s", error->message);
+ reset_cancellable_if_cancelled (manager);
+ }
}
/**
@@ -680,6 +714,8 @@ void
gtd_manager_update_task (GtdManager *manager,
GtdTask *task)
{
+ g_autoptr (GError) error = NULL;
+ GtdManagerPrivate *priv;
GtdTaskList *list;
GtdProvider *provider;
@@ -692,9 +728,16 @@ gtd_manager_update_task (GtdManager *manager,
if (!list)
return;
+ priv = gtd_manager_get_instance_private (manager);
provider = gtd_task_list_get_provider (list);
- gtd_provider_update_task (provider, task);
+ gtd_provider_update_task (provider, task, priv->cancellable, &error);
+
+ if (error)
+ {
+ g_warning ("Error updating task: %s", error->message);
+ reset_cancellable_if_cancelled (manager);
+ }
}
/**
@@ -708,14 +751,23 @@ void
gtd_manager_create_task_list (GtdManager *manager,
GtdTaskList *list)
{
+ g_autoptr (GError) error = NULL;
+ GtdManagerPrivate *priv;
GtdProvider *provider;
g_return_if_fail (GTD_IS_MANAGER (manager));
g_return_if_fail (GTD_IS_TASK_LIST (list));
+ priv = gtd_manager_get_instance_private (manager);
provider = gtd_task_list_get_provider (list);
- gtd_provider_create_task_list (provider, list);
+ gtd_provider_create_task_list (provider, list, priv->cancellable, &error);
+
+ if (error)
+ {
+ g_warning ("Error creating task list: %s", error->message);
+ reset_cancellable_if_cancelled (manager);
+ }
}
/**
@@ -729,14 +781,23 @@ void
gtd_manager_remove_task_list (GtdManager *manager,
GtdTaskList *list)
{
+ g_autoptr (GError) error = NULL;
+ GtdManagerPrivate *priv;
GtdProvider *provider;
g_return_if_fail (GTD_IS_MANAGER (manager));
g_return_if_fail (GTD_IS_TASK_LIST (list));
+ priv = gtd_manager_get_instance_private (manager);
provider = gtd_task_list_get_provider (list);
- gtd_provider_remove_task_list (provider, list);
+ gtd_provider_remove_task_list (provider, list, priv->cancellable, &error);
+
+ if (error)
+ {
+ g_warning ("Error removing task list: %s", error->message);
+ reset_cancellable_if_cancelled (manager);
+ }
g_signal_emit (manager,
signals[LIST_REMOVED],
@@ -755,14 +816,23 @@ void
gtd_manager_save_task_list (GtdManager *manager,
GtdTaskList *list)
{
+ g_autoptr (GError) error = NULL;
+ GtdManagerPrivate *priv;
GtdProvider *provider;
g_return_if_fail (GTD_IS_MANAGER (manager));
g_return_if_fail (GTD_IS_TASK_LIST (list));
+ priv = gtd_manager_get_instance_private (manager);
provider = gtd_task_list_get_provider (list);
- gtd_provider_update_task_list (provider, list);
+ gtd_provider_update_task_list (provider, list, priv->cancellable, &error);
+
+ if (error)
+ {
+ g_warning ("Error saving task list: %s", error->message);
+ reset_cancellable_if_cancelled (manager);
+ }
}
/**
diff --git a/src/gtd-application.c b/src/gtd-application.c
index b5810c4..8bf0231 100644
--- a/src/gtd-application.c
+++ b/src/gtd-application.c
@@ -302,7 +302,7 @@ gtd_application_command_line (GApplication *app,
options = g_application_command_line_get_options_dict (command_line);
- if (g_variant_dict_contains (options, "debug"))
+ //if (g_variant_dict_contains (options, "debug"))
gtd_log_init ();
if (g_variant_dict_contains (options, "quit"))
diff --git a/src/gtd-dnd-row.c b/src/gtd-dnd-row.c
index d875f9e..7666bb1 100644
--- a/src/gtd-dnd-row.c
+++ b/src/gtd-dnd-row.c
@@ -19,6 +19,7 @@
#define G_LOG_DOMAIN "GtdDndRow"
#include "gtd-dnd-row.h"
+#include "gtd-manager.h"
#include "gtd-new-task-row.h"
#include "gtd-provider.h"
#include "gtd-rows-common-private.h"
@@ -226,7 +227,6 @@ gtd_dnd_row_drag_drop (GtkWidget *widget,
gint y,
guint time)
{
- GtdProvider *provider;
GtdDndRow *self;
GtkWidget *source_widget, *row;
GtdTask *row_task, *target_task;
@@ -277,8 +277,7 @@ gtd_dnd_row_drag_drop (GtkWidget *widget,
}
/* Save the task */
- provider = gtd_task_list_get_provider (gtd_task_get_list (row_task));
- gtd_provider_update_task (provider, row_task);
+ gtd_manager_update_task (gtd_manager_get_default (), row_task);
gtk_list_box_invalidate_sort (GTK_LIST_BOX (gtk_widget_get_parent (widget)));
diff --git a/src/interfaces/gtd-provider.c b/src/interfaces/gtd-provider.c
index caf4e65..1a265de 100644
--- a/src/interfaces/gtd-provider.c
+++ b/src/interfaces/gtd-provider.c
@@ -295,102 +295,126 @@ gtd_provider_get_icon (GtdProvider *provider)
* gtd_provider_create_task:
* @provider: a #GtdProvider
* @task: a #GtdTask
+ * @cancellable: (nullable): a #GCancellable
+ * @error: (nullable): return location for a #GError
*
* Creates the given task in @provider.
*/
void
-gtd_provider_create_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_create_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_if_fail (GTD_IS_PROVIDER (provider));
g_return_if_fail (GTD_PROVIDER_GET_IFACE (provider)->create_task);
- GTD_PROVIDER_GET_IFACE (provider)->create_task (provider, task);
+ GTD_PROVIDER_GET_IFACE (provider)->create_task (provider, task, cancellable, error);
}
/**
* gtd_provider_update_task:
* @provider: a #GtdProvider
* @task: a #GtdTask
+ * @cancellable: (nullable): a #GCancellable
+ * @error: (nullable): return location for a #GError
*
* Updates the given task in @provider.
*/
void
-gtd_provider_update_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_update_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_if_fail (GTD_IS_PROVIDER (provider));
g_return_if_fail (GTD_PROVIDER_GET_IFACE (provider)->update_task);
- GTD_PROVIDER_GET_IFACE (provider)->update_task (provider, task);
+ GTD_PROVIDER_GET_IFACE (provider)->update_task (provider, task, cancellable, error);
}
/**
* gtd_provider_remove_task:
* @provider: a #GtdProvider
* @task: a #GtdTask
+ * @cancellable: (nullable): a #GCancellable
+ * @error: (nullable): return location for a #GError
*
* Removes the given task from @provider.
*/
void
-gtd_provider_remove_task (GtdProvider *provider,
- GtdTask *task)
+gtd_provider_remove_task (GtdProvider *provider,
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_if_fail (GTD_IS_PROVIDER (provider));
g_return_if_fail (GTD_PROVIDER_GET_IFACE (provider)->remove_task);
- GTD_PROVIDER_GET_IFACE (provider)->remove_task (provider, task);
+ GTD_PROVIDER_GET_IFACE (provider)->remove_task (provider, task, cancellable, error);
}
/**
* gtd_provider_create_task_list:
* @provider: a #GtdProvider
* @list: a #GtdTaskList
+ * @cancellable: (nullable): a #GCancellable
+ * @error: (nullable): return location for a #GError
*
* Creates the given list in @provider.
*/
void
-gtd_provider_create_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_create_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_if_fail (GTD_IS_PROVIDER (provider));
g_return_if_fail (GTD_PROVIDER_GET_IFACE (provider)->create_task_list);
- GTD_PROVIDER_GET_IFACE (provider)->create_task_list (provider, list);
+ GTD_PROVIDER_GET_IFACE (provider)->create_task_list (provider, list, cancellable, error);
}
/**
* gtd_provider_update_task_list:
* @provider: a #GtdProvider
* @list: a #GtdTaskList
+ * @cancellable: (nullable): a #GCancellable
+ * @error: (nullable): return location for a #GError
*
* Updates the given list in @provider.
*/
void
-gtd_provider_update_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_update_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_if_fail (GTD_IS_PROVIDER (provider));
g_return_if_fail (GTD_PROVIDER_GET_IFACE (provider)->update_task_list);
- GTD_PROVIDER_GET_IFACE (provider)->update_task_list (provider, list);
+ GTD_PROVIDER_GET_IFACE (provider)->update_task_list (provider, list, cancellable, error);
}
/**
* gtd_provider_remove_task_list:
* @provider: a #GtdProvider
* @list: a #GtdTaskList
+ * @cancellable: (nullable): a #GCancellable
+ * @error: (nullable): return location for a #GError
*
* Removes the given list from @provider.
*/
void
-gtd_provider_remove_task_list (GtdProvider *provider,
- GtdTaskList *list)
+gtd_provider_remove_task_list (GtdProvider *provider,
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_if_fail (GTD_IS_PROVIDER (provider));
g_return_if_fail (GTD_PROVIDER_GET_IFACE (provider)->remove_task_list);
- GTD_PROVIDER_GET_IFACE (provider)->remove_task_list (provider, list);
+ GTD_PROVIDER_GET_IFACE (provider)->remove_task_list (provider, list, cancellable, error);
}
/**
diff --git a/src/interfaces/gtd-provider.h b/src/interfaces/gtd-provider.h
index 98a8f8b..d3a6d95 100644
--- a/src/interfaces/gtd-provider.h
+++ b/src/interfaces/gtd-provider.h
@@ -22,8 +22,8 @@
#include "gtd-object.h"
#include "gtd-types.h"
+#include <gio/gio.h>
#include <glib.h>
-#include <gtk/gtk.h>
G_BEGIN_DECLS
@@ -49,23 +49,35 @@ struct _GtdProviderInterface
/* Tasks */
void (*create_task) (GtdProvider *provider,
- GtdTask *task);
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error);
void (*update_task) (GtdProvider *provider,
- GtdTask *task);
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error);
void (*remove_task) (GtdProvider *provider,
- GtdTask *task);
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error);
/* Task lists */
void (*create_task_list) (GtdProvider *provider,
- GtdTaskList *list);
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error);
void (*update_task_list) (GtdProvider *provider,
- GtdTaskList *list);
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error);
void (*remove_task_list) (GtdProvider *provider,
- GtdTaskList *list);
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error);
GList* (*get_task_lists) (GtdProvider *provider);
@@ -88,22 +100,34 @@ gboolean gtd_provider_get_enabled (GtdProvider
GIcon* gtd_provider_get_icon (GtdProvider *provider);
void gtd_provider_create_task (GtdProvider *provider,
- GtdTask *task);
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error);
void gtd_provider_update_task (GtdProvider *provider,
- GtdTask *task);
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error);
void gtd_provider_remove_task (GtdProvider *provider,
- GtdTask *task);
+ GtdTask *task,
+ GCancellable *cancellable,
+ GError **error);
void gtd_provider_create_task_list (GtdProvider *provider,
- GtdTaskList *list);
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error);
void gtd_provider_update_task_list (GtdProvider *provider,
- GtdTaskList *list);
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error);
void gtd_provider_remove_task_list (GtdProvider *provider,
- GtdTaskList *list);
+ GtdTaskList *list,
+ GCancellable *cancellable,
+ GError **error);
GList* gtd_provider_get_task_lists (GtdProvider *provider);
diff --git a/src/provider/gtd-provider-popover.c b/src/provider/gtd-provider-popover.c
index 6f11da5..4cd474a 100644
--- a/src/provider/gtd-provider-popover.c
+++ b/src/provider/gtd-provider-popover.c
@@ -93,7 +93,7 @@ create_task_list (GtdProviderPopover *popover)
task_list = gtd_task_list_new (provider);
gtd_task_list_set_name (task_list, name);
- gtd_provider_create_task_list (provider, task_list);
+ gtd_manager_create_task_list (gtd_manager_get_default (), task_list);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]