[anjuta] document-manager: Update combo filenames when the project changes.



commit 52d08e7055eec3113b176641cf2ec7d68135e147
Author: Carl-Anton Ingmarsson <ca ingmarsson gmail com>
Date:   Mon Nov 19 20:47:12 2012 +0100

    document-manager: Update combo filenames when the project changes.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=688603

 plugins/document-manager/anjuta-docman.c |   33 ++++++++++++++++++++++++++++++
 plugins/document-manager/anjuta-docman.h |    1 +
 plugins/document-manager/plugin.c        |    8 +++++-
 3 files changed, 40 insertions(+), 2 deletions(-)
---
diff --git a/plugins/document-manager/anjuta-docman.c b/plugins/document-manager/anjuta-docman.c
index bd0d07a..679144a 100644
--- a/plugins/document-manager/anjuta-docman.c
+++ b/plugins/document-manager/anjuta-docman.c
@@ -198,6 +198,34 @@ anjuta_docman_get_combo_filename (AnjutaDocman *docman,
 }
 
 static void
+anjuta_docman_update_combo_filenames (AnjutaDocman *docman)
+{
+	gboolean valid;
+	GtkTreeIter iter;
+
+	for (valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (docman->priv->combo_model), &iter);
+	     valid;
+	     valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (docman->priv->combo_model), &iter))
+	{
+		IAnjutaDocument *doc;
+		GFile *file;
+		gchar *filename;
+
+		gtk_tree_model_get (GTK_TREE_MODEL (docman->priv->combo_model), &iter, 0, &doc, -1);
+		if (IANJUTA_IS_FILE (doc))
+			file = ianjuta_file_get_file (IANJUTA_FILE (doc), NULL);
+
+		filename = anjuta_docman_get_combo_filename (docman, doc, file);
+		gtk_list_store_set (docman->priv->combo_model, &iter, 1, filename, -1);
+
+		g_object_unref (doc);
+		if (file)
+			g_object_unref (file);
+		g_free (filename);
+	}
+}
+
+static void
 anjuta_docman_add_document_to_combo (AnjutaDocman    *docman,
                                      IAnjutaDocument *doc,
                                      GFile           *file)
@@ -2049,5 +2077,10 @@ anjuta_docman_set_tab_pos (AnjutaDocman *docman, GtkPositionType pos)
 	gtk_notebook_set_tab_pos (docman->priv->notebook, pos);
 }
 
+void anjuta_docman_project_path_updated (AnjutaDocman *docman)
+{
+	anjuta_docman_update_combo_filenames (docman);
+}
+
 ANJUTA_TYPE_BEGIN(AnjutaDocman, anjuta_docman, GTK_TYPE_GRID);
 ANJUTA_TYPE_END;
diff --git a/plugins/document-manager/anjuta-docman.h b/plugins/document-manager/anjuta-docman.h
index f252689..2e4f8a1 100644
--- a/plugins/document-manager/anjuta-docman.h
+++ b/plugins/document-manager/anjuta-docman.h
@@ -116,6 +116,7 @@ gboolean anjuta_docman_next_page (AnjutaDocman *docman);
 gboolean anjuta_docman_previous_page (AnjutaDocman *docman);
 gboolean anjuta_docman_set_page (AnjutaDocman *docman, gint page);
 
+void anjuta_docman_project_path_updated (AnjutaDocman *docman);
 
 typedef enum
 {
diff --git a/plugins/document-manager/plugin.c b/plugins/document-manager/plugin.c
index 2f835d6..cfc5922 100644
--- a/plugins/document-manager/plugin.c
+++ b/plugins/document-manager/plugin.c
@@ -522,10 +522,10 @@ value_added_project_root_uri (AnjutaPlugin *plugin, const gchar *name,
 
 	DEBUG_PRINT ("%s", "Project added");
 
-
 	g_free (doc_plugin->project_name);
 	g_free (doc_plugin->project_path);
 	doc_plugin->project_name = NULL;
+	doc_plugin->project_path = NULL;
 
 	if (doc_plugin->search_files)
 		search_files_update_project (SEARCH_FILES(doc_plugin->search_files));
@@ -544,6 +544,8 @@ value_added_project_root_uri (AnjutaPlugin *plugin, const gchar *name,
 			update_title (doc_plugin);
 		}
 		g_object_unref (file);
+
+		anjuta_docman_project_path_updated (ANJUTA_DOCMAN (doc_plugin->docman));
 	}
 }
 
@@ -558,13 +560,15 @@ value_removed_project_root_uri (AnjutaPlugin *plugin, const gchar *name,
 	DEBUG_PRINT ("%s", "Project removed");
 
 	g_free (doc_plugin->project_name);
+	g_free (doc_plugin->project_path);
 	doc_plugin->project_name = NULL;
+	doc_plugin->project_path = NULL;
 
 	if (doc_plugin->search_files)
 		search_files_update_project (SEARCH_FILES(doc_plugin->search_files));
 
-	
 	update_title(doc_plugin);
+	anjuta_docman_project_path_updated (ANJUTA_DOCMAN (doc_plugin->docman));
 }
 
 static void



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