[gnome-todo] task-list-view: use the default task list if none is set



commit 5052fe57e25cb59e8dc00454bc4ceb24bb1d208a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Oct 5 20:37:24 2016 -0300

    task-list-view: use the default task list if none is set

 src/gtd-task-list-view.c |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)
---
diff --git a/src/gtd-task-list-view.c b/src/gtd-task-list-view.c
index 590e0b1..71321c4 100644
--- a/src/gtd-task-list-view.c
+++ b/src/gtd-task-list-view.c
@@ -21,6 +21,7 @@
 #include "gtd-task-list-view.h"
 #include "gtd-manager.h"
 #include "gtd-notification.h"
+#include "gtd-provider.h"
 #include "gtd-task.h"
 #include "gtd-task-list.h"
 #include "gtd-task-row.h"
@@ -672,19 +673,32 @@ gtd_task_list_view__create_task (GtdTaskRow *row,
                                  GtdTask    *task,
                                  gpointer    user_data)
 {
-  GtdTaskListViewPrivate *priv = GTD_TASK_LIST_VIEW (user_data)->priv;
+  GtdTaskListViewPrivate *priv;
+  GtdTaskList *list;
 
-  g_return_if_fail (GTD_IS_TASK_LIST_VIEW (user_data));
-  g_return_if_fail (GTD_IS_TASK_ROW (row));
-  g_return_if_fail (GTD_IS_TASK (task));
-  g_return_if_fail (priv->task_list);
+  priv = GTD_TASK_LIST_VIEW (user_data)->priv;
+  list = priv->task_list;
+
+  /*
+   * If there is no current list set, use the default list from the
+   * default provider.
+   */
+  if (!list)
+    {
+      GtdProvider *provider;
+
+      provider = gtd_manager_get_default_provider (gtd_manager_get_default ());
+      list = gtd_provider_get_default_task_list (provider);
+    }
+
+  g_return_if_fail (GTD_IS_TASK_LIST (list));
 
   /*
    * Newly created tasks are not aware of
    * their parent lists.
    */
-  gtd_task_set_list (task, priv->task_list);
-  gtd_task_list_save_task (priv->task_list, task);
+  gtd_task_set_list (task, list);
+  gtd_task_list_save_task (list, task);
 
   if (priv->default_date)
     gtd_task_set_due_date (task, priv->default_date);


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