[gnome-todo] task-list-view: Add list selector behaviors
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] task-list-view: Add list selector behaviors
- Date: Sun, 26 Apr 2020 22:12:28 +0000 (UTC)
commit 45ed64884f0edd20f91bbe38be7911d11649fc91
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sun Apr 26 18:06:30 2020 -0300
task-list-view: Add list selector behaviors
src/task-list-view/gtd-task-list-view.c | 53 ++++++++++++++++++++++++++++++++-
src/task-list-view/gtd-task-list-view.h | 14 ++++++++-
2 files changed, 65 insertions(+), 2 deletions(-)
---
diff --git a/src/task-list-view/gtd-task-list-view.c b/src/task-list-view/gtd-task-list-view.c
index 848cc79..49811a8 100644
--- a/src/task-list-view/gtd-task-list-view.c
+++ b/src/task-list-view/gtd-task-list-view.c
@@ -108,6 +108,7 @@ typedef struct
GtdTaskRow *active_row;
GtkSizeGroup *due_date_sizegroup;
GtkSizeGroup *tasklist_name_sizegroup;
+ GtdTaskListSelectorBehavior task_list_selector_behavior;
} GtdTaskListViewPrivate;
struct _GtdTaskListView
@@ -1166,6 +1167,7 @@ gtd_task_list_view_init (GtdTaskListView *self)
self->priv = priv;
+ priv->task_list_selector_behavior = GTD_TASK_LIST_SELECTOR_BEHAVIOR_AUTOMATIC;
priv->task_to_row = g_hash_table_new (NULL, NULL);
priv->can_toggle = TRUE;
@@ -1283,7 +1285,8 @@ gtd_task_list_view_set_model (GtdTaskListView *view,
schedule_scroll_to_bottom (view);
- gtd_new_task_row_set_show_list_selector (GTD_NEW_TASK_ROW (priv->new_task_row), !GTD_IS_TASK_LIST (model));
+ if (priv->task_list_selector_behavior == GTD_TASK_LIST_SELECTOR_BEHAVIOR_AUTOMATIC)
+ gtd_new_task_row_set_show_list_selector (GTD_NEW_TASK_ROW (priv->new_task_row), !GTD_IS_TASK_LIST
(model));
if (!GTD_IS_TASK_LIST (model))
return;
@@ -1600,3 +1603,51 @@ gtd_task_list_view_set_handle_subtasks (GtdTaskListView *self,
g_object_notify (G_OBJECT (self), "handle-subtasks");
}
+
+
+GtdTaskListSelectorBehavior
+gtd_task_list_view_get_task_list_selector_behavior (GtdTaskListView *self)
+{
+ GtdTaskListViewPrivate *priv;
+
+ g_return_val_if_fail (GTD_IS_TASK_LIST_VIEW (self), -1);
+
+ priv = gtd_task_list_view_get_instance_private (self);
+
+ return priv->task_list_selector_behavior;
+}
+
+void
+gtd_task_list_view_set_task_list_selector_behavior (GtdTaskListView *self,
+ GtdTaskListSelectorBehavior behavior)
+{
+ GtdTaskListViewPrivate *priv;
+
+ g_return_if_fail (GTD_IS_TASK_LIST_VIEW (self));
+
+ priv = gtd_task_list_view_get_instance_private (self);
+
+ if (priv->task_list_selector_behavior == behavior)
+ return;
+
+ priv->task_list_selector_behavior = behavior;
+
+ switch (behavior)
+ {
+ case GTD_TASK_LIST_SELECTOR_BEHAVIOR_AUTOMATIC:
+ if (priv->model)
+ {
+ gtd_new_task_row_set_show_list_selector (GTD_NEW_TASK_ROW (priv->new_task_row),
+ !GTD_IS_TASK_LIST (priv->model));
+ }
+ break;
+
+ case GTD_TASK_LIST_SELECTOR_BEHAVIOR_ALWAYS_SHOW:
+ gtd_new_task_row_set_show_list_selector (GTD_NEW_TASK_ROW (priv->new_task_row), TRUE);
+ break;
+
+ case GTD_TASK_LIST_SELECTOR_BEHAVIOR_ALWAYS_HIDE:
+ gtd_new_task_row_set_show_list_selector (GTD_NEW_TASK_ROW (priv->new_task_row), FALSE);
+ break;
+ }
+}
diff --git a/src/task-list-view/gtd-task-list-view.h b/src/task-list-view/gtd-task-list-view.h
index 0f2f3bf..a5912da 100644
--- a/src/task-list-view/gtd-task-list-view.h
+++ b/src/task-list-view/gtd-task-list-view.h
@@ -1,6 +1,6 @@
/* gtd-task-list-view.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
@@ -29,6 +29,13 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GtdTaskListView, gtd_task_list_view, GTD, TASK_LIST_VIEW, GtkBox)
+typedef enum
+{
+ GTD_TASK_LIST_SELECTOR_BEHAVIOR_AUTOMATIC,
+ GTD_TASK_LIST_SELECTOR_BEHAVIOR_ALWAYS_SHOW,
+ GTD_TASK_LIST_SELECTOR_BEHAVIOR_ALWAYS_HIDE,
+} GtdTaskListSelectorBehavior;
+
/**
* GtdTaskListViewFilterFunc:
* @task: a #GtdTask
@@ -112,6 +119,11 @@ gboolean gtd_task_list_view_get_handle_subtasks (GtdTaskListVie
void gtd_task_list_view_set_handle_subtasks (GtdTaskListView *self,
gboolean handle_subtasks);
+GtdTaskListSelectorBehavior gtd_task_list_view_get_task_list_selector_behavior (GtdTaskListView
*self);
+
+void gtd_task_list_view_set_task_list_selector_behavior (GtdTaskListView
*self,
+ GtdTaskListSelectorBehavior
behavior);
+
G_END_DECLS
#endif /* GTD_TASK_LIST_VIEW_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]