Пример #1
0
/* This extracts the project URI saved in the session so that it could be
 * loaded sequencially. Returned string must be freed.
 */
static GFile*
extract_project_from_session (const gchar* session_dir)
{
	AnjutaSession *session;
	GList *node, *files;
	GFile *project = NULL;

	session = anjuta_session_new (session_dir);

	files = anjuta_session_get_string_list (session, "File Loader", "Files");

	/* Find project file */
	node = files;
	for (node = files; node != NULL; node = g_list_next (node))
	{
		gchar *uri = node->data;
		if (uri)
		{
			if (anjuta_util_is_project_file (uri))
			{
				if (project != NULL) g_object_unref (project);
				project = anjuta_session_get_file_from_relative_uri (session, uri, NULL);
			}
			g_free (uri);
		}
	}
	g_list_free (files);
	g_object_unref (session);

	return project;
}
Пример #2
0
static void
jsdirs_init_treeview (GtkBuilder* bxml)
{
	const gchar *project_root = NULL;
	GtkTreeIter iter;
	GtkListStore *list_store = GTK_LIST_STORE (gtk_builder_get_object (bxml, JSDIRS_LISTSTORE));
	if (!list_store)
		return;

	anjuta_shell_get (ANJUTA_PLUGIN (getPlugin ())->shell,
					  IANJUTA_PROJECT_MANAGER_PROJECT_ROOT_URI,
					  G_TYPE_STRING, &project_root, NULL);

	GFile *tmp = g_file_new_for_uri (project_root);
	AnjutaSession *session = anjuta_session_new (g_file_get_path (tmp));
	g_object_unref (tmp);
	GList* dir_list = anjuta_session_get_string_list (session, "options", "js_dirs");
	GList *i;
	gtk_list_store_clear (list_store);

	for (i = dir_list; i; i = g_list_next (i))
	{
		gtk_list_store_append (list_store, &iter);
		gtk_list_store_set (list_store, &iter, 0, i->data, -1);
	}
	if (!dir_list)
	{
		gtk_list_store_append (list_store, &iter);
		gtk_list_store_set (list_store, &iter, 0, ".", -1);
	}
}
Пример #3
0
static GList*
anjuta_session_get_relative_file_list (AnjutaSession *session, const gchar *section, const gchar *key)
{
	GList *list;
	GList *item;

 	list = anjuta_session_get_string_list (session, section, key);
	for (item = g_list_first (list); item != NULL; item = g_list_next (item))
	{
		GFile *file;

		file = anjuta_session_get_file_from_relative_uri (session, (const gchar *)item->data, NULL);
		g_free (item->data);
		item->data = file;
	}

	return list;
}
Пример #4
0
GList *
gdb_load_pretty_printers (AnjutaSession *session)
{
	GList *session_list;
	GList *list = NULL;
	GList *item;

	session_list = anjuta_session_get_string_list (session, GDB_SECTION, GDB_PRINTER_KEY);
	for (item = g_list_first (session_list); item != NULL; item = g_list_next (item))
	{
		GdbPrettyPrinter *printer;
		gchar *name = (gchar *)item->data;
		gchar *ptr;
		
		printer = g_slice_new0 (GdbPrettyPrinter);
		ptr = strchr (name, ':');
		if (ptr != NULL)
		{
			if (*name == 'E') printer->enable = TRUE;
			name = ptr + 1;
		}
		ptr = strrchr (name, ':');
		if (ptr != NULL)
		{
			*ptr = '\0';
			printer->function = g_strdup (ptr + 1);
		}
		printer->path = g_strdup (name);
		
		list = g_list_prepend (list, printer);
	}
	
	g_list_foreach (session_list, (GFunc)g_free, NULL);
	g_list_free (session_list);
	
	return list;
}
Пример #5
0
static void on_session_load (AnjutaShell *shell, AnjutaSessionPhase phase, AnjutaSession *session, DmaStart *self)
{
	gint stop_at_beginning;

	if (phase != ANJUTA_SESSION_PHASE_NORMAL)
		return;

	/* Initialize source_dirs */
 	if (self->source_dirs != NULL)
	{		
 		g_list_foreach (self->source_dirs, (GFunc)g_free, NULL);
 		g_list_free (self->source_dirs);
 	}
 	self->source_dirs = anjuta_session_get_string_list (session, "Debugger", "Source directories");

	stop_at_beginning = anjuta_session_get_int (session, "Debugger", "Stop at beginning");
	if (stop_at_beginning == 0)
		self->stop_at_beginning = TRUE;	/* Default value */
	else
		self->stop_at_beginning = stop_at_beginning - 1;
	
	g_free (self->remote_debugger);
	self->remote_debugger = anjuta_session_get_string (session, "Debugger", "Remote target");
}