[anjuta/git-shell] git: Properly check for selections in the stash pane



commit ce543c11f7835f1dd34b7e5df86ca8a64a60d768
Author: James Liggett <jrliggett cox net>
Date:   Tue Jul 27 22:15:51 2010 -0700

    git: Properly check for selections in the stash pane
    
    Properly handle cases where nothing is selected. Don't try to get information
    from the tree model in that case. Also, the return type for
    git_stash_pane_get_selected_stash_number should be signed so that the pane can
    return -1 to indicate no selection.

 plugins/git/git-stash-pane.c |   18 ++++++++++--------
 plugins/git/git-stash-pane.h |    2 +-
 2 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/plugins/git/git-stash-pane.c b/plugins/git/git-stash-pane.c
index 8d5eac5..f61a7ab 100644
--- a/plugins/git/git-stash-pane.c
+++ b/plugins/git/git-stash-pane.c
@@ -184,35 +184,37 @@ git_stash_pane_get_selected_stash_id (GitStashPane *self)
 {
 	GtkTreeView *stash_view;
 	GtkTreeSelection *selection;
+	gchar *id;
 	GtkTreeModel *stash_list_model;
 	GtkTreeIter iter;
-	gchar *id;
-
+	                                   
 	stash_view = GTK_TREE_VIEW (gtk_builder_get_object (self->priv->builder,
 	                                                    "stash_view"));
 	selection = gtk_tree_view_get_selection (stash_view);
+	id = NULL;
 
-	gtk_tree_selection_get_selected (selection, &stash_list_model, &iter);
-	gtk_tree_model_get (stash_list_model, &iter, COL_ID, &id, -1);
+	if (gtk_tree_selection_get_selected (selection, &stash_list_model, &iter))
+		gtk_tree_model_get (stash_list_model, &iter, COL_ID, &id, -1);
 
 	return id;
 }
 
-guint
+gint
 git_stash_pane_get_selected_stash_number (GitStashPane *self)
 {
 	GtkTreeView *stash_view;
 	GtkTreeSelection *selection;
+	guint number;
 	GtkTreeModel *stash_list_model;
 	GtkTreeIter iter;
-	guint number;
 
 	stash_view = GTK_TREE_VIEW (gtk_builder_get_object (self->priv->builder,
 	                                                    "stash_view"));
 	selection = gtk_tree_view_get_selection (stash_view);
+	number = -1;
 
-	gtk_tree_selection_get_selected (selection, &stash_list_model, &iter);
-	gtk_tree_model_get (stash_list_model, &iter, COL_NUMBER, &number, -1);
+	if (gtk_tree_selection_get_selected (selection, &stash_list_model, &iter))
+		gtk_tree_model_get (stash_list_model, &iter, COL_NUMBER, &number, -1);
 
 	return number;
 }
diff --git a/plugins/git/git-stash-pane.h b/plugins/git/git-stash-pane.h
index 662fc86..c141465 100644
--- a/plugins/git/git-stash-pane.h
+++ b/plugins/git/git-stash-pane.h
@@ -51,7 +51,7 @@ struct _GitStashPane
 GType git_stash_pane_get_type (void) G_GNUC_CONST;
 AnjutaDockPane *git_stash_pane_new (Git *plugin);
 gchar *git_stash_pane_get_selected_stash_id (GitStashPane *self);
-guint git_stash_pane_get_selected_stash_number (GitStashPane *self);
+gint git_stash_pane_get_selected_stash_number (GitStashPane *self);
 
 G_END_DECLS
 



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