[anjuta] git: Don't show stash numbers on diff rows



commit 7441bcc175f9461908ca256f870b724d7b9a74b6
Author: James Liggett <jrliggett cox net>
Date:   Mon Aug 19 13:57:53 2013 -0700

    git: Don't show stash numbers on diff rows

 plugins/git/anjuta-git.ui    |    5 +----
 plugins/git/git-stash-pane.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 4 deletions(-)
---
diff --git a/plugins/git/anjuta-git.ui b/plugins/git/anjuta-git.ui
index 7de3aee..50934cc 100644
--- a/plugins/git/anjuta-git.ui
+++ b/plugins/git/anjuta-git.ui
@@ -3607,10 +3607,7 @@
                       <object class="GtkTreeViewColumn" id="stash_number_column">
                         <property name="title">column</property>
                         <child>
-                          <object class="GtkCellRendererText" id="number_renderer"/>
-                          <attributes>
-                            <attribute name="text">0</attribute>
-                          </attributes>
+                          <object class="GtkCellRendererText" id="stash_number_renderer"/>
                         </child>
                       </object>
                     </child>
diff --git a/plugins/git/git-stash-pane.c b/plugins/git/git-stash-pane.c
index 754c573..1ed42a0 100644
--- a/plugins/git/git-stash-pane.c
+++ b/plugins/git/git-stash-pane.c
@@ -204,6 +204,33 @@ stash_message_renderer_data_func (GtkTreeViewColumn *tree_column,
                g_object_set (renderer, "text", "", NULL);
 }
 
+static void
+stash_number_renderer_data_func (GtkTreeViewColumn *tree_column,
+                                 GtkCellRenderer *renderer,
+                                 GtkTreeModel *model,
+                                 GtkTreeIter *iter,
+                                 gpointer user_data)
+{
+       gboolean visible;
+       guint number;
+       gchar *number_string;
+
+       /* Don't show this column on diffs */
+       visible = gtk_tree_store_iter_depth (GTK_TREE_STORE (model), iter) == 0;
+       gtk_cell_renderer_set_visible (renderer, visible);
+
+       if (visible)
+       {
+               gtk_tree_model_get (model, iter, COL_NUMBER, &number, -1);
+               number_string = g_strdup_printf ("%i", number);
+
+               g_object_set (renderer, "text", number_string, NULL);
+               g_free (number_string);
+       }
+       else
+               g_object_set (renderer, "text", "", NULL);
+}
+
 static gboolean
 on_stash_view_row_selected (GtkTreeSelection *selection,
                             GtkTreeModel *model,
@@ -222,6 +249,8 @@ git_stash_pane_init (GitStashPane *self)
                                                NULL};
        GError *error = NULL;
        GtkTreeView *stash_view;
+       GtkTreeViewColumn *stash_number_column;
+       GtkCellRenderer *stash_number_renderer;
        GtkTreeViewColumn *stash_message_column;
        GtkCellRenderer *stash_message_renderer;
        GtkCellRenderer *diff_renderer;
@@ -240,6 +269,10 @@ git_stash_pane_init (GitStashPane *self)
 
        stash_view = GTK_TREE_VIEW (gtk_builder_get_object (self->priv->builder,
                                                            "stash_view"));
+       stash_number_column = GTK_TREE_VIEW_COLUMN (gtk_builder_get_object (self->priv->builder,
+                                                                           "stash_number_column"));
+       stash_number_renderer = GTK_CELL_RENDERER (gtk_builder_get_object (self->priv->builder,
+                                                                          "stash_number_renderer"));
        stash_message_column = GTK_TREE_VIEW_COLUMN (gtk_builder_get_object (self->priv->builder,
                                                                             "stash_message_column"));
        stash_message_renderer = GTK_CELL_RENDERER (gtk_builder_get_object (self->priv->builder,
@@ -247,6 +280,9 @@ git_stash_pane_init (GitStashPane *self)
        diff_renderer = anjuta_cell_renderer_diff_new ();
        selection = gtk_tree_view_get_selection (stash_view);
 
+       gtk_tree_view_column_set_cell_data_func (stash_number_column, stash_number_renderer,
+                                                stash_number_renderer_data_func, 
+                                                NULL, NULL);
        gtk_tree_view_column_set_cell_data_func (stash_message_column, stash_message_renderer,
                                                 stash_message_renderer_data_func,
                                                 NULL, NULL);


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