[rhythmbox] property-view: allow visibility of property column to be changed



commit 630d689be0ef18e7f82777574743bd0d0ab4e50f
Author: Jonathan Matthew <jonathan d14n org>
Date:   Sun Aug 17 09:44:09 2014 +1000

    property-view: allow visibility of property column to be changed
    
    Custom property views (like the podcast feed view) may want to hide
    the column that contains the grouping property value.

 widgets/rb-property-view.c |   28 +++++++++++++++++++++-------
 widgets/rb-property-view.h |    2 ++
 2 files changed, 23 insertions(+), 7 deletions(-)
---
diff --git a/widgets/rb-property-view.c b/widgets/rb-property-view.c
index 48f972a..9834130 100644
--- a/widgets/rb-property-view.c
+++ b/widgets/rb-property-view.c
@@ -83,6 +83,7 @@ struct RBPropertyViewPrivate
        char *title;
 
        GtkWidget *treeview;
+       GtkTreeViewColumn *column;
        GtkTreeSelection *selection;
 
        gboolean draggable;
@@ -685,7 +686,6 @@ rb_property_view_cell_data_func (GtkTreeViewColumn *column,
 static void
 rb_property_view_constructed (GObject *object)
 {
-       GtkTreeViewColumn *column;
        GtkCellRenderer *renderer;
        RBPropertyView *view;
 
@@ -730,16 +730,16 @@ rb_property_view_constructed (GObject *object)
        gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view->priv->treeview), TRUE);
        gtk_tree_selection_set_mode (view->priv->selection, GTK_SELECTION_SINGLE);
 
-       column = gtk_tree_view_column_new ();
+       view->priv->column = gtk_tree_view_column_new ();
        renderer = gtk_cell_renderer_text_new ();
-       gtk_tree_view_column_pack_start (column, renderer, TRUE);
-       gtk_tree_view_column_set_cell_data_func (column, renderer,
+       gtk_tree_view_column_pack_start (view->priv->column, renderer, TRUE);
+       gtk_tree_view_column_set_cell_data_func (view->priv->column, renderer,
                                                 (GtkTreeCellDataFunc) rb_property_view_cell_data_func,
                                                 view, NULL);
-       gtk_tree_view_column_set_title (column, view->priv->title);
-       gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
+       gtk_tree_view_column_set_title (view->priv->column, view->priv->title);
+       gtk_tree_view_column_set_sizing (view->priv->column, GTK_TREE_VIEW_COLUMN_FIXED);
        gtk_tree_view_append_column (GTK_TREE_VIEW (view->priv->treeview),
-                                    column);
+                                    view->priv->column);
 }
 
 static void
@@ -935,6 +935,20 @@ rb_property_view_append_column_custom (RBPropertyView *view,
        gtk_tree_view_append_column (GTK_TREE_VIEW (view->priv->treeview), column);
 }
 
+/**
+ * rb_property_view_set_column_visible:
+ * @view: a #RBPropertyView
+ * @visible: whether the property column should be visible
+ *
+ * Sets the visibility of the property column.
+ */
+void
+rb_property_view_set_column_visible (RBPropertyView *view, gboolean visible)
+{
+       g_return_if_fail (RB_IS_PROPERTY_VIEW (view));
+       gtk_tree_view_column_set_visible (view->priv->column, visible);
+}
+
 static gboolean
 rb_property_view_button_press_cb (GtkTreeView *tree,
                                  GdkEventButton *event,
diff --git a/widgets/rb-property-view.h b/widgets/rb-property-view.h
index 850c25b..e2a5023 100644
--- a/widgets/rb-property-view.h
+++ b/widgets/rb-property-view.h
@@ -73,6 +73,8 @@ RBPropertyView *rb_property_view_new                  (RhythmDB *db, guint propid,
                                                         const char *title);
 void           rb_property_view_append_column_custom   (RBPropertyView *view,
                                                        GtkTreeViewColumn *column);
+void           rb_property_view_set_column_visible     (RBPropertyView *view,
+                                                        gboolean visible);
 
 void           rb_property_view_set_selection_mode     (RBPropertyView *view,
                                                         GtkSelectionMode mode);


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