[libgd] main-view: add methods to select/unselect all
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgd] main-view: add methods to select/unselect all
- Date: Thu, 30 Aug 2012 01:59:12 +0000 (UTC)
commit c46b9f8d0d64f325409ff304e1adacfa5a085eb6
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Mon Aug 27 22:12:17 2012 -0400
main-view: add methods to select/unselect all
https://bugzilla.gnome.org/show_bug.cgi?id=677050
libgd/gd-main-view.c | 57 +++++++++++++++++++++++++++++++++----------------
libgd/gd-main-view.h | 3 ++
2 files changed, 41 insertions(+), 19 deletions(-)
---
diff --git a/libgd/gd-main-view.c b/libgd/gd-main-view.c
index b009a9f..b6eef8a 100644
--- a/libgd/gd-main-view.c
+++ b/libgd/gd-main-view.c
@@ -533,19 +533,6 @@ gd_main_view_apply_model (GdMainView *self)
gd_main_view_generic_set_model (generic, self->priv->model);
}
-static gboolean
-clear_selection_list_foreach (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer user_data)
-{
- gtk_list_store_set (GTK_LIST_STORE (model), iter,
- GD_MAIN_COLUMN_SELECTED, FALSE,
- -1);
-
- return FALSE;
-}
-
static void
gd_main_view_apply_selection_mode (GdMainView *self)
{
@@ -555,12 +542,7 @@ gd_main_view_apply_selection_mode (GdMainView *self)
if (!self->priv->selection_mode &&
self->priv->model != NULL)
- {
- gtk_tree_model_foreach (self->priv->model,
- clear_selection_list_foreach,
- self);
- g_signal_emit (self, signals[VIEW_SELECTION_CHANGED], 0);
- }
+ gd_main_view_unselect_all (self);
}
static void
@@ -723,3 +705,40 @@ gd_main_view_get_selection (GdMainView *self)
return g_list_reverse (retval);
}
+
+static gboolean
+set_selection_foreach (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer user_data)
+{
+ gboolean selection = GPOINTER_TO_INT (user_data);
+
+ gtk_list_store_set (GTK_LIST_STORE (model), iter,
+ GD_MAIN_COLUMN_SELECTED, selection,
+ -1);
+
+ return FALSE;
+}
+
+void
+gd_main_view_select_all (GdMainView *self)
+{
+ gboolean selection = TRUE;
+
+ gtk_tree_model_foreach (self->priv->model,
+ set_selection_foreach,
+ GINT_TO_POINTER (selection));
+ g_signal_emit (self, signals[VIEW_SELECTION_CHANGED], 0);
+}
+
+void
+gd_main_view_unselect_all (GdMainView *self)
+{
+ gboolean selection = FALSE;
+
+ gtk_tree_model_foreach (self->priv->model,
+ set_selection_foreach,
+ GINT_TO_POINTER (selection));
+ g_signal_emit (self, signals[VIEW_SELECTION_CHANGED], 0);
+}
diff --git a/libgd/gd-main-view.h b/libgd/gd-main-view.h
index aec13f3..6f3038f 100644
--- a/libgd/gd-main-view.h
+++ b/libgd/gd-main-view.h
@@ -82,6 +82,9 @@ GdMainViewType gd_main_view_get_selection_mode (GdMainView *self);
GList * gd_main_view_get_selection (GdMainView *self);
+void gd_main_view_select_all (GdMainView *self);
+void gd_main_view_unselect_all (GdMainView *self);
+
GtkTreeModel * gd_main_view_get_model (GdMainView *self);
void gd_main_view_set_model (GdMainView *self,
GtkTreeModel *model);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]