[gnome-todo/wip/goa-lists] manager: add api to create lists
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo/wip/goa-lists] manager: add api to create lists
- Date: Tue, 25 Aug 2015 23:44:48 +0000 (UTC)
commit e5b7cecfe512a91cec75a5778498f676037b68f0
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Aug 25 20:44:20 2015 -0300
manager: add api to create lists
src/gtd-manager.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/gtd-manager.h | 4 +++
2 files changed, 61 insertions(+), 0 deletions(-)
---
diff --git a/src/gtd-manager.c b/src/gtd-manager.c
index aa2d8e3..b9e1140 100644
--- a/src/gtd-manager.c
+++ b/src/gtd-manager.c
@@ -425,6 +425,30 @@ task_list_removal_finished (GtdManager *manager,
}
static void
+gtd_manager__remote_create_source_finished (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GError *error;
+
+ error = NULL;
+
+ e_source_remote_create_finish (E_SOURCE (source),
+ result,
+ &error);
+
+ if (error)
+ {
+ g_warning ("%s: %s: %s",
+ G_STRFUNC,
+ _("Error creating task list"),
+ error->message);
+
+ g_clear_error (&error);
+ }
+}
+
+static void
gtd_manager__remote_delete_finished (GObject *source,
GAsyncResult *result,
gpointer user_data)
@@ -1360,6 +1384,39 @@ gtd_manager_update_task (GtdManager *manager,
}
/**
+ * gtd_manager_create_task_list:
+ *
+ *
+ * Creates a new task list at the given source.
+ *
+ * Returns:
+ */
+void
+gtd_manager_create_task_list (GtdManager *manager,
+ GtdTaskList *list)
+{
+ GtdManagerPrivate *priv;
+ ESource *source;
+ ESource *parent;
+
+ g_return_if_fail (GTD_IS_MANAGER (manager));
+ g_return_if_fail (GTD_IS_TASK_LIST (list));
+ g_return_if_fail (gtd_task_list_get_source (list));
+
+ priv = manager->priv;
+ source = gtd_task_list_get_source (list);
+ parent = e_source_registry_ref_source (priv->source_registry, e_source_get_parent (source));
+
+ e_source_remote_create (parent,
+ source,
+ NULL,
+ (GAsyncReadyCallback) gtd_manager__remote_create_source_finished,
+ manager);
+
+ g_object_unref (parent);
+}
+
+/**
* gtd_manager_remove_task_list:
* @manager: a #GtdManager
* @list: a #GtdTaskList
diff --git a/src/gtd-manager.h b/src/gtd-manager.h
index 1587b3e..444ced2 100644
--- a/src/gtd-manager.h
+++ b/src/gtd-manager.h
@@ -41,6 +41,10 @@ GList* gtd_manager_get_task_lists (GtdManager
GList* gtd_manager_get_storage_locations (GtdManager *manager);
+/* Task lists */
+void gtd_manager_create_task_list (GtdManager *manager,
+ GtdTaskList *list);
+
void gtd_manager_remove_task_list (GtdManager *manager,
GtdTaskList *list);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]