SF.net SVN: geany-plugins:[2188] trunk/geany-plugins/debugger/src

cesspit at users.sourceforge.net cesspit at xxxxx
Thu Sep 1 13:00:17 UTC 2011


Revision: 2188
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2188&view=rev
Author:   cesspit
Date:     2011-09-01 13:00:17 +0000 (Thu, 01 Sep 2011)
Log Message:
-----------
debugger: icon on a stack trace page, gui fixes, temporary disabled calltips as they seem to cause segfauts

Modified Paths:
--------------
    trunk/geany-plugins/debugger/src/bptree.h
    trunk/geany-plugins/debugger/src/callbacks.c
    trunk/geany-plugins/debugger/src/debug.c
    trunk/geany-plugins/debugger/src/stree.c
    trunk/geany-plugins/debugger/src/stree.h
    trunk/geany-plugins/debugger/src/tpage.c
    trunk/geany-plugins/debugger/src/vtree.c

Modified: trunk/geany-plugins/debugger/src/bptree.h
===================================================================
--- trunk/geany-plugins/debugger/src/bptree.h	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/bptree.h	2011-09-01 13:00:17 UTC (rev 2188)
@@ -20,12 +20,12 @@
  */
 
 gboolean		bptree_init(move_to_line_cb callback);
-GtkWidget*	bptree_get_widget();
+GtkWidget*		bptree_get_widget();
 void 			bptree_add_breakpoint(breakpoint* bp);
 void 			bptree_update_breakpoint(breakpoint* bp);
 void 			bptree_remove_breakpoint(breakpoint* bp);
 void 			bptree_set_condition(GtkTreeIter iter, gchar* condition);
 void 			bptree_set_hitscount(GtkTreeIter iter, int hitscount);
 void 			bptree_set_enabled(GtkTreeIter iter, gboolean enabled);
-gchar* 		bptree_get_condition(GtkTreeIter iter);
+gchar*			bptree_get_condition(GtkTreeIter iter);
 void 			bptree_set_readonly(gboolean readonly);

Modified: trunk/geany-plugins/debugger/src/callbacks.c
===================================================================
--- trunk/geany-plugins/debugger/src/callbacks.c	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/callbacks.c	2011-09-01 13:00:17 UTC (rev 2188)
@@ -231,7 +231,7 @@
 
 			if (word->len)
 			{
-				gchar *calltip = debug_get_calltip_for_expression(word->str);
+				gchar *calltip = NULL;//debug_get_calltip_for_expression(word->str);
 				if (calltip)
 				{
 					scintilla_send_message (editor->sci, SCI_CALLTIPSHOW, nt->position, (long)calltip);

Modified: trunk/geany-plugins/debugger/src/debug.c
===================================================================
--- trunk/geany-plugins/debugger/src/debug.c	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/debug.c	2011-09-01 13:00:17 UTC (rev 2188)
@@ -662,7 +662,7 @@
 	while (iter)
 	{
 		frame *f = (frame*)iter->data;
-		stree_add(f);
+		stree_add(f, iter == stack);
 		iter = g_list_next(iter);
 	}
 	stree_select_first();
@@ -1000,6 +1000,8 @@
 		g_list_free(stack);
 		stack = NULL;
 	}
+	
+	stree_destroy();
 }
 
 /*

Modified: trunk/geany-plugins/debugger/src/stree.c
===================================================================
--- trunk/geany-plugins/debugger/src/stree.c	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/stree.c	2011-09-01 13:00:17 UTC (rev 2188)
@@ -34,6 +34,8 @@
 #include "breakpoint.h"
 #include "debug_module.h"
 
+#include "xpm/frame_current.xpm"
+
 #include "geanyplugin.h"
 extern GeanyFunctions	*geany_functions;
 extern GeanyPlugin		*geany_plugin;
@@ -44,9 +46,12 @@
 #define MW_FILE		0
 #define MW_LINE		4
 
+#define ARROW_PADDING 10
+
 /* Tree view columns */
 enum
 {
+   S_ARROW,
    S_ADRESS,
    S_FUNCTION,
    S_FILEPATH,
@@ -68,6 +73,9 @@
 /* flag to indicate whether to handle selection change */
 static gboolean handle_selection = TRUE;
 
+/* pixbuf with the frame arrow */
+GdkPixbuf *arrow_pixbuf = NULL;
+
 /*
  *  Handles same tree row click to open frame position
  */
@@ -159,10 +167,13 @@
 gboolean stree_init(move_to_line_cb cb)
 {
 	callback = cb;
+	
+	arrow_pixbuf = gdk_pixbuf_new_from_xpm_data(frame_current_xpm);
 
 	/* create tree view */
 	store = gtk_list_store_new (
 		S_N_COLUMNS,
+		GDK_TYPE_PIXBUF,
 		G_TYPE_STRING,
 		G_TYPE_STRING,
 		G_TYPE_STRING,
@@ -189,6 +200,13 @@
 	
 	int	char_width = get_char_width(tree);
 
+	/* arrow */
+	renderer = gtk_cell_renderer_pixbuf_new ();
+	column = create_column("", renderer, FALSE,
+		gdk_pixbuf_get_width(arrow_pixbuf) + 2 * ARROW_PADDING,
+		"pixbuf", S_ARROW);
+	gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
+
 	/* adress */
 	header = _("Address");
 	renderer = gtk_cell_renderer_text_new ();
@@ -242,7 +260,7 @@
 /*
  *	add frame to the tree view
  */
-void stree_add(frame *f)
+void stree_add(frame *f, gboolean first)
 {
 	GtkTreeIter iter;
 	gtk_list_store_append (store, &iter);
@@ -252,6 +270,13 @@
                     S_FILEPATH, f->file,
                     S_LINE, f->line,
                     -1);
+                    
+	if (first)
+	{
+		gtk_list_store_set (store, &iter,
+						S_ARROW, arrow_pixbuf,
+						-1);
+	}
     
 	/* remember if we have source for this frame */
     if (f->have_source && !GPOINTER_TO_INT(g_hash_table_lookup(frames, (gpointer)f->file)))
@@ -284,3 +309,11 @@
 	
 	gtk_tree_path_free(path);
 }
+
+/*
+ *	called on plugin exit to free arrow pixbuffer
+ */
+void stree_destroy()
+{
+	g_object_unref(arrow_pixbuf);
+}

Modified: trunk/geany-plugins/debugger/src/stree.h
===================================================================
--- trunk/geany-plugins/debugger/src/stree.h	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/stree.h	2011-09-01 13:00:17 UTC (rev 2188)
@@ -20,8 +20,9 @@
  */
 
 gboolean	stree_init(move_to_line_cb cb);
+void		stree_destroy();
 GtkWidget*	stree_get_widget();
-void 		stree_add(frame *f);
+void 		stree_add(frame *f, gboolean first);
 void 		stree_clear();
 void 		stree_select_first();
 

Modified: trunk/geany-plugins/debugger/src/tpage.c
===================================================================
--- trunk/geany-plugins/debugger/src/tpage.c	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/tpage.c	2011-09-01 13:00:17 UTC (rev 2188)
@@ -105,14 +105,6 @@
 }
 
 /*
- * tells config to update when target changes 
- */
-void on_target_changed (GtkEditable *editable, gpointer user_data)
-{
-	dconfig_set_changed();
-}
-
-/*
  * delete selected rows from env variables page 
  */
 void delete_selected_rows()
@@ -507,6 +499,8 @@
 		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
 		gtk_entry_set_text(GTK_ENTRY(targetname), filename);
 		g_free (filename);
+		
+		dconfig_set_changed();
 	}
 	gtk_widget_destroy (dialog);
 }
@@ -603,6 +597,7 @@
 
 	/* Target frame */
 	GtkWidget *_frame = gtk_frame_new(_("Target"));
+	gtk_frame_set_shadow_type(GTK_FRAME(_frame), GTK_SHADOW_NONE);
 	GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
 
 	/* filename hbox */
@@ -610,7 +605,7 @@
 	gtk_container_set_border_width(GTK_CONTAINER(hbox), SPACING);
 
 	targetname = gtk_entry_new ();
-	g_signal_connect(G_OBJECT(targetname), "changed", G_CALLBACK (on_target_changed), NULL);
+	gtk_entry_set_editable(GTK_ENTRY(targetname), FALSE);
 	
 	button_browse = gtk_button_new_with_label(_("Browse"));
 	g_signal_connect(G_OBJECT(button_browse), "clicked", G_CALLBACK (on_target_browse_clicked), NULL);
@@ -732,7 +727,6 @@
  */
 void tpage_set_readonly(gboolean readonly)
 {
-	gtk_editable_set_editable (GTK_EDITABLE (targetname), !readonly);
 	gtk_text_view_set_editable (GTK_TEXT_VIEW (textview), !readonly);
 	g_object_set (renderer_name, "editable", !readonly, NULL);
 	gtk_widget_set_sensitive (button_browse, !readonly);

Modified: trunk/geany-plugins/debugger/src/vtree.c
===================================================================
--- trunk/geany-plugins/debugger/src/vtree.c	2011-08-31 22:24:52 UTC (rev 2187)
+++ trunk/geany-plugins/debugger/src/vtree.c	2011-09-01 13:00:17 UTC (rev 2188)
@@ -34,7 +34,7 @@
 #include "utils.h"
 
 /* columns minumum width in characters */
-#define MIN_COLUMN_CHARS 15
+#define MIN_COLUMN_CHARS 20
 
 /*
  * key pressed event

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




More information about the Plugins-Commits mailing list