SF.net SVN: geany: [524] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Jul 2 11:32:16 UTC 2006


Revision: 524
Author:   eht16
Date:     2006-07-02 04:32:06 -0700 (Sun, 02 Jul 2006)
ViewCVS:  http://svn.sourceforge.net/geany/?rev=524&view=rev

Log Message:
-----------
Improved "Find usage", so it displays not "null" for unsaved files in the results, and unsaved file are also clickable.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/callbacks.c
    trunk/src/msgwindow.c
    trunk/src/msgwindow.h
    trunk/src/utils.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-07-02 11:21:31 UTC (rev 523)
+++ trunk/ChangeLog	2006-07-02 11:32:06 UTC (rev 524)
@@ -1,3 +1,10 @@
+2006-07-02  Enrico Tröger  <enrico.troeger at uvena.de>
+
+ * src/callbacks.c, src/msgwindow.c, src/utils.c:
+   Improved "Find usage", so it displays not "null" for unsaved files
+   in the results, and unsaved file are also clickable.
+
+
 2006-07-02  Nick Treleaven  <nick.treleaven at btinternet.com>
 
  * src/callbacks.c: For Find Usage, ignore unnamed files.

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-07-02 11:21:31 UTC (rev 523)
+++ trunk/src/callbacks.c	2006-07-02 11:32:06 UTC (rev 524)
@@ -1305,7 +1305,7 @@
 	gtk_list_store_clear(msgwindow.store_msg);
 	for(i = 0; i < GEANY_MAX_OPEN_FILES; i++)
 	{
-		if (doc_list[i].sci && doc_list[i].file_name)
+		if (doc_list[i].is_valid)
 		{
 			ttf.chrg.cpMin = 0;
 			ttf.chrg.cpMax = sci_get_length(doc_list[i].sci);
@@ -1320,9 +1320,12 @@
 				buffer = g_malloc0(sci_get_line_length(doc_list[i].sci, line) + 1);
 				sci_get_line(doc_list[i].sci, line, buffer);
 
-				short_file_name = g_path_get_basename(doc_list[i].file_name);
+				if (doc_list[i].file_name == NULL)
+					short_file_name = g_strdup(GEANY_STRING_UNTITLED);
+				else
+					short_file_name = g_path_get_basename(doc_list[i].file_name);
 				string = g_strdup_printf("%s:%d : %s", short_file_name, line + 1, g_strstrip(buffer));
-				msgwin_msg_add(line + 1, doc_list[i].file_name, string);
+				msgwin_msg_add(line + 1, i, string);
 
 				g_free(buffer);
 				g_free(short_file_name);
@@ -1408,18 +1411,17 @@
 			GtkTreeIter iter;
 			GtkTreeModel *model;
 			GtkTreeSelection *selection;
-			gchar *file;
+			gint idx;
 			gint line;
 
 			selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(msgwindow.tree_msg));
 			if (gtk_tree_selection_get_selected(selection, &model, &iter))
 			{
-				gtk_tree_model_get(model, &iter, 0, &line, 1, &file, -1);
-				if (file && strlen (file) > 0)
+				gtk_tree_model_get(model, &iter, 0, &line, 1, &idx, -1);
+				if (idx >= 0 && doc_list[idx].is_valid)
 				{
-					utils_goto_file_line(file, FALSE, line);
+					utils_goto_line(idx, line);
 				}
-				g_free(file);
 			}
 		}
 		else if (GPOINTER_TO_INT(user_data) == 5)

Modified: trunk/src/msgwindow.c
===================================================================
--- trunk/src/msgwindow.c	2006-07-02 11:21:31 UTC (rev 523)
+++ trunk/src/msgwindow.c	2006-07-02 11:32:06 UTC (rev 524)
@@ -64,7 +64,7 @@
 	GtkTreeViewColumn *column;
 	GtkTreeSelection *select;
 
-	msgwindow.store_msg = gtk_list_store_new(4, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_COLOR, G_TYPE_STRING);
+	msgwindow.store_msg = gtk_list_store_new(4, G_TYPE_INT, G_TYPE_INT, GDK_TYPE_COLOR, G_TYPE_STRING);
 	gtk_tree_view_set_model(GTK_TREE_VIEW(msgwindow.tree_msg), GTK_TREE_MODEL(msgwindow.store_msg));
 
 	renderer = gtk_cell_renderer_text_new();
@@ -151,7 +151,7 @@
 
 
 // adds string to the msg treeview
-void msgwin_msg_add(gint line, gchar *file, gchar *string)
+void msgwin_msg_add(gint line, gint idx, gchar *string)
 {
 	GtkTreeIter iter;
 	static gint state = 0;
@@ -159,7 +159,7 @@
 	if (! app->msgwindow_visible) return;
 
 	gtk_list_store_append(msgwindow.store_msg, &iter);
-	gtk_list_store_set(msgwindow.store_msg, &iter, 0, line, 1, file, 2, ((state++ % 2) == 0) ? &white : &dark, 3, string, -1);
+	gtk_list_store_set(msgwindow.store_msg, &iter, 0, line, 1, idx, 2, ((state++ % 2) == 0) ? &white : &dark, 3, string, -1);
 }
 
 

Modified: trunk/src/msgwindow.h
===================================================================
--- trunk/src/msgwindow.h	2006-07-02 11:21:31 UTC (rev 523)
+++ trunk/src/msgwindow.h	2006-07-02 11:32:06 UTC (rev 524)
@@ -65,7 +65,7 @@
 
 void msgwin_prepare_compiler_tree_view(void);
 
-void msgwin_msg_add(gint line, gchar *file, gchar *string);
+void msgwin_msg_add(gint line, gint idx, gchar *string);
 
 void msgwin_compiler_add(gint msg_color, gboolean scroll, gchar const *format, ...);
 

Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c	2006-07-02 11:21:31 UTC (rev 523)
+++ trunk/src/utils.c	2006-07-02 11:32:06 UTC (rev 524)
@@ -509,31 +509,22 @@
 
 gboolean utils_goto_file_line(const gchar *file, gboolean is_tm_filename, gint line)
 {
-	gint page_num;
 	gint file_idx = document_find_by_filename(file, is_tm_filename);
-	gboolean ret;
 
 	if (file_idx < 0) return FALSE;
 
-	page_num = gtk_notebook_page_num(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(doc_list[file_idx].sci));
-
-	ret = utils_goto_line(file_idx, line);
-
-	// finally switch to the page
-	gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), page_num);
-
-	return ret;
+	return utils_goto_line(file_idx, line);
 }
 
 
 gboolean utils_goto_line(gint idx, gint line)
 {
+	gint page_num;
+
 	line--;	// the User counts lines from 1, we begin at 0 so bring the User line to our one
 
-	if (idx == -1 || line < 0)
-	{
+	if (idx == -1 || ! doc_list[idx].is_valid || line < 0)
 		return FALSE;
-	}
 
 	// mark the tag and ensure that we have arround 5 lines visible around the mark
 	sci_goto_line(doc_list[idx].sci, line - 5, FALSE);
@@ -542,6 +533,10 @@
 	sci_marker_delete_all(doc_list[idx].sci, 0);
 	sci_set_marker_at_line(doc_list[idx].sci, line, TRUE, 0);
 
+	// finally switch to the page
+	page_num = gtk_notebook_page_num(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(doc_list[idx].sci));
+	gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), page_num);
+
 	return TRUE;
 }
 


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