[gnome-todo] task-row: Turn back into a GtkListBoxRow subclass
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] task-row: Turn back into a GtkListBoxRow subclass
- Date: Fri, 5 Nov 2021 18:24:09 +0000 (UTC)
commit 020da65f791dd439fd19b7f0f7d11b203ec6b063
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Fri Nov 5 15:16:02 2021 -0300
task-row: Turn back into a GtkListBoxRow subclass
It's more convenient this way
src/gui/gtd-task-list-view.c | 37 ++++++++++++-------------------------
src/gui/gtd-task-row.c | 4 ++--
src/gui/gtd-task-row.h | 2 +-
src/gui/gtd-task-row.ui | 2 +-
4 files changed, 16 insertions(+), 29 deletions(-)
---
diff --git a/src/gui/gtd-task-list-view.c b/src/gui/gtd-task-list-view.c
index 2690b60a..b5d704fe 100644
--- a/src/gui/gtd-task-list-view.c
+++ b/src/gui/gtd-task-list-view.c
@@ -165,17 +165,6 @@ enum {
* Auxiliary methods
*/
-static inline GtdTaskRow*
-task_row_from_row (GtkListBoxRow *row)
-{
- GtkWidget *child = gtk_list_box_row_get_child (row);
-
- if (!GTD_IS_TASK_ROW (child))
- return NULL;
-
- return GTD_TASK_ROW (child);
-}
-
static void
set_active_row (GtdTaskListView *self,
GtdTaskRow *row)
@@ -438,7 +427,7 @@ on_undo_remove_task_action_cb (GtdNotification *notification,
data = user_data;
/*
- * Readd task to the list. This will emit GListModel:items-changed (since
+ * Re-add task to the list. This will emit GListModel:items-changed (since
* GtdTaskList implements GListModel) and the row will be added back.
*/
list = gtd_task_get_list (data->task);
@@ -514,11 +503,11 @@ on_listbox_row_activated_cb (GtkListBox *listbox,
GTD_ENTRY;
- task_row = task_row_from_row (row);
-
- if (!task_row)
+ if (!GTD_IS_TASK_ROW (row))
GTD_RETURN ();
+ task_row = GTD_TASK_ROW (row);
+
/* Toggle the row */
if (gtd_task_row_get_active (task_row))
set_active_row (self, NULL);
@@ -547,14 +536,14 @@ internal_header_func (GtkListBoxRow *row,
row_task = before_task = NULL;
- if (!task_row_from_row (row))
+ if (!GTD_IS_TASK_ROW (row))
return;
if (row)
- row_task = gtd_task_row_get_task (task_row_from_row (row));
+ row_task = gtd_task_row_get_task (GTD_TASK_ROW (row));
if (before)
- before_task = gtd_task_row_get_task (task_row_from_row (before));
+ before_task = gtd_task_row_get_task (GTD_TASK_ROW (row));
header = self->header_func (row_task, before_task, self->header_user_data);
@@ -649,9 +638,9 @@ update_row_drag_highlight (GtdTaskListView *self,
}
/* Don't add drag highlights to the new task row */
- if (top_highlight && !GTD_IS_TASK_ROW (task_row_from_row (top_highlight)))
+ if (top_highlight && !GTD_IS_TASK_ROW (top_highlight))
top_highlight = NULL;
- if (bottom_highlight && !GTD_IS_TASK_ROW (task_row_from_row (bottom_highlight)))
+ if (bottom_highlight && !GTD_IS_TASK_ROW (bottom_highlight))
bottom_highlight = NULL;
/* Unhighlight previously highlighted rows */
@@ -680,7 +669,7 @@ get_drop_row_at_y (GtdTaskListView *self,
/* Small optimization when hovering the first row */
if (gtk_list_box_row_get_index (hovered_row) == 0)
- return hovered_row;
+ return GTD_IS_TASK_ROW (hovered_row) ? hovered_row : NULL;
drop_row = NULL;
task_row = hovered_row;
@@ -713,7 +702,7 @@ get_drop_row_at_y (GtdTaskListView *self,
drop_row = task_row;
}
- return task_row_from_row (drop_row) ? drop_row : NULL;
+ return GTD_IS_TASK_ROW (drop_row) ? drop_row : NULL;
}
static inline gboolean
@@ -839,7 +828,6 @@ on_drop_target_drag_drop_cb (GtkDropTarget *drop_target,
GtdTaskListView *self)
{
GtkListBoxRow *drop_row;
- GtdTaskRow *hovered_row;
GtkWidget *row;
GtdTask *hovered_task;
GtdTask *source_task;
@@ -878,8 +866,7 @@ on_drop_target_drag_drop_cb (GtkDropTarget *drop_target,
GTD_RETURN (FALSE);
}
- hovered_row = task_row_from_row (drop_row);
- hovered_task = gtd_task_row_get_task (hovered_row);
+ hovered_task = gtd_task_row_get_task (GTD_TASK_ROW (drop_row));
new_position = gtd_task_get_position (hovered_task);
current_position = gtd_task_get_position (source_task);
diff --git a/src/gui/gtd-task-row.c b/src/gui/gtd-task-row.c
index 556da478..f752bfb5 100644
--- a/src/gui/gtd-task-row.c
+++ b/src/gui/gtd-task-row.c
@@ -37,7 +37,7 @@
struct _GtdTaskRow
{
- GtdWidget parent;
+ GtkListBoxRow parent;
/*<private>*/
GtkWidget *content_box;
@@ -77,7 +77,7 @@ static void on_star_widget_activated_cb (GtdStarWidget
GParamSpec *pspec,
GtdTaskRow *self);
-G_DEFINE_TYPE (GtdTaskRow, gtd_task_row, GTD_TYPE_WIDGET)
+G_DEFINE_TYPE (GtdTaskRow, gtd_task_row, GTK_TYPE_LIST_BOX_ROW)
enum
{
diff --git a/src/gui/gtd-task-row.h b/src/gui/gtd-task-row.h
index 6256729d..cb1648be 100644
--- a/src/gui/gtd-task-row.h
+++ b/src/gui/gtd-task-row.h
@@ -24,7 +24,7 @@
G_BEGIN_DECLS
#define GTD_TYPE_TASK_ROW (gtd_task_row_get_type())
-G_DECLARE_FINAL_TYPE (GtdTaskRow, gtd_task_row, GTD, TASK_ROW, GtkWidget)
+G_DECLARE_FINAL_TYPE (GtdTaskRow, gtd_task_row, GTD, TASK_ROW, GtkListBoxRow)
GtkWidget* gtd_task_row_new (GtdTask *task,
GtdMarkdownRenderer *renderer);
diff --git a/src/gui/gtd-task-row.ui b/src/gui/gtd-task-row.ui
index b296b1c1..f56ccf1f 100644
--- a/src/gui/gtd-task-row.ui
+++ b/src/gui/gtd-task-row.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.16"/>
- <template class="GtdTaskRow" parent="GtdWidget">
+ <template class="GtdTaskRow" parent="GtkListBoxRow">
<property name="hexpand">true</property>
<child>
<object class="GtkEventControllerKey">
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]