[anjuta/newproject] pm: Avoid duplicate shortcuts



commit ef2702e6fff4d045bcb3f8ce7477fa4ad63bd365
Author: Sébastien Granjoux <seb sfo free fr>
Date:   Wed Aug 18 11:57:41 2010 +0200

    pm: Avoid duplicate shortcuts

 plugins/project-manager/project-model.c |    1 +
 plugins/project-manager/project-view.c  |   30 +++++++++++++++++-------------
 2 files changed, 18 insertions(+), 13 deletions(-)
---
diff --git a/plugins/project-manager/project-model.c b/plugins/project-manager/project-model.c
index f70ac08..b941c83 100644
--- a/plugins/project-manager/project-model.c
+++ b/plugins/project-manager/project-model.c
@@ -945,6 +945,7 @@ gbf_project_model_find_tree_data (GbfProjectModel 	*model,
 	return retval;
 }
 
+/* Can return shortcut node if exist */
 gboolean 
 gbf_project_model_find_file (GbfProjectModel 	*model,
     GtkTreeIter		*found,
diff --git a/plugins/project-manager/project-view.c b/plugins/project-manager/project-view.c
index 2591fd9..1763508 100644
--- a/plugins/project-manager/project-view.c
+++ b/plugins/project-manager/project-view.c
@@ -659,21 +659,25 @@ gbf_project_view_set_shortcut_list (GbfProjectView *view, GList *shortcuts)
 			    			GBF_PROJECT_MODEL_COLUMN_DATA, &data,
 		    				-1);
 
-					gbf_project_model_add_shortcut (GBF_PROJECT_MODEL (model),
-					    	&shortcut,
-					    	&iter,
-					    	data);
-
-					if (expand)
+					/* Avoid duplicated shortcuts */
+					if (data->type != GBF_TREE_NODE_SHORTCUT)
 					{
-						GtkTreePath *path;
-
-						path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &shortcut);
-						gtk_tree_view_expand_row (GTK_TREE_VIEW (view), path, FALSE);
-						gtk_tree_path_free (path);
+						gbf_project_model_add_shortcut (GBF_PROJECT_MODEL (model),
+					    		&shortcut,
+					    		&iter,
+					    		data);
+
+						if (expand)
+						{
+							GtkTreePath *path;
+
+							path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &shortcut);
+							gtk_tree_view_expand_row (GTK_TREE_VIEW (view), path, FALSE);
+							gtk_tree_path_free (path);
+						}
+						/* Mark the shortcut as used */
+						*path = 'U';
 					}
-					/* Mark the shortcut as used */
-					*path = 'U';
 				}
 				g_object_unref (file);
 			}



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