SF.net SVN: geany: [1183] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Sun Jan 14 12:12:18 UTC 2007


Revision: 1183
          http://svn.sourceforge.net/geany/?rev=1183&view=rev
Author:   ntrel
Date:     2007-01-14 04:12:18 -0800 (Sun, 14 Jan 2007)

Log Message:
-----------
Move treeviews_init_tag_list() and symbol list GtkTreeIters to
symbols.c.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/po/POTFILES.in
    trunk/src/symbols.c
    trunk/src/treeviews.c
    trunk/src/treeviews.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-01-13 20:50:36 UTC (rev 1182)
+++ trunk/ChangeLog	2007-01-14 12:12:18 UTC (rev 1183)
@@ -1,3 +1,10 @@
+2007-01-14  Nick Treleaven  <nick.treleaven at btinternet.com>
+
+ * src/treeviews.c, src/treeviews.h, src/symbols.c, po/POTFILES.in:
+   Move treeviews_init_tag_list() and symbol list GtkTreeIters to
+   symbols.c.
+
+
 2007-01-13  Enrico Tröger  <enrico.troeger at uvena.de>
 
  * data/filetype_extensions.conf, data/filetypes.javascript,

Modified: trunk/po/POTFILES.in
===================================================================
--- trunk/po/POTFILES.in	2007-01-13 20:50:36 UTC (rev 1182)
+++ trunk/po/POTFILES.in	2007-01-14 12:12:18 UTC (rev 1183)
@@ -30,3 +30,4 @@
 src/symbols.c
 src/tools.c
 src/socket.c
+src/symbols.c

Modified: trunk/src/symbols.c
===================================================================
--- trunk/src/symbols.c	2007-01-13 20:50:36 UTC (rev 1182)
+++ trunk/src/symbols.c	2007-01-14 12:12:18 UTC (rev 1183)
@@ -31,7 +31,7 @@
 #include "filetypes.h"
 #include "encodings.h"
 #include "document.h"
-#include "treeviews.h"
+#include "support.h"
 
 
 const guint TM_GLOBAL_TYPE_MASK =
@@ -353,6 +353,211 @@
 }
 
 
+struct TreeviewSymbols
+{
+	GtkTreeIter		 tag_function;
+	GtkTreeIter		 tag_class;
+	GtkTreeIter		 tag_macro;
+	GtkTreeIter		 tag_member;
+	GtkTreeIter		 tag_variable;
+	GtkTreeIter		 tag_namespace;
+	GtkTreeIter		 tag_struct;
+	GtkTreeIter		 tag_other;
+} tv_iters;
+
+static void init_tag_list(gint idx)
+{
+	// init all GtkTreeIters with -1 to make them invalid to avoid crashes when switching between
+	// filetypes(e.g. config file to Python crashes Geany without this)
+	tv_iters.tag_function.stamp = -1;
+	tv_iters.tag_class.stamp = -1;
+	tv_iters.tag_member.stamp = -1;
+	tv_iters.tag_macro.stamp = -1;
+	tv_iters.tag_variable.stamp = -1;
+	tv_iters.tag_namespace.stamp = -1;
+	tv_iters.tag_struct.stamp = -1;
+	tv_iters.tag_other.stamp = -1;
+
+	switch (doc_list[idx].file_type->id)
+	{
+		case GEANY_FILETYPES_DIFF:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Files"), -1);
+			break;
+		}
+		case GEANY_FILETYPES_DOCBOOK:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Chapter"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Section"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Sect1"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Sect2"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Sect3"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Appendix"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+			//gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			//gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Other"), -1);
+			break;
+		}
+		case GEANY_FILETYPES_LATEX:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Command"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Environment"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Section"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Subsection"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Subsubsection"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Label"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Chapter"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+			break;
+		}
+		case GEANY_FILETYPES_PERL:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Function"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Package"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("My"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Local"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Our"), -1);
+/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Label"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Begin"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+*/
+			break;
+		}
+		case GEANY_FILETYPES_RUBY:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Methods"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Singletons"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Mixins"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Members"), -1);
+/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Begin"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+*/
+			break;
+		}
+		case GEANY_FILETYPES_PYTHON:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Methods"), -1);
+/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Mixin"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Members"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Begin"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+*/
+			break;
+		}
+		case GEANY_FILETYPES_JAVA:
+		case GEANY_FILETYPES_D:
+		{
+			// use singular because one file can only belong to one Package / Module
+			gchar *namespace_name = (doc_list[idx].file_type->id == GEANY_FILETYPES_D) ?
+									 _("Module") : _("Package");
+
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Methods"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Interfaces"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Members"), -1);
+			//gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			//gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Macros"), -1);
+			//gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			//gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, namespace_name, -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+			break;
+		}
+		case GEANY_FILETYPES_VHDL:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1);
+/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Constants"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Members"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Macros"), -1);
+*/			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
+/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Namespaces"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Signals"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+*/
+			break;
+		}
+		default:
+		{
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Members"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Macros"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Namespaces"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Structs / Typedefs"), -1);
+			gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
+			gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
+		}
+	}
+}
+
+
 gboolean symbols_recreate_tag_list(gint idx)
 {
 	GList *tmp;
@@ -369,41 +574,43 @@
 	g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it
 	gtk_tree_view_set_model(GTK_TREE_VIEW(doc_list[idx].tag_tree), NULL); // Detach model from view
 
-	treeviews_init_tag_list(idx);
+	init_tag_list(idx);
 	for (tmp = (GList*)tags; tmp; tmp = g_list_next(tmp))
 	{
-		switch (((GeanySymbol*)tmp->data)->type)
+		const GeanySymbol *symbol = (GeanySymbol*)tmp->data;
+
+		switch (symbol->type)
 		{
 			case tm_tag_prototype_t:
 			case tm_tag_method_t:
 			case tm_tag_function_t:
 			{
-				if (tv.tag_function.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_function));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_function.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_function));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			case tm_tag_macro_t:
 			case tm_tag_macro_with_arg_t:
 			{
-				if (tv.tag_macro.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_macro));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_macro.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_macro));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			case tm_tag_class_t:
 			{
-				if (tv.tag_class.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_class));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_class.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_class));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			case tm_tag_member_t:
 			case tm_tag_field_t:
 			{
-				if (tv.tag_member.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_member));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_member.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_member));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			case tm_tag_typedef_t:
@@ -412,31 +619,31 @@
 			case tm_tag_struct_t:
 			case tm_tag_interface_t:
 			{
-				if (tv.tag_struct.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_struct));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_struct.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_struct));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			case tm_tag_variable_t:
 			{
-				if (tv.tag_variable.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_variable));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_variable.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_variable));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			case tm_tag_namespace_t:
 			case tm_tag_package_t:
 			{
-				if (tv.tag_namespace.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_namespace));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_namespace.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_namespace));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 				break;
 			}
 			default:
 			{
-				if (tv.tag_other.stamp == -1) break;
-				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_other));
-				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
+				if (tv_iters.tag_other.stamp == -1) break;
+				gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_other));
+				gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, symbol->str, -1);
 			}
 		}
 	}

Modified: trunk/src/treeviews.c
===================================================================
--- trunk/src/treeviews.c	2007-01-13 20:50:36 UTC (rev 1182)
+++ trunk/src/treeviews.c	2007-01-14 12:12:18 UTC (rev 1183)
@@ -90,199 +90,6 @@
 }
 
 
-void treeviews_init_tag_list(gint idx)
-{
-	// init all GtkTreeIters with -1 to make them invalid to avoid crashes when switching between
-	// filetypes(e.g. config file to Python crashes Geany without this)
-	tv.tag_function.stamp = -1;
-	tv.tag_class.stamp = -1;
-	tv.tag_member.stamp = -1;
-	tv.tag_macro.stamp = -1;
-	tv.tag_variable.stamp = -1;
-	tv.tag_namespace.stamp = -1;
-	tv.tag_struct.stamp = -1;
-	tv.tag_other.stamp = -1;
-
-	switch (doc_list[idx].file_type->id)
-	{
-		case GEANY_FILETYPES_DIFF:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Files"), -1);
-			break;
-		}
-		case GEANY_FILETYPES_DOCBOOK:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Chapter"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Section"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Sect1"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Sect2"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Sect3"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Appendix"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-			//gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			//gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Other"), -1);
-			break;
-		}
-		case GEANY_FILETYPES_LATEX:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Command"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Environment"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Section"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Subsection"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Subsubsection"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Label"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Chapter"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-			break;
-		}
-		case GEANY_FILETYPES_PERL:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Function"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Package"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("My"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Local"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Our"), -1);
-/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Label"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Begin"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-*/
-			break;
-		}
-		case GEANY_FILETYPES_RUBY:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Methods"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Classes"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Singletons"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Mixins"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Members"), -1);
-/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Begin"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-*/
-			break;
-		}
-		case GEANY_FILETYPES_PYTHON:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Functions"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Classes"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Methods"), -1);
-/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Mixin"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Members"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Begin"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-*/
-			break;
-		}
-		case GEANY_FILETYPES_JAVA:
-		case GEANY_FILETYPES_D:
-		{
-			// use singular because one file can only belong to one Package / Module
-			gchar *namespace_name = (doc_list[idx].file_type->id == GEANY_FILETYPES_D) ?
-									 _("Module") : _("Package");
-
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Methods"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Classes"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Interfaces"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Members"), -1);
-			//gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			//gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Macros"), -1);
-			//gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			//gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, namespace_name, -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-			break;
-		}
-		case GEANY_FILETYPES_VHDL:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Functions"), -1);
-/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Constants"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Members"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Macros"), -1);
-*/			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1);
-/*			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Namespaces"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Signals"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-*/
-			break;
-		}
-		default:
-		{
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Functions"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_class), 0, _("Classes"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Members"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Macros"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Namespaces"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Structs / Typedefs"), -1);
-			gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
-			gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
-		}
-	}
-}
-
-
 /* does some preparing things to the open files list widget */
 void treeviews_prepare_openfiles()
 {

Modified: trunk/src/treeviews.h
===================================================================
--- trunk/src/treeviews.h	2007-01-13 20:50:36 UTC (rev 1182)
+++ trunk/src/treeviews.h	2007-01-14 12:12:18 UTC (rev 1183)
@@ -26,32 +26,17 @@
 #define GEANY_TREEVIEWS_H 1
 
 
-
-typedef struct treeviews {
+struct SidebarTreeviews
+{
 	GtkListStore	*store_openfiles;
 	GtkWidget		*tree_openfiles;
 	GtkWidget		*popup_taglist;
 	GtkWidget		*popup_openfiles;
-	GtkTreeIter		 tag_function;
-	GtkTreeIter		 tag_class;
-	GtkTreeIter		 tag_macro;
-	GtkTreeIter		 tag_member;
-	GtkTreeIter		 tag_variable;
-	GtkTreeIter		 tag_namespace;
-	GtkTreeIter		 tag_struct;
-	GtkTreeIter		 tag_other;
-} treeviews;
+} tv;
 
-treeviews tv;
 
-
-
 void treeviews_prepare_taglist(GtkWidget *tree, GtkTreeStore *store);
 
-gint treeviews_sort_tag_list(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data);
-
-void treeviews_init_tag_list(gint idx);
-
 void treeviews_prepare_openfiles();
 
 void treeviews_openfiles_add(gint idx);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list