summaryrefslogtreecommitdiffstats
path: root/src/gui-wizard-gtk/wizard.c
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-02-24 13:55:15 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-02-24 13:55:15 +0100
commit1f73de4e422ffe046e3faf0e4fb7f5523a14ff2d (patch)
tree8c586c461d48d9407aec470c42620dd65a84b05d /src/gui-wizard-gtk/wizard.c
parente5cc6aec0dcdbb1ad1843bf9dfa7b853c80ed337 (diff)
downloadabrt-1f73de4e422ffe046e3faf0e4fb7f5523a14ff2d.tar.gz
abrt-1f73de4e422ffe046e3faf0e4fb7f5523a14ff2d.tar.xz
abrt-1f73de4e422ffe046e3faf0e4fb7f5523a14ff2d.zip
gui-wizard-gtk: make [Refresh] button work
Looks for reanalyze_FOO events, enables them on "Select analyzer" page and sends user go to that page to pick the [re]analyzer to run. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/gui-wizard-gtk/wizard.c')
-rw-r--r--src/gui-wizard-gtk/wizard.c44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 6598301a..73f093b2 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -20,7 +20,8 @@ GtkTreeView *g_tv_details;
GtkListStore *g_ls_details;
GtkWidget *g_widget_warnings_area;
GtkBox *g_box_warning_labels;
-GtkToggleButton * g_tb_approve_bt;
+GtkToggleButton *g_tb_approve_bt;
+GtkButton *g_btn_refresh;
static GtkBuilder *builder;
@@ -104,12 +105,6 @@ static void remove_child_widget(GtkWidget *widget, gpointer container)
}
-void on_b_refresh_clicked(GtkButton *button)
-{
- g_print("Refresh clicked!\n");
-}
-
-
/* update_gui_state_from_crash_data */
static void analyze_rb_was_toggled(GtkButton *button, gpointer user_data)
@@ -237,6 +232,11 @@ void update_gui_state_from_crash_data(void)
* We created new widgets (buttons). Need to make them visible.
*/
gtk_widget_show_all(GTK_WIDGET(g_assistant));
+
+ if (g_reanalyze_events[0])
+ gtk_widget_show(GTK_WIDGET(g_btn_refresh));
+ else
+ gtk_widget_hide(GTK_WIDGET(g_btn_refresh));
}
@@ -411,12 +411,13 @@ static void add_warning(const char *warning)
{
char *label_str = xasprintf("• %s", warning);
GtkWidget *warning_lbl = gtk_label_new(label_str);
+ /* should be safe to free it, gtk calls strdup() to copy it */
+ free(label_str);
+
gtk_misc_set_alignment(GTK_MISC(warning_lbl), 0.0, 0.0);
gtk_label_set_justify(GTK_LABEL(warning_lbl), GTK_JUSTIFY_LEFT);
gtk_box_pack_start(g_box_warning_labels, warning_lbl, false, false, 0);
gtk_widget_show(warning_lbl);
- /* should be safe to free it, gtk calls strdup() to copy it */
- free(label_str);
}
static void check_backtrace_and_allow_send(void)
@@ -475,6 +476,21 @@ static void on_bt_approve_toggle(GtkToggleButton *togglebutton, gpointer user_da
}
+/* Refresh button handling */
+
+void on_btn_refresh_clicked(GtkButton *button)
+{
+ g_analyze_events = append_to_malloced_string(g_analyze_events, g_reanalyze_events);
+ if (g_analyze_events[0])
+ {
+ /* Refresh GUI so that we see new analyze+reanalyze buttons */
+ update_gui_state_from_crash_data();
+ /* Let user play with them */
+ gtk_assistant_set_current_page(g_assistant, PAGENO_ANALYZE_SELECTOR);
+ }
+}
+
+
/* Page navigation handlers */
static void next_page(GtkAssistant *assistant, gpointer user_data)
@@ -661,9 +677,11 @@ static void add_pages(void)
g_tv_report_log = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "tv_report_log"));
g_tv_backtrace = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "tv_backtrace"));
g_tv_details = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tv_details"));
- g_box_warning_labels = GTK_BOX(gtk_builder_get_object(builder, "hb_warning_labels"));
+ g_box_warning_labels = GTK_BOX(gtk_builder_get_object(builder, "b_warning_labels"));
g_tb_approve_bt = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "cb_approve_bt"));
- g_widget_warnings_area = GTK_WIDGET(gtk_builder_get_object(builder, "hb_warnings_area"));
+ g_widget_warnings_area = GTK_WIDGET(gtk_builder_get_object(builder, "b_warnings_area"));
+ g_btn_refresh = GTK_BUTTON(gtk_builder_get_object(builder, "btn_refresh"));
+
///* hide the warnings by default */
//gtk_widget_hide(g_widget_warnings_area);
@@ -697,9 +715,11 @@ void create_assistant()
g_ls_details = gtk_list_store_new(DETAIL_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model(g_tv_details, GTK_TREE_MODEL(g_ls_details));
- gtk_builder_connect_signals(builder, NULL);
+// gtk_builder_connect_signals(builder, NULL);
g_signal_connect(g_tb_approve_bt, "toggled", G_CALLBACK(on_bt_approve_toggle), NULL);
+ g_signal_connect(g_btn_refresh, "clicked", G_CALLBACK(on_btn_refresh_clicked), NULL);
+
gtk_assistant_set_page_complete(g_assistant,
pages[PAGENO_BACKTRACE_APPROVAL].page_widget,
gtk_toggle_button_get_active(g_tb_approve_bt)