Пример #1
0
static void
on_add_watch (gpointer data, gpointer user_data)
{
	DebugTree* this = (DebugTree *)user_data;
	gboolean auto_update = ((const gchar *)data)[0] & AUTO_UPDATE_WATCH ? TRUE : FALSE;
	IAnjutaDebuggerVariableObject var = {NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, -1};

	var.expression = &((gchar *)data)[1];
	debug_tree_add_watch (this, &var, auto_update);
}
Пример #2
0
void
debug_tree_replace_list (DebugTree *tree, const GList *expressions)
{
	GtkTreeModel* model = gtk_tree_view_get_model (GTK_TREE_VIEW(tree->view));
	GtkTreeIter iter;
	gboolean valid;
	GList *list = g_list_copy ((GList *)expressions);

	/* Keep in the tree only the variable in the list */
	valid = gtk_tree_model_get_iter_first (model, &iter);
	while (valid)
	{
		GList *find = NULL;
		gchar *exp;
		DmaVariableData *node;
		
		gtk_tree_model_get (model, &iter,
							VARIABLE_COLUMN, &exp,
							DTREE_ENTRY_COLUMN, &node, -1);

		if ((node->deleted == FALSE) && (node->exited == FALSE) && (exp != NULL))
		{
			find = g_list_find_custom (list, exp, (GCompareFunc)strcmp);
		}
		
		if (find)
		{
			/* Keep variable in tree, remove in add list */
			list = g_list_delete_link (list, find);
			valid = gtk_tree_model_iter_next (model, &iter);
		}
		else
		{
			/* Remove variable from the tree */
			delete_parent(model, NULL, &iter, tree->debugger);
			valid = gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
		}
	}
	
	/* Create new variable */
	while (list)
	{
		IAnjutaDebuggerVariableObject var = {NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, -1};
		
		var.expression = (gchar *)(list->data);
		debug_tree_add_watch (tree, &var, TRUE);
		
		list = g_list_delete_link (list, list);
	}
}
Пример #3
0
static void
on_replace_watch (gpointer data, gpointer user_data)
{
	DebugTree* tree = (DebugTree *)user_data;
	const gchar *expression = (const gchar *)data;
	GtkTreeModel*const model = gtk_tree_view_get_model (GTK_TREE_VIEW(tree->view));
	IAnjutaDebuggerVariableObject var = {NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, -1};
	GtkTreeIter iter;

	if (debug_tree_find_expression (model, &iter, expression, NULL))
	{
		DmaVariableData *data;

        	gtk_tree_model_get (model, &iter, DTREE_ENTRY_COLUMN, &data, -1);
		if (data != NULL) data->deleted = FALSE;
	}
	else
	{
		var.expression = (gchar *)expression;
		debug_tree_add_watch (tree, &var, TRUE);
	}
}
Пример #4
0
static void
on_debug_tree_variable_changed (GtkCellRendererText *cell,
						  gchar *path_string,
                          gchar *text,
                          gpointer user_data)
{
	DebugTree *tree = (DebugTree *)user_data;
	GtkTreeIter iter;
	GtkTreeModel * model;
	
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree->view));
	if (gtk_tree_model_get_iter_from_string (model, &iter, path_string))
	{
		debug_tree_remove (tree, &iter);
		
		if ((text != NULL) && (*text != '\0'))
		{
		    IAnjutaDebuggerVariableObject var = {NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, -1};
			
			var.expression = text;
			debug_tree_add_watch (tree, &var, TRUE);
		}
	}
}