summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/ropgadgets/select.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/plugins/ropgadgets/select.c b/plugins/ropgadgets/select.c
index ea679bb..019855b 100644
--- a/plugins/ropgadgets/select.c
+++ b/plugins/ropgadgets/select.c
@@ -80,7 +80,7 @@ static void rop_finder_assistant_prepare(GtkAssistant *, GtkWidget *, GObject *)
static void register_input_output_panel(GtkAssistant *, GObject *);
/* Construit la sélection d'un binaire déjà chargé. */
-static GtkWidget *load_and_populate_current_project_binaries(GObject *);
+static GtkWidget *load_and_populate_current_project_binaries(GObject *, gint *);
/* Réagit à un changement de sélection du binaire d'entrée. */
static void on_loaded_binary_selection_change(GtkComboBox *, GObject *);
@@ -388,6 +388,7 @@ static void register_input_output_panel(GtkAssistant *assistant, GObject *ref)
GtkWidget *vbox; /* Support principal */
GtkWidget *frame; /* Support avec encadrement */
GtkWidget *sub_vbox; /* Division verticale */
+ gint selected; /* Indice à sélectionner */
GtkWidget *combobox; /* Sélection du binaire interne*/
GtkWidget *sub_hbox; /* Division horizontale */
GtkWidget *entry; /* Zone de saisie de texte */
@@ -405,7 +406,7 @@ static void register_input_output_panel(GtkAssistant *assistant, GObject *ref)
frame = qck_create_frame(_("<b>Input binary</b>"), sub_vbox, 0, 0, 12, 8);
gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, TRUE, 0);
- combobox = load_and_populate_current_project_binaries(ref);
+ combobox = load_and_populate_current_project_binaries(ref, &selected);
gtk_box_pack_start(GTK_BOX(sub_vbox), combobox, TRUE, TRUE, 0);
/* Fichier de sortie */
@@ -445,12 +446,15 @@ static void register_input_output_panel(GtkAssistant *assistant, GObject *ref)
gtk_assistant_set_page_title(assistant, vbox, _("Input / output"));
gtk_assistant_set_page_type(assistant, vbox, GTK_ASSISTANT_PAGE_INTRO);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), selected);
+
}
/******************************************************************************
* *
-* Paramètres : ref = espace de référencements inter-panneaux. *
+* Paramètres : ref = espace de référencements inter-panneaux. *
+* selected = éventuel indice de binaire à sélectionner. [OUT] *
* *
* Description : Construit la sélection d'un binaire déjà chargé. *
* *
@@ -460,12 +464,11 @@ static void register_input_output_panel(GtkAssistant *assistant, GObject *ref)
* *
******************************************************************************/
-static GtkWidget *load_and_populate_current_project_binaries(GObject *ref)
+static GtkWidget *load_and_populate_current_project_binaries(GObject *ref, gint *selected)
{
GtkWidget *result; /* Composant à retourner */
GStudyProject *project; /* Projet courant */
GLoadedContent *current; /* Contenu actif courant */
- gint selected; /* Indice à sélectionner */
GtkListStore *store; /* Modèle de gestion en liste */
GLoadedContent **contents; /* Liste de contenus chargés */
size_t count; /* Taille de cette liste */
@@ -482,7 +485,7 @@ static GtkWidget *load_and_populate_current_project_binaries(GObject *ref)
/* Constitution d'une liste de binaires courants */
- selected = -1;
+ *selected = -1;
store = gtk_list_store_new(CPB_COUNT, G_TYPE_OBJECT, G_TYPE_STRING);
@@ -503,7 +506,7 @@ static GtkWidget *load_and_populate_current_project_binaries(GObject *ref)
-1);
if (binary == (GLoadedBinary *)current)
- selected = i;
+ *selected = i;
}
@@ -524,8 +527,6 @@ static GtkWidget *load_and_populate_current_project_binaries(GObject *ref)
gtk_widget_show(result);
- gtk_combo_box_set_active(GTK_COMBO_BOX(result), selected);
-
renderer = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(result), renderer, TRUE);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(result), renderer,