From 396ddf094ee84e25bf89fab8e12e699e5ac8acfc Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Granjoux?= Date: Mon, 13 Feb 2012 22:06:08 +0100 Subject: [PATCH] libanjuta, project-manager, document-manager: ianjuta_project_manager_get_children find now all children with the specified type This is changing the behavior of the ianjuta_project_manager_get_children function. Previously only the direct children of the parent nodes were returned and there is no argument to specify children type. --- libanjuta/interfaces/libanjuta.idl | 15 +-- plugins/document-manager/search-files.c | 186 ++++++++++++++------------------ plugins/project-manager/plugin.c | 96 +++++++---------- 3 files changed, 133 insertions(+), 164 deletions(-) diff --git a/libanjuta/interfaces/libanjuta.idl b/libanjuta/interfaces/libanjuta.idl index 2c8fd61d9..a26e9479c 100644 --- a/libanjuta/interfaces/libanjuta.idl +++ b/libanjuta/interfaces/libanjuta.idl @@ -3536,16 +3536,19 @@ interface IAnjutaProjectManager /** * ianjuta_project_manager_get_children: * @obj: Self - * @element: A #GFile corresponding to a parent. + * @parent: A #GFile corresponding to the parent. + * @children_type: Select one element type: source, group or target * @err: Error propagation and reporting. * - * Gets the list of all children of the corresponding parent. + * Recursively gets the list of all children below the corresponding + * parent having the specify type. * - * Returns: (element-type GFile) (transfer full): The list of #GFile corresponding to - * each child of the element or %NULL if the element has no child. Free the returned - * list with g_list_free() and the files with g_object_unref(). + * Returns: (element-type GFile) (transfer full): The list of #GFile + * corresponding to all children or %NULL if the element has no + * children with the corresponding type. Free the returned * list + * with g_list_free() and the files with g_object_unref(). */ - List get_children (GFile *element); + List get_children (GFile *parent, gint children_type); /** * ianjuta_project_manager_get_selected: diff --git a/plugins/document-manager/search-files.c b/plugins/document-manager/search-files.c index 5ee28ffed..a4a0cd99a 100644 --- a/plugins/document-manager/search-files.c +++ b/plugins/document-manager/search-files.c @@ -2,17 +2,17 @@ /* * anjuta * Copyright (C) Johannes Schmid 2012 - * + * * anjuta is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * anjuta is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ @@ -34,13 +34,13 @@ struct _SearchFilesPrivate GtkBuilder* builder; GtkWidget* main_box; - + GtkWidget* search_button; GtkWidget* replace_button; - + GtkWidget* search_entry; GtkWidget* replace_entry; - + GtkWidget* files_combo; GtkWidget* project_combo; GtkWidget* file_type_combo; @@ -49,12 +49,12 @@ struct _SearchFilesPrivate GtkWidget* regex_check; GtkWidget* spinner_busy; - + GtkWidget* files_tree; GtkTreeModel* files_model; GtkWidget* files_tree_check; - + AnjutaDocman* docman; SearchBox* search_box; GtkWidget* dialog; @@ -67,7 +67,7 @@ struct _SearchFilesPrivate /* Project uri of last search */ GFile* project_file; - + gboolean busy; }; @@ -103,7 +103,7 @@ search_files_update_ui (SearchFiles* sf) GtkTreeIter iter; gboolean can_replace = FALSE; gboolean can_search = FALSE; - + if (!sf->priv->busy) { gtk_spinner_stop(GTK_SPINNER (sf->priv->spinner_busy)); @@ -156,10 +156,10 @@ search_files_check_column_toggled (GtkCellRendererToggle* renderer, gtk_tree_model_get_iter (sf->priv->files_model, &iter, tree_path); gtk_tree_path_free(tree_path); - + gtk_tree_model_get (sf->priv->files_model, &iter, COLUMN_SELECTED, &state, -1); - + gtk_list_store_set (GTK_LIST_STORE (sf->priv->files_model), &iter, COLUMN_SELECTED, !state, -1); @@ -177,15 +177,15 @@ static void search_files_command_finished (SearchFileCommand* cmd, guint return_code, SearchFiles* sf) -{ +{ GtkTreeIter iter; GtkTreeRowReference* tree_ref; GtkTreePath* path; - + tree_ref = g_object_get_data (G_OBJECT (cmd), "__tree_ref"); path = gtk_tree_row_reference_get_path(tree_ref); - + gtk_tree_model_get_iter(sf->priv->files_model, &iter, path); gtk_list_store_set (GTK_LIST_STORE (sf->priv->files_model), &iter, @@ -205,7 +205,7 @@ search_files_command_finished (SearchFileCommand* cmd, anjuta_command_get_error_message(ANJUTA_COMMAND(cmd)), -1); } - + g_object_unref (cmd); } @@ -213,11 +213,11 @@ static void search_files_search (SearchFiles* sf) { GtkTreeIter iter; - + if (gtk_tree_model_get_iter_first(sf->priv->files_model, &iter)) { AnjutaCommandQueue* queue = anjuta_command_queue_new(ANJUTA_COMMAND_QUEUE_EXECUTE_MANUAL); - const gchar* pattern = + const gchar* pattern = gtk_entry_get_text (GTK_ENTRY (sf->priv->search_entry)); do { @@ -225,26 +225,26 @@ search_files_search (SearchFiles* sf) gboolean selected; /* Save the current values */ - sf->priv->regex = + sf->priv->regex = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (sf->priv->regex_check)); sf->priv->case_sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (sf->priv->case_check)); - + g_free (sf->priv->last_search_string); sf->priv->last_search_string = g_strdup(pattern); g_free (sf->priv->last_replace_string); sf->priv->last_replace_string = NULL; gtk_tree_model_get (sf->priv->files_model, &iter, - COLUMN_FILE, &file, + COLUMN_FILE, &file, COLUMN_SELECTED, &selected, -1); if (selected) { GtkTreePath* path; GtkTreeRowReference* ref; - + path = gtk_tree_model_get_path(sf->priv->files_model, &iter); - ref = gtk_tree_row_reference_new(sf->priv->files_model, + ref = gtk_tree_row_reference_new(sf->priv->files_model, path); gtk_tree_path_free(path); @@ -257,7 +257,7 @@ search_files_search (SearchFiles* sf) g_object_set_data (G_OBJECT (cmd), "__tree_ref", ref); - g_signal_connect (cmd, "command-finished", + g_signal_connect (cmd, "command-finished", G_CALLBACK(search_files_command_finished), sf); anjuta_command_queue_push(queue, @@ -283,11 +283,11 @@ void search_files_replace_clicked (SearchFiles* sf) { GtkTreeIter iter; - + if (gtk_tree_model_get_iter_first(sf->priv->files_model, &iter)) { AnjutaCommandQueue* queue = anjuta_command_queue_new(ANJUTA_COMMAND_QUEUE_EXECUTE_MANUAL); - const gchar* pattern = + const gchar* pattern = gtk_entry_get_text (GTK_ENTRY (sf->priv->search_entry)); const gchar* replace = gtk_entry_get_text (GTK_ENTRY (sf->priv->replace_entry)); @@ -297,26 +297,26 @@ search_files_replace_clicked (SearchFiles* sf) gboolean selected; /* Save the current values */ - sf->priv->regex = + sf->priv->regex = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (sf->priv->regex_check)); sf->priv->case_sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (sf->priv->case_check)); - + g_free (sf->priv->last_search_string); sf->priv->last_search_string = g_strdup(pattern); g_free (sf->priv->last_replace_string); sf->priv->last_replace_string = g_strdup(replace); gtk_tree_model_get (sf->priv->files_model, &iter, - COLUMN_FILE, &file, + COLUMN_FILE, &file, COLUMN_SELECTED, &selected, -1); if (selected) { GtkTreePath* path; GtkTreeRowReference* ref; - + path = gtk_tree_model_get_path(sf->priv->files_model, &iter); - ref = gtk_tree_row_reference_new(sf->priv->files_model, + ref = gtk_tree_row_reference_new(sf->priv->files_model, path); gtk_tree_path_free(path); @@ -329,7 +329,7 @@ search_files_replace_clicked (SearchFiles* sf) g_object_set_data (G_OBJECT (cmd), "__tree_ref", ref); - g_signal_connect (cmd, "command-finished", + g_signal_connect (cmd, "command-finished", G_CALLBACK(search_files_command_finished), sf); anjuta_command_queue_push(queue, @@ -352,26 +352,6 @@ search_files_replace_clicked (SearchFiles* sf) } static void -search_files_get_files (GFile* parent, GList** files, IAnjutaProjectManager* pm) -{ - GList* node; - GList* children = ianjuta_project_manager_get_children(pm, parent, NULL); - for (node = children;node != NULL; node = g_list_next(node)) - { - search_files_get_files(G_FILE(node->data), files, pm); - if (ianjuta_project_manager_get_target_type (pm, - G_FILE (node->data), - NULL) - == ANJUTA_PROJECT_SOURCE) - { - *files = g_list_append (*files, node->data); - } - } - g_list_foreach (children, (GFunc)g_object_unref, NULL); - g_list_free(children); -} - -static void search_files_filter_command_finished (SearchFilterFileCommand* cmd, guint return_code, SearchFiles* sf) @@ -379,12 +359,12 @@ search_files_filter_command_finished (SearchFilterFileCommand* cmd, GFile* file; GtkTreeIter iter; gchar* display_name = NULL; - + if (return_code) return; g_object_get (cmd, "file", &file, NULL); - + if (sf->priv->project_file) { display_name = g_file_get_relative_path (sf->priv->project_file, @@ -429,15 +409,15 @@ search_files_search_clicked (SearchFiles* sf) GtkTreeIter iter; g_return_if_fail (sf != NULL && SEARCH_IS_FILES (sf)); - + /* Clear store */ gtk_list_store_clear(GTK_LIST_STORE (sf->priv->files_model)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (sf->priv->files_model), COLUMN_FILENAME, - GTK_SORT_DESCENDING); - + GTK_SORT_DESCENDING); + /* Get file and type selection */ - selected = + selected = ianjuta_project_chooser_get_selected(IANJUTA_PROJECT_CHOOSER (sf->priv->project_combo), NULL); type_combo = GTK_COMBO_BOX (sf->priv->file_type_combo); @@ -451,7 +431,7 @@ search_files_search_clicked (SearchFiles* sf) pm = anjuta_shell_get_interface (sf->priv->docman->shell, IAnjutaProjectManager, NULL); - search_files_get_files (selected, &files, pm); + files = ianjuta_project_manager_get_children(pm, selected, ANJUTA_PROJECT_SOURCE, NULL); /* Query project root uri */ anjuta_shell_get (sf->priv->docman->shell, @@ -460,7 +440,7 @@ search_files_search_clicked (SearchFiles* sf) &project_uri, NULL); if (sf->priv->project_file) g_object_unref (sf->priv->project_file); - + if (project_uri) { sf->priv->project_file = g_file_new_for_uri (project_uri); @@ -470,11 +450,11 @@ search_files_search_clicked (SearchFiles* sf) /* Queue file filtering */ queue = anjuta_command_queue_new(ANJUTA_COMMAND_QUEUE_EXECUTE_MANUAL); - g_signal_connect (queue, "finished", + g_signal_connect (queue, "finished", G_CALLBACK (search_files_filter_finished), sf); for (file = files; file != NULL; file = g_list_next (file)) { - SearchFilterFileCommand* cmd = + SearchFilterFileCommand* cmd = search_filter_file_command_new(G_FILE (file->data), mime_types); g_signal_connect (cmd, "command-finished", @@ -484,10 +464,10 @@ search_files_search_clicked (SearchFiles* sf) sf->priv->busy = TRUE; anjuta_command_queue_start (queue); search_files_update_ui(sf); - + g_list_foreach (files, (GFunc) g_object_unref, NULL); g_list_free (files); - g_free (mime_types); + g_free (mime_types); } static void @@ -511,7 +491,7 @@ search_files_render_count (GtkTreeViewColumn *tree_column, static void search_files_editor_loaded (SearchFiles* sf, IAnjutaEditor* editor) { - search_box_set_search_string(sf->priv->search_box, + search_box_set_search_string(sf->priv->search_box, sf->priv->last_search_string); if (sf->priv->last_replace_string) { @@ -536,7 +516,7 @@ search_files_editor_loaded (SearchFiles* sf, IAnjutaEditor* editor) gtk_widget_show (GTK_WIDGET(sf->priv->search_box)); } - + static void search_files_result_activated (GtkTreeView* files_tree, @@ -551,20 +531,20 @@ search_files_result_activated (GtkTreeView* files_tree, gtk_tree_model_get_iter (sf->priv->files_model, &iter, path); gtk_tree_model_get (sf->priv->files_model, &iter, COLUMN_FILE, &file, -1); - + /* Check if document is open */ editor = anjuta_docman_get_document_for_file(sf->priv->docman, file); - + if (editor && IANJUTA_IS_EDITOR(editor)) { search_files_editor_loaded (sf, IANJUTA_EDITOR(editor)); } else { - IAnjutaEditor* real_editor = + IAnjutaEditor* real_editor = anjuta_docman_goto_file_line(sf->priv->docman, file, 0); if (real_editor) - g_signal_connect_swapped (real_editor, "opened", + g_signal_connect_swapped (real_editor, "opened", G_CALLBACK (search_files_editor_loaded), sf); } @@ -582,7 +562,7 @@ search_files_init_tree (SearchFiles* sf) GtkCellRenderer* filename_renderer; GtkCellRenderer* count_renderer; GtkCellRenderer* error_renderer; - + column_select = gtk_tree_view_column_new(); sf->priv->files_tree_check = gtk_check_button_new(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sf->priv->files_tree_check), @@ -601,8 +581,8 @@ search_files_init_tree (SearchFiles* sf) g_signal_connect (selection_renderer, "toggled", G_CALLBACK(search_files_check_column_toggled), sf); gtk_tree_view_column_set_sort_column_id(column_select, - COLUMN_SELECTED); - + COLUMN_SELECTED); + column_filename = gtk_tree_view_column_new(); gtk_tree_view_column_set_expand(column_filename, TRUE); @@ -630,7 +610,7 @@ search_files_init_tree (SearchFiles* sf) error_renderer, "visible", COLUMN_ERROR_CODE); - + column_count = gtk_tree_view_column_new(); gtk_tree_view_column_set_title (column_count, "#"); count_renderer = gtk_cell_renderer_text_new(); @@ -640,7 +620,7 @@ search_files_init_tree (SearchFiles* sf) gtk_tree_view_column_add_attribute (column_count, count_renderer, "sensitive", - COLUMN_COUNT); + COLUMN_COUNT); gtk_tree_view_column_set_cell_data_func(column_count, count_renderer, search_files_render_count, @@ -648,7 +628,7 @@ search_files_init_tree (SearchFiles* sf) NULL); gtk_tree_view_column_set_sort_column_id(column_count, COLUMN_COUNT); - + sf->priv->files_model = GTK_TREE_MODEL (gtk_list_store_new (N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, @@ -660,8 +640,8 @@ search_files_init_tree (SearchFiles* sf) G_TYPE_INT)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (sf->priv->files_model), COLUMN_FILENAME, - GTK_SORT_DESCENDING); - + GTK_SORT_DESCENDING); + g_signal_connect_swapped (sf->priv->files_model, "row-inserted", G_CALLBACK (search_files_update_ui), @@ -673,7 +653,7 @@ search_files_init_tree (SearchFiles* sf) g_signal_connect_swapped (sf->priv->files_model, "row-changed", G_CALLBACK (search_files_update_ui), - sf); + sf); gtk_tree_view_set_model (GTK_TREE_VIEW (sf->priv->files_tree), sf->priv->files_model); gtk_tree_view_append_column(GTK_TREE_VIEW (sf->priv->files_tree), @@ -692,15 +672,15 @@ static void search_files_type_combo_init (SearchFiles* sf) { GtkCellRenderer* combo_renderer = gtk_cell_renderer_text_new(); - + GtkTreeIter iter; GtkListStore* store; - + IAnjutaLanguage* lang_manager = anjuta_shell_get_interface (sf->priv->docman->shell, IAnjutaLanguage, NULL); - + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT (sf->priv->file_type_combo), combo_renderer, TRUE); gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (sf->priv->file_type_combo), @@ -712,18 +692,18 @@ search_files_type_combo_init (SearchFiles* sf) gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (store), COMBO_LANG_NAME, GTK_SORT_DESCENDING); - + gtk_combo_box_set_model(GTK_COMBO_BOX(sf->priv->file_type_combo), GTK_TREE_MODEL (store)); - + gtk_list_store_append(store, &iter); - gtk_list_store_set (store, &iter, + gtk_list_store_set (store, &iter, COMBO_LANG_NAME, _("All text files"), COMBO_LANG_TYPES, TEXT_MIME_TYPE, -1); gtk_combo_box_set_active_iter(GTK_COMBO_BOX(sf->priv->file_type_combo), &iter); - + if (lang_manager) { GList* languages = @@ -740,7 +720,7 @@ search_files_type_combo_init (SearchFiles* sf) const gchar* name = ianjuta_language_get_name (lang_manager, GPOINTER_TO_INT (lang->data), NULL); - + for (mime_type = mime_types; mime_type != NULL; mime_type = g_list_next (mime_type)) { if (type_string->len) @@ -756,7 +736,7 @@ search_files_type_combo_init (SearchFiles* sf) -1); g_string_free (type_string, TRUE); - } + } } } @@ -764,8 +744,8 @@ static void search_files_init (SearchFiles* sf) { GError* error = NULL; - - sf->priv = + + sf->priv = G_TYPE_INSTANCE_GET_PRIVATE (sf, SEARCH_TYPE_FILES, SearchFilesPrivate); sf->priv->builder = gtk_builder_new(); @@ -778,7 +758,7 @@ search_files_init (SearchFiles* sf) g_error_free(error); return; } - + sf->priv->main_box = GTK_WIDGET (gtk_builder_get_object(sf->priv->builder, "main_box")); sf->priv->search_button = GTK_WIDGET (gtk_builder_get_object(sf->priv->builder, @@ -800,14 +780,14 @@ search_files_init (SearchFiles* sf) "regex_check")); sf->priv->spinner_busy = GTK_WIDGET (gtk_builder_get_object(sf->priv->builder, "spinner_busy")); - + sf->priv->files_tree = GTK_WIDGET (gtk_builder_get_object(sf->priv->builder, - "files_tree")); + "files_tree")); search_files_init_tree(sf); - + gtk_builder_connect_signals(sf->priv->builder, sf); - + g_object_ref (sf->priv->main_box); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (sf->priv->main_box)), sf->priv->main_box); @@ -824,7 +804,7 @@ search_files_finalize (GObject* object) g_object_unref (sf->priv->project_file); g_free (sf->priv->last_search_string); g_free (sf->priv->last_replace_string); - + G_OBJECT_CLASS (search_files_parent_class)->finalize (object); } @@ -850,7 +830,7 @@ search_files_project_loaded (SearchFiles* sf, IAnjutaProjectManager *pm, GError* } } -SearchFiles* +SearchFiles* search_files_new (AnjutaDocman* docman, SearchBox* search_box) { AnjutaShell* shell = docman->shell; @@ -871,25 +851,25 @@ search_files_new (AnjutaDocman* docman, SearchBox* search_box) sf->priv->docman = docman; sf->priv->search_box = search_box; - + gtk_widget_show (sf->priv->main_box); search_files_type_combo_init(sf); search_files_update_ui(sf); - - return sf; + + return sf; } void search_files_present (SearchFiles* sf) { g_return_if_fail (sf != NULL && SEARCH_IS_FILES(sf)); - + gtk_entry_set_text (GTK_ENTRY (sf->priv->search_entry), search_box_get_search_string(sf->priv->search_box)); gtk_entry_set_text (GTK_ENTRY (sf->priv->replace_entry), - search_box_get_replace_string(sf->priv->search_box)); + search_box_get_replace_string(sf->priv->search_box)); anjuta_shell_present_widget(sf->priv->docman->shell, sf->priv->main_box, NULL); -} \ No newline at end of file +} diff --git a/plugins/project-manager/plugin.c b/plugins/project-manager/plugin.c index 2557f16c0..4c83d4343 100644 --- a/plugins/project-manager/plugin.c +++ b/plugins/project-manager/plugin.c @@ -1895,35 +1895,59 @@ get_element_type (ProjectManagerPlugin *plugin, GFile *element) } static GList* -iproject_manager_get_elements (IAnjutaProjectManager *project_manager, - AnjutaProjectNodeType element_type, +iproject_manager_get_children (IAnjutaProjectManager *project_manager, + GFile *parent, + gint children_type, GError **err) { - GList *nodes, *node; ProjectManagerPlugin *plugin; + GList *children = NULL; g_return_val_if_fail (ANJUTA_IS_PLUGIN (project_manager), NULL); plugin = ANJUTA_PLUGIN_PROJECT_MANAGER (G_OBJECT (project_manager)); - - /* Get all nodes */ - nodes = gbf_project_util_node_all (anjuta_pm_project_get_root (plugin->project), element_type); - - /* Replace all nodes by their corresponding URI */ - for (node = g_list_first (nodes); node != NULL; node = g_list_next (node)) + if (plugin->project != NULL) { - if (anjuta_project_node_get_node_type (ANJUTA_PROJECT_NODE (node->data)) == ANJUTA_PROJECT_TARGET) - { - /* Take care of different build directory */ - node->data = get_element_file_from_node (plugin, ANJUTA_PROJECT_NODE (node->data), IANJUTA_BUILDER_ROOT_URI); - } - else + AnjutaProjectNode *root; + + root = anjuta_pm_project_get_root (plugin->project); + if (root != NULL) { - node->data = g_object_ref (anjuta_project_node_get_file (ANJUTA_PROJECT_NODE (node->data))); + /* Get parent */ + if (parent != NULL) root = get_node_from_file (root, parent); + if (root != NULL) + { + /* Get all nodes */ + GList *node; + + children = gbf_project_util_node_all (root, children_type); + + /* Replace all nodes by their corresponding file */ + for (node = g_list_first (children); node != NULL; node = g_list_next (node)) + { + if (anjuta_project_node_get_node_type (ANJUTA_PROJECT_NODE (node->data)) == ANJUTA_PROJECT_TARGET) + { + /* Take care of different build directory */ + node->data = get_element_file_from_node (plugin, ANJUTA_PROJECT_NODE (node->data), IANJUTA_BUILDER_ROOT_URI); + } + else + { + node->data = g_object_ref (anjuta_project_node_get_file (ANJUTA_PROJECT_NODE (node->data))); + } + } + } } } - return nodes; + return children; +} + +static GList* +iproject_manager_get_elements (IAnjutaProjectManager *project_manager, + AnjutaProjectNodeType element_type, + GError **err) +{ + return ianjuta_project_manager_get_children (project_manager, NULL, element_type, err); } static AnjutaProjectNodeType @@ -2008,44 +2032,6 @@ iproject_manager_get_parent (IAnjutaProjectManager *project_manager, return file; } -static GList* -iproject_manager_get_children (IAnjutaProjectManager *project_manager, - GFile *element, - GError **err) -{ - ProjectManagerPlugin *plugin; - GList *list = NULL; - - g_return_val_if_fail (ANJUTA_IS_PLUGIN (project_manager), NULL); - - plugin = ANJUTA_PLUGIN_PROJECT_MANAGER (G_OBJECT (project_manager)); - if (plugin->project != NULL) - { - AnjutaProjectNode *parent; - - parent = anjuta_pm_project_get_root (plugin->project); - if (parent != NULL) - { - parent = get_node_from_file (parent, element); - if (parent != NULL) - { - AnjutaProjectNode *child; - - for (child = anjuta_project_node_first_child (parent); child != NULL; child = anjuta_project_node_next_sibling (child)) - { - GFile *file; - - file = anjuta_project_node_get_file (child); - if (file != NULL) list = g_list_prepend (list, g_object_ref (file)); - } - } - } - } - list = g_list_reverse (list); - - return list; -} - static GFile* iproject_manager_get_selected (IAnjutaProjectManager *project_manager, GError **err) -- 2.11.4.GIT