summaryrefslogtreecommitdiff
path: root/src/gui/panels/errors.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/errors.c')
-rw-r--r--src/gui/panels/errors.c69
1 files changed, 40 insertions, 29 deletions
diff --git a/src/gui/panels/errors.c b/src/gui/panels/errors.c
index f27d0fc..5b996e5 100644
--- a/src/gui/panels/errors.c
+++ b/src/gui/panels/errors.c
@@ -61,8 +61,6 @@ struct _GErrorPanel
{
GPanelItem parent; /* A laisser en premier */
- GtkBuilder *builder; /* Constructeur utilisé */
-
GLoadedBinary *binary; /* Binaire représenté */
size_t count; /* Nombre de soucis présents */
@@ -263,6 +261,7 @@ static void g_error_panel_init(GErrorPanel *panel)
{
GEditorItem *base; /* Version basique d'instance */
GPanelItem *pitem; /* Version parente du panneau */
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeSortable *store; /* Gestionnaire des données */
GtkTreeModelFilter *filter; /* Filtre pour l'arborescence */
GtkTreeView *treeview; /* Affichage de la liste */
@@ -288,22 +287,18 @@ static void g_error_panel_init(GErrorPanel *panel)
/* Représentation graphique */
- panel->builder = gtk_builder_new_from_resource("/org/chrysalide/gui/panels/errors.ui");
+ builder = g_panel_item_build(pitem, "errors");
- base->widget = GTK_WIDGET(gtk_builder_get_object(panel->builder, "box"));
- g_object_ref(G_OBJECT(base->widget));
- gtk_widget_unparent(base->widget);
-
- store = GTK_TREE_SORTABLE(gtk_builder_get_object(panel->builder, "store"));
+ store = GTK_TREE_SORTABLE(gtk_builder_get_object(builder, "store"));
gtk_tree_sortable_set_sort_func(store, ETC_ADDR, sort_errors_in_panel, NULL, NULL);
gtk_tree_sortable_set_sort_column_id(store, ETC_ADDR, GTK_SORT_ASCENDING);
- filter = GTK_TREE_MODEL_FILTER(gtk_builder_get_object(panel->builder, "filter"));
+ filter = GTK_TREE_MODEL_FILTER(gtk_builder_get_object(builder, "filter"));
gtk_tree_model_filter_set_visible_column(filter, ETC_VISIBLE);
/* Liste des erreurs relevées */
- treeview = GTK_TREE_VIEW(gtk_builder_get_object(panel->builder, "treeview"));
+ treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
column = gtk_tree_view_column_new();
gtk_tree_view_append_column(treeview, column);
@@ -334,14 +329,14 @@ static void g_error_panel_init(GErrorPanel *panel)
/* Connexion des signaux */
- gtk_builder_add_callback_symbols(panel->builder,
+ gtk_builder_add_callback_symbols(builder,
"gtk_tree_view_collapse_all", G_CALLBACK(gtk_tree_view_collapse_all),
"gtk_tree_view_expand_all", G_CALLBACK(gtk_tree_view_expand_all),
"on_error_filter_toggled", G_CALLBACK(on_error_filter_toggled),
"on_error_selection_changed", G_CALLBACK(on_error_selection_changed),
NULL);
- gtk_builder_connect_signals(panel->builder, panel);
+ gtk_builder_connect_signals(builder, panel);
}
@@ -382,8 +377,6 @@ static void g_error_panel_interface_init(GUpdatablePanelInterface *iface)
static void g_error_panel_dispose(GErrorPanel *panel)
{
- g_object_unref(G_OBJECT(panel->builder));
-
if (panel->binary != NULL)
g_object_unref(G_OBJECT(panel->binary));
@@ -483,6 +476,7 @@ static gint sort_errors_in_panel(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIte
static void update_panel_with_binary_errors(GErrorPanel *panel, GLoadedBinary *binary)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkListStore *store; /* Modèle de gestion */
/* Réinitialisation */
@@ -495,7 +489,9 @@ static void update_panel_with_binary_errors(GErrorPanel *panel, GLoadedBinary *b
if (panel->binary != NULL)
g_object_ref(G_OBJECT(panel->binary));
- store = GTK_LIST_STORE(gtk_builder_get_object(panel->builder, "store"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ store = GTK_LIST_STORE(gtk_builder_get_object(builder, "store"));
gtk_list_store_clear(store);
@@ -527,6 +523,7 @@ static void update_panel_with_binary_errors(GErrorPanel *panel, GLoadedBinary *b
static void update_error_panel(const GErrorPanel *panel, GtkStatusStack *status, activity_id_t id, error_update_data *data)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkListStore *store; /* Modèle de gestion */
GBinFormat *format; /* Format du binaire */
size_t fcount; /* Quantité d'erreurs #1 */
@@ -543,7 +540,9 @@ static void update_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
bool ret; /* Bilan d'une récupération */
#endif
- store = GTK_LIST_STORE(gtk_builder_get_object(panel->builder, "store"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ store = GTK_LIST_STORE(gtk_builder_get_object(builder, "store"));
/* Recensement initial */
@@ -567,13 +566,13 @@ static void update_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
if (panel->binary == NULL || (fcount + pcount) == 0)
{
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "format"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "format"));
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "disass"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "disass"));
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "output"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "output"));
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
gtk_list_store_append(store, &iter);
@@ -595,15 +594,15 @@ static void update_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
else
{
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "format"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "format"));
gtk_widget_set_sensitive(GTK_WIDGET(button), TRUE);
show_format = gtk_toggle_button_get_active(button);
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "disass"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "disass"));
gtk_widget_set_sensitive(GTK_WIDGET(button), TRUE);
show_disass = gtk_toggle_button_get_active(button);
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "output"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "output"));
gtk_widget_set_sensitive(GTK_WIDGET(button), TRUE);
show_output = gtk_toggle_button_get_active(button);
@@ -794,6 +793,7 @@ static void on_error_filter_toggled(GtkToggleButton *button, GErrorPanel *panel)
static void filter_error_panel(const GErrorPanel *panel, GtkStatusStack *status, activity_id_t id, error_update_data *data)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeModel *store; /* Modèle de gestion */
GtkToggleButton *button; /* Bouton à manipuler */
gboolean show_format; /* Affichages liés au format */
@@ -805,17 +805,19 @@ static void filter_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
guint errno; /* Code d'erreur associé */
gboolean state; /* Bilan d'un filtrage */
- store = GTK_TREE_MODEL(gtk_builder_get_object(panel->builder, "store"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ store = GTK_TREE_MODEL(gtk_builder_get_object(builder, "store"));
/* Actualisation des données */
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "format"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "format"));
show_format = gtk_toggle_button_get_active(button);
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "disass"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "disass"));
show_disass = gtk_toggle_button_get_active(button);
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "output"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "output"));
show_output = gtk_toggle_button_get_active(button);
@@ -886,10 +888,13 @@ static void filter_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
static void update_error_panel_summary(const GErrorPanel *panel)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkLabel *summary; /* Etiquette à mettre à jour */
char *msg; /* Bilan à faire afficher */
- summary = GTK_LABEL(gtk_builder_get_object(panel->builder, "summary"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ summary = GTK_LABEL(gtk_builder_get_object(builder, "summary"));
if (panel->count == 0)
gtk_label_set_markup(summary, NULL);
@@ -1044,11 +1049,14 @@ static const char *g_error_panel_setup(const GErrorPanel *panel, unsigned int ui
static void g_error_panel_introduce(const GErrorPanel *panel, unsigned int uid, error_update_data *data)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeView *treeview; /* Arborescence graphique */
/* Basculement de l'affichage hors ligne */
- treeview = GTK_TREE_VIEW(gtk_builder_get_object(panel->builder, "treeview"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
data->model = gtk_tree_view_get_model(treeview);
g_object_ref(G_OBJECT(data->model));
@@ -1107,6 +1115,7 @@ static void g_error_panel_process(const GErrorPanel *panel, unsigned int uid, Gt
static void g_error_panel_conclude(GErrorPanel *panel, unsigned int uid, error_update_data *data)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeView *treeview; /* Arborescence graphique */
/* Mise à jour des statistiques */
@@ -1118,7 +1127,9 @@ static void g_error_panel_conclude(GErrorPanel *panel, unsigned int uid, error_u
/* Basculement de l'affichage en ligne */
- treeview = GTK_TREE_VIEW(gtk_builder_get_object(panel->builder, "treeview"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
gtk_tree_view_set_model(treeview, data->model);