[gnome-todo] provider: Add get_inbox vfunc



commit ec0975a987ceb4e265a2c577a825737d0cb7b442
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Sun Apr 26 17:37:41 2020 -0300

    provider: Add get_inbox vfunc

 plugins/eds/gtd-provider-eds.c |  9 +++++++++
 src/interfaces/gtd-provider.c  | 19 ++++++++++++++++++-
 src/interfaces/gtd-provider.h  |  6 +++++-
 3 files changed, 32 insertions(+), 2 deletions(-)
---
diff --git a/plugins/eds/gtd-provider-eds.c b/plugins/eds/gtd-provider-eds.c
index 229f0b9..547219c 100644
--- a/plugins/eds/gtd-provider-eds.c
+++ b/plugins/eds/gtd-provider-eds.c
@@ -764,6 +764,14 @@ gtd_provider_eds_get_task_lists (GtdProvider *provider)
   return g_hash_table_get_values (priv->task_lists);
 }
 
+static GtdTaskList*
+gtd_provider_eds_get_inbox (GtdProvider *provider)
+{
+  GtdProviderEdsPrivate *priv = gtd_provider_eds_get_instance_private (GTD_PROVIDER_EDS (provider));
+
+  return g_hash_table_lookup (priv->task_lists, "system-task-list");
+}
+
 static GtdTaskList*
 gtd_provider_eds_get_default_task_list (GtdProvider *provider)
 {
@@ -820,6 +828,7 @@ gtd_provider_iface_init (GtdProviderInterface *iface)
   iface->update_task_list = gtd_provider_eds_update_task_list;
   iface->remove_task_list = gtd_provider_eds_remove_task_list;
   iface->get_task_lists = gtd_provider_eds_get_task_lists;
+  iface->get_inbox = gtd_provider_eds_get_inbox;
   iface->get_default_task_list = gtd_provider_eds_get_default_task_list;
   iface->set_default_task_list = gtd_provider_eds_set_default_task_list;
 }
diff --git a/src/interfaces/gtd-provider.c b/src/interfaces/gtd-provider.c
index 85d0279..c1f28cf 100644
--- a/src/interfaces/gtd-provider.c
+++ b/src/interfaces/gtd-provider.c
@@ -1,6 +1,6 @@
 /* gtd-provider.c
  *
- * Copyright (C) 2015 Georges Basile Stavracas Neto <georges stavracas gmail com>
+ * Copyright (C) 2015-2020 Georges Basile Stavracas Neto <georges stavracas gmail com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -481,6 +481,23 @@ gtd_provider_set_default_task_list (GtdProvider *provider,
   return GTD_PROVIDER_GET_IFACE (provider)->set_default_task_list (provider, list);
 }
 
+/**
+ * gtd_provider_get_inbox:
+ * @provider: a #GtdProvider
+ *
+ * Retrieves the inbox of @provider.
+ *
+ * Returns: (transfer none)(nullable): a #GtdTaskList
+ */
+GtdTaskList*
+gtd_provider_get_inbox (GtdProvider *provider)
+{
+  g_return_val_if_fail (GTD_IS_PROVIDER (provider), NULL);
+  g_return_val_if_fail (GTD_PROVIDER_GET_IFACE (provider)->get_inbox, NULL);
+
+  return GTD_PROVIDER_GET_IFACE (provider)->get_inbox (provider);
+}
+
 /**
  * gtd_provider_compare:
  * @a: a #GtdProvider
diff --git a/src/interfaces/gtd-provider.h b/src/interfaces/gtd-provider.h
index ce77a57..d303c8d 100644
--- a/src/interfaces/gtd-provider.h
+++ b/src/interfaces/gtd-provider.h
@@ -1,6 +1,6 @@
 /* gtd-storage.h
  *
- * Copyright (C) 2015 Georges Basile Stavracas Neto <georges stavracas gmail com>
+ * Copyright (C) 2015-2020 Georges Basile Stavracas Neto <georges stavracas gmail com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -79,6 +79,8 @@ struct _GtdProviderInterface
 
   void               (*set_default_task_list)                    (GtdProvider        *provider,
                                                                   GtdTaskList        *list);
+
+  GtdTaskList*       (*get_inbox)                                (GtdProvider        *provider);
 };
 
 const gchar*         gtd_provider_get_id                         (GtdProvider        *provider);
@@ -122,6 +124,8 @@ GtdTaskList*         gtd_provider_get_default_task_list          (GtdProvider
 void                 gtd_provider_set_default_task_list          (GtdProvider        *provider,
                                                                   GtdTaskList        *list);
 
+GtdTaskList*         gtd_provider_get_inbox                      (GtdProvider        *provider);
+
 gint                 gtd_provider_compare                        (GtdProvider        *a,
                                                                   GtdProvider        *b);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]