[gnome-todo/gnome-3-20] task-row: refactor row destruction code
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo/gnome-3-20] task-row: refactor row destruction code
- Date: Sun, 8 May 2016 22:18:26 +0000 (UTC)
commit 6323b811a888d540862107cca5d00868dcbb7493
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sun May 8 19:13:34 2016 -0300
task-row: refactor row destruction code
Instead of exposing a new function that may very well
confuse us in the future, override GtkWidgetClass->destroy
and rearrange the code to fit in there.
src/gtd-task-list-view.c | 4 +-
src/gtd-task-row.c | 55 ++++++++++++++++++++++-----------------------
src/gtd-task-row.h | 2 -
3 files changed, 29 insertions(+), 32 deletions(-)
---
diff --git a/src/gtd-task-list-view.c b/src/gtd-task-list-view.c
index 75176ce..3722b71 100644
--- a/src/gtd-task-list-view.c
+++ b/src/gtd-task-list-view.c
@@ -582,7 +582,7 @@ gtd_task_list_view__remove_row_for_task (GtdTaskListView *view,
if (!gtd_task_row_get_new_task_mode (l->data) &&
gtd_task_row_get_task (l->data) == task)
{
- gtd_task_row_destroy (l->data);
+ gtk_widget_destroy (l->data);
}
}
@@ -1255,7 +1255,7 @@ gtd_task_list_view_set_show_completed (GtdTaskListView *view,
if (!gtd_task_row_get_new_task_mode (l->data) &&
gtd_task_get_complete (gtd_task_row_get_task (l->data)))
{
- gtd_task_row_destroy (l->data);
+ gtk_widget_destroy (l->data);
}
}
diff --git a/src/gtd-task-row.c b/src/gtd-task-row.c
index 0c18576..af4c693 100644
--- a/src/gtd-task-row.c
+++ b/src/gtd-task-row.c
@@ -188,6 +188,12 @@ gtd_task_row__create_task_for_name (const gchar *name)
return task;
}
+static void
+gtd_task_row__destroy_cb (GtkWidget *widget)
+{
+ GTK_WIDGET_CLASS (gtd_task_row_parent_class)->destroy (widget);
+}
+
GtkWidget*
gtd_task_row_new (GtdTask *task)
{
@@ -345,6 +351,26 @@ gtd_task_row_activate (GtkListBoxRow *row)
}
static void
+gtd_task_row_destroy (GtkWidget *widget)
+{
+ GtdTaskRow *row = GTD_TASK_ROW (widget);
+
+ if (!gtk_revealer_get_child_revealed (row->priv->revealer))
+ {
+ gtd_task_row__destroy_cb (GTK_WIDGET (row));
+ }
+ else
+ {
+ g_signal_connect_swapped (row->priv->revealer,
+ "notify::child-revealed",
+ G_CALLBACK (gtk_widget_destroy),
+ row);
+
+ gtk_revealer_set_reveal_child (row->priv->revealer, FALSE);
+ }
+}
+
+static void
gtd_task_row_class_init (GtdTaskRowClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -355,6 +381,7 @@ gtd_task_row_class_init (GtdTaskRowClass *klass)
object_class->get_property = gtd_task_row_get_property;
object_class->set_property = gtd_task_row_set_property;
+ widget_class->destroy = gtd_task_row_destroy;
widget_class->focus_in_event = gtd_task_row__focus_in;
widget_class->key_press_event = gtd_task_row__key_press_event;
@@ -654,31 +681,3 @@ gtd_task_row_reveal (GtdTaskRow *row)
gtk_revealer_set_reveal_child (row->priv->revealer, TRUE);
}
-
-/**
- * gtd_task_row_destroy:
- * @row: a #GtdTaskRow
- *
- * Runs an animation and the destory @row.
- *
- * Returns:
- */
-void
-gtd_task_row_destroy (GtdTaskRow *row)
-{
- g_return_if_fail (GTD_IS_TASK_ROW (row));
-
- if (gtk_revealer_get_child_revealed (row->priv->revealer))
- {
- gtk_widget_destroy (GTK_WIDGET (row));
- }
- else
- {
- g_signal_connect_swapped (row->priv->revealer,
- "notify::child-revealed",
- G_CALLBACK (gtk_widget_destroy),
- row);
-
- gtk_revealer_set_reveal_child (row->priv->revealer, FALSE);
- }
-}
diff --git a/src/gtd-task-row.h b/src/gtd-task-row.h
index 4d536d1..7bfe200 100644
--- a/src/gtd-task-row.h
+++ b/src/gtd-task-row.h
@@ -47,8 +47,6 @@ void gtd_task_row_set_list_name_visible (GtdTaskRow
void gtd_task_row_reveal (GtdTaskRow *row);
-void gtd_task_row_destroy (GtdTaskRow *row);
-
G_END_DECLS
#endif /* GTD_TASK_ROW_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]