diff options
Diffstat (limited to 'src/gui/menus/project.c')
-rw-r--r-- | src/gui/menus/project.c | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/src/gui/menus/project.c b/src/gui/menus/project.c index c46c017..5d027a0 100644 --- a/src/gui/menus/project.c +++ b/src/gui/menus/project.c @@ -46,8 +46,8 @@ static void mcb_project_add_shellcode(GtkMenuItem *, GMenuBar *); /* Affiche la boîte d'ajout d'un binaire au projet courant. */ static void mcb_project_add_binary_file(GtkMenuItem *, GMenuBar *); -/* Retire un binaire du projet indiqué. */ -static void mcb_project_remove_binary(GtkMenuItem *, GStudyProject *); +/* Retire un contenu du projet indiqué. */ +static void mcb_project_remove_content(GtkMenuItem *, GStudyProject *); @@ -122,8 +122,8 @@ void update_menu_project_for_project(GtkWidget *widget, GStudyProject *project, GtkWidget *menubar; /* Support pour éléments */ GList *list; /* Liste des éléments en place */ GList *iter; /* Boucle de parcours #1 */ - size_t count; /* Nombre de binaires attachés */ - GLoadedBinary **binaries; /* Liste de ces binaires */ + size_t count; /* Nombre de contenus attachés */ + GLoadedContent **contents; /* Liste de ces contenus */ size_t i; /* Boucle de parcours #2 */ const char *desc; /* Description à afficher */ GtkWidget *submenuitem; /* Sous-menu à ajouter */ @@ -142,23 +142,26 @@ void update_menu_project_for_project(GtkWidget *widget, GStudyProject *project, /* Ajout des entrées */ - binaries = g_study_project_get_binaries(project, &count); + contents = g_study_project_get_contents(project, &count); for (i = 0; i < count; i++) { - desc = g_loaded_binary_get_name(binaries[i], true); + desc = g_loaded_content_describe(contents[i], true); submenuitem = qck_create_menu_item(NULL, NULL, desc, - G_CALLBACK(mcb_project_remove_binary), project); - g_object_set_data(G_OBJECT(submenuitem), "binary", binaries[i]); + G_CALLBACK(mcb_project_remove_content), project); + g_object_set_data_full(G_OBJECT(submenuitem), "content", contents[i], g_object_unref); gtk_container_add(GTK_CONTAINER(menubar), submenuitem); - g_object_unref(G_OBJECT(binaries[i])); + /** + * Note : l'appel à g_object_unref() est réalisé lorsque la référence + * est retirée du menu. + */ } - if (binaries != NULL) - free(binaries); + if (contents != NULL) + free(contents); gtk_widget_set_sensitive(menuitem, count > 0); @@ -304,7 +307,7 @@ static void mcb_project_add_binary_file(GtkMenuItem *menuitem, GMenuBar *bar) * Paramètres : menuitem = élément de menu sélectionné. * * project = projet d'appartenance du binaire à traiter. * * * -* Description : Retire un binaire du projet indiqué. * +* Description : Retire un contenu du projet indiqué. * * * * Retour : - * * * @@ -312,13 +315,17 @@ static void mcb_project_add_binary_file(GtkMenuItem *menuitem, GMenuBar *bar) * * ******************************************************************************/ -static void mcb_project_remove_binary(GtkMenuItem *menuitem, GStudyProject *project) +static void mcb_project_remove_content(GtkMenuItem *menuitem, GStudyProject *project) { - GLoadedBinary *binary; /* Binaire à retirer */ + GObject *ref; /* Espace de référencement */ + GLoadedContent *content; /* Contenu à retirer */ - binary = G_LOADED_BINARY(g_object_get_data(G_OBJECT(menuitem), "binary")); + ref = G_OBJECT(menuitem); - g_study_project_detach_binary(project, binary); - g_object_unref(G_OBJECT(binary)); + content = G_LOADED_CONTENT(g_object_get_data(ref, "content")); + + g_study_project_detach_content(project, content); + + g_object_set_data(ref, "content", NULL); } |