From b4550d04f21db269666e4125593dd14503ccdc33 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 22 Feb 2011 17:23:10 +0100 Subject: gui-wizard-gtk: move data page to the fron1 Signed-off-by: Denys Vlasenko --- src/gui-gtk/abrt-gtk.c | 9 +- src/gui-wizard-gtk/main.c | 16 ++-- src/gui-wizard-gtk/wizard.c | 69 ++++++++------- src/gui-wizard-gtk/wizard.glade | 192 +++++++++++++++------------------------- src/gui-wizard-gtk/wizard.h | 11 +-- 5 files changed, 132 insertions(+), 165 deletions(-) (limited to 'src') diff --git a/src/gui-gtk/abrt-gtk.c b/src/gui-gtk/abrt-gtk.c index e3886fbd..140430b1 100644 --- a/src/gui-gtk/abrt-gtk.c +++ b/src/gui-gtk/abrt-gtk.c @@ -68,7 +68,6 @@ static void on_row_activated_cb(GtkTreeView *treeview, GtkTreePath *path, GtkTre { GtkTreeIter iter; GtkTreeModel *store = gtk_tree_view_get_model(treeview); - //gtk_tree_model_get_iter(store, &iter, path); if (gtk_tree_selection_get_selected(selection, &store, &iter) == TRUE) { GValue d_dir = { 0 }; @@ -79,7 +78,10 @@ static void on_row_activated_cb(GtkTreeView *treeview, GtkTreePath *path, GtkTre { /* Undo signal(SIGCHLD, SIG_IGN), or child inherits it and gets terribly confused */ signal(SIGCHLD, SIG_DFL); - execlp("bug-reporting-wizard", "bug-reporting-wizard", g_value_get_string(&d_dir), NULL); + + const char *dirname= g_value_get_string(&d_dir); + VERB1 log("Executing: %s %s", "bug-reporting-wizard", dirname); + execlp("bug-reporting-wizard", "bug-reporting-wizard", dirname, NULL); perror_msg_and_die("Can't execute %s", "bug-reporting-wizard"); } } @@ -105,7 +107,7 @@ static gint on_key_press_event_cb(GtkTreeView *treeview, GdkEventKey *key, gpoin gtk_tree_model_get_value(store, &iter, COLUMN_DUMP_DIR, &d_dir); const char *dump_dir_name = g_value_get_string(&d_dir); - g_print("CALL: del_event(%s)\n", dump_dir_name); + VERB1 log("Deleting '%s'", dump_dir_name); /* Try to delete it ourselves */ struct dump_dir *dd = dd_opendir(dump_dir_name, DD_OPEN_READONLY); @@ -120,6 +122,7 @@ static gint on_key_press_event_cb(GtkTreeView *treeview, GdkEventKey *key, gpoin } /* Ask abrtd to do it for us */ + VERB1 log("Deleting '%s' via abrtd dbus call", dump_dir_name); if (connect_to_abrtd_and_call_DeleteDebugDump(dump_dir_name) == 0) { deleted_ok: diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c index 983695db..5f062b41 100644 --- a/src/gui-wizard-gtk/main.c +++ b/src/gui-wizard-gtk/main.c @@ -30,6 +30,7 @@ static void remove_child_widget(GtkWidget *widget, gpointer container) static GtkWidget *add_event_buttons(GtkBox *box, char *event_name, GCallback func, bool radio) { +VERB2 log("removing all buttons from box %p", box); gtk_container_foreach(GTK_CONTAINER(box), &remove_child_widget, box); GtkWidget *first_button = NULL; @@ -38,6 +39,7 @@ static GtkWidget *add_event_buttons(GtkBox *box, char *event_name, GCallback fun char *event_name_end = strchr(event_name, '\n'); *event_name_end = '\0'; +VERB2 log("adding button '%s' to box %p", event_name, box); GtkWidget *button = radio ? gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(first_button), event_name) : gtk_check_button_new_with_label(event_name); @@ -60,13 +62,13 @@ static void append_item_to_details_ls(gpointer name, gpointer value, gpointer da crash_item *item = (crash_item*)value; GtkTreeIter iter; - gtk_list_store_append(g_details_ls, &iter); + gtk_list_store_append(g_ls_details, &iter); //FIXME: use the value representation here /* If text and not multiline... */ if ((item->flags & CD_FLAG_TXT) && !strchr(item->content, '\n')) { - gtk_list_store_set(g_details_ls, &iter, + gtk_list_store_set(g_ls_details, &iter, DETAIL_COLUMN_NAME, (char *)name, DETAIL_COLUMN_VALUE, item->content, //DETAIL_COLUMN_PATH, xasprintf("%s%s", g_dump_dir_name, name), @@ -74,9 +76,9 @@ static void append_item_to_details_ls(gpointer name, gpointer value, gpointer da } else { - gtk_list_store_set(g_details_ls, &iter, + gtk_list_store_set(g_ls_details, &iter, DETAIL_COLUMN_NAME, (char *)name, - DETAIL_COLUMN_VALUE, _("Content is too long, please use the \"View\" button to display it."), + DETAIL_COLUMN_VALUE, _("(click here to view/edit)"), //DETAIL_COLUMN_PATH, xasprintf("%s%s", g_dump_dir_name, name), -1); //WARNING: will leak xasprintf results above if uncommented @@ -95,15 +97,17 @@ void reload_dump_dir(void) g_cd = create_crash_data_from_dump_dir(dd); g_analyze_events = list_possible_events(dd, g_dump_dir_name, "analyze"); g_report_events = list_possible_events(dd, g_dump_dir_name, "report"); +VERB2 log("g_analyze_events:'%s'", g_analyze_events); +VERB2 log("g_report_events:'%s'", g_report_events); dd_close(dd); const char *reason = get_crash_item_content_or_NULL(g_cd, FILENAME_REASON); gtk_label_set_text(g_lbl_cd_reason, reason ? reason : _("(no description)")); - gtk_list_store_clear(g_details_ls); + gtk_list_store_clear(g_ls_details); g_hash_table_foreach(g_cd, append_item_to_details_ls, NULL); - GtkTextBuffer *backtrace_buf = gtk_text_view_get_buffer(g_backtrace_tv); + GtkTextBuffer *backtrace_buf = gtk_text_view_get_buffer(g_tv_backtrace); const char *bt = g_cd ? get_crash_item_content_or_NULL(g_cd, FILENAME_BACKTRACE) : NULL; gtk_text_buffer_set_text(backtrace_buf, bt ? bt : "", -1); diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c index 39c83090..63b63757 100644 --- a/src/gui-wizard-gtk/wizard.c +++ b/src/gui-wizard-gtk/wizard.c @@ -10,9 +10,9 @@ GtkLabel *g_lbl_analyze_log; GtkBox *g_box_analyzers; GtkBox *g_box_reporters; GtkTextView *g_analyze_log; -GtkTextView *g_backtrace_tv; -GtkTreeView *g_details_tv; -GtkListStore *g_details_ls; +GtkTextView *g_tv_backtrace; +GtkTreeView *g_tv_details; +GtkListStore *g_ls_details; static GtkWidget *assistant; static GtkBuilder *builder; @@ -31,23 +31,25 @@ static GtkBuilder *builder; * allows cheaper page_obj_t->name == PAGE_FOO comparisons * instead of strcmp. */ -static const gchar PAGE_ANALYZE_ACTION_SELECTOR[] = "page_1"; -static const gchar PAGE_ANALYZE_PROGRESS[] = "page_2"; -static const gchar PAGE_REPORTER_SELECTOR[] = "page_3"; -static const gchar PAGE_BACKTRACE_APPROVAL[] = "page_4"; -static const gchar PAGE_HOWTO[] = "page_5"; -static const gchar PAGE_SUMMARY[] = "page_6"; -static const gchar PAGE_REPORT[] = "page_7"; +static const gchar PAGE_SUMMARY[] = "page_0"; +static const gchar PAGE_ANALYZE_SELECTOR[] = "page_1"; +static const gchar PAGE_ANALYZE_PROGRESS[] = "page_2"; +static const gchar PAGE_REPORTER_SELECTOR[] = "page_3"; +static const gchar PAGE_BACKTRACE_APPROVAL[] = "page_4"; +static const gchar PAGE_HOWTO[] = "page_5"; +static const gchar PAGE_REPORT[] = "page_6"; +static const gchar PAGE_REPORT_PROGRESS[] = "page_7"; static const gchar *const page_names[] = { - PAGE_ANALYZE_ACTION_SELECTOR, + PAGE_SUMMARY, + PAGE_ANALYZE_SELECTOR, PAGE_ANALYZE_PROGRESS, PAGE_REPORTER_SELECTOR, PAGE_BACKTRACE_APPROVAL, PAGE_HOWTO, - PAGE_SUMMARY, PAGE_REPORT, + PAGE_REPORT_PROGRESS, NULL }; @@ -59,17 +61,21 @@ typedef struct GtkWidget *page_widget; } page_obj_t; -static page_obj_t pages[8] = +static page_obj_t pages[] = { + { PAGE_SUMMARY , "Problem description" , GTK_ASSISTANT_PAGE_CONTENT }, /* need this type to get "apply" signal */ - {PAGE_ANALYZE_ACTION_SELECTOR, "Select analyzer", GTK_ASSISTANT_PAGE_CONFIRM, NULL}, - {PAGE_ANALYZE_PROGRESS, "Analyzing reporter", GTK_ASSISTANT_PAGE_PROGRESS, NULL}, - {PAGE_REPORTER_SELECTOR, "Select reporter", GTK_ASSISTANT_PAGE_CONTENT, NULL}, - {PAGE_BACKTRACE_APPROVAL, "Approve the backtrace", GTK_ASSISTANT_PAGE_CONTENT, NULL}, - {PAGE_HOWTO, "Provide additional information", GTK_ASSISTANT_PAGE_CONTENT, NULL}, - {PAGE_SUMMARY, "Confirm and send the report", GTK_ASSISTANT_PAGE_CONFIRM, NULL}, - {PAGE_REPORT, "Approve the backtrace", GTK_ASSISTANT_PAGE_SUMMARY, NULL}, - {NULL} + { PAGE_ANALYZE_SELECTOR , "Select analyzer" , GTK_ASSISTANT_PAGE_CONFIRM }, + { PAGE_ANALYZE_PROGRESS , "Analyzing" , GTK_ASSISTANT_PAGE_PROGRESS }, + /* Some reporters don't need backtrace, we can skip bt page for them. + * Therefore we want to know reporters _before_ we go to bt page + */ + { PAGE_REPORTER_SELECTOR , "Select reporter" , GTK_ASSISTANT_PAGE_CONTENT }, + { PAGE_BACKTRACE_APPROVAL , "Review the backtrace" , GTK_ASSISTANT_PAGE_CONTENT }, + { PAGE_HOWTO , "Provide additional information", GTK_ASSISTANT_PAGE_CONTENT }, + { PAGE_REPORT , "Confirm data to report", GTK_ASSISTANT_PAGE_CONFIRM }, + { PAGE_REPORT_PROGRESS , "Reporting" , GTK_ASSISTANT_PAGE_PROGRESS }, + { NULL } }; @@ -162,7 +168,7 @@ static void next_page(GtkAssistant *assistant, gpointer user_data) int page_no = gtk_assistant_get_current_page(assistant); VERB2 log("page_no:%d", page_no); - if (page_no == PAGENO_ANALYZE_ACTION_SELECTOR + if (page_no == PAGENO_ANALYZE_SELECTOR && g_analyze_label_selected != NULL) { /* Start event asyncronously on the dump dir @@ -203,9 +209,8 @@ static void next_page(GtkAssistant *assistant, gpointer user_data) /* Initialization */ -static GtkTreeView *create_details_treeview() +static void create_details_treeview() { - GtkTreeView *details_tv = GTK_TREE_VIEW(gtk_builder_get_object(builder, "details_tv")); GtkCellRenderer *renderer; GtkTreeViewColumn *column; @@ -216,7 +221,7 @@ static GtkTreeView *create_details_treeview() DETAIL_COLUMN_NAME, NULL); gtk_tree_view_column_set_sort_column_id(column, DETAIL_COLUMN_NAME); - gtk_tree_view_append_column(details_tv, column); + gtk_tree_view_append_column(g_tv_details, column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Value"), @@ -224,7 +229,7 @@ static GtkTreeView *create_details_treeview() "text", DETAIL_COLUMN_VALUE, NULL); - gtk_tree_view_append_column(details_tv, column); + gtk_tree_view_append_column(g_tv_details, column); /* renderer = gtk_cell_renderer_text_new(); @@ -233,9 +238,8 @@ static GtkTreeView *create_details_treeview() "text", DETAIL_COLUMN_PATH, NULL); - gtk_tree_view_append_column(details_tv, column); + gtk_tree_view_append_column(g_tv_details, column); */ - return details_tv; } /* wizard.glade file as a string WIZARD_GLADE_CONTENTS: */ @@ -286,7 +290,8 @@ static void add_pages() g_box_analyzers = GTK_BOX(gtk_builder_get_object(builder, "vb_analyzers")); g_box_reporters = GTK_BOX(gtk_builder_get_object(builder, "vb_reporters")); g_analyze_log = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "analyze_log")); - g_backtrace_tv = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "bactrace_tev")); + 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")); } GtkWidget *create_assistant() @@ -302,9 +307,9 @@ GtkWidget *create_assistant() builder = gtk_builder_new(); add_pages(); - g_details_tv = create_details_treeview(); - g_details_ls = gtk_list_store_new(DETAIL_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); - gtk_tree_view_set_model(g_details_tv, GTK_TREE_MODEL(g_details_ls)); + create_details_treeview(); + 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); return assistant; diff --git a/src/gui-wizard-gtk/wizard.glade b/src/gui-wizard-gtk/wizard.glade index 35915904..62ab5bd5 100644 --- a/src/gui-wizard-gtk/wizard.glade +++ b/src/gui-wizard-gtk/wizard.glade @@ -2,6 +2,63 @@ + + 800 + 500 + + + True + vertical + + + 750 + True + 0 + 5 + True + + + + + + + + False + 0 + + + + + True + True + automatic + automatic + + + True + True + + + + + 1 + + + + + True + 1 + 5 + Use Forward button to analyze and report this problem + + + False + 2 + + + + + 800 500 @@ -13,47 +70,11 @@ 10 vertical - + True - vertical - - - True - 0 - A problem was detected on your computer: - True - - - 0 - - - - - 750 - True - 0 - True - - - - - - - - 1 - - - - - True - 0 - Select how you would like to analyze the problem: - True - - - 2 - - + 0 + Select how you would like to analyze the problem: + True 0 @@ -92,9 +113,9 @@ 750 True + 0 Analyzing did not start yet True - fill True @@ -113,7 +134,6 @@ True True False - word False @@ -137,9 +157,8 @@ 750 True - 0.05000000074505806 - 0.05000000074505806 - Select. where you would like to report the bug, and press 'Forward' to continue. + 0 + Select how you would like to report the problem: True fill True @@ -206,7 +225,7 @@ Please review the backtrace below and modify it as needed to ensure your bug rep automatic automatic - + True True word @@ -458,7 +477,7 @@ Please review the backtrace below and modify it as needed to ensure your bug rep True 1.1175871339474952e-09 0 - How did this crash happen (step-by-step)? How would you reproduce it? + How did this crash happen (step-by-step)? How can it be reproduced? False @@ -538,7 +557,7 @@ Please review the backtrace below and modify it as needed to ensure your bug rep 0 0 5 - <b>Tip:</b> Your comments are not private. Please watch what you say accordingly. + <b>Your comments are not private.</b> They may be included into publicly-visible problem reports. True @@ -561,9 +580,7 @@ Please review the backtrace below and modify it as needed to ensure your bug rep 750 True - 0.05000000074505806 - 0.05000000074505806 - Below are the information to be sent out, please review them. + Below is the information to be reported, please review it. fill True @@ -702,54 +719,7 @@ Please review the backtrace below and modify it as needed to ensure your bug rep - - True - True - - - True - vertical - - - True - True - automatic - automatic - - - True - True - - - - - 0 - - - - - View - True - True - True - - - False - 1 - - - - - - - True - Details - - - - - 2 - + @@ -763,16 +733,12 @@ Please review the backtrace below and modify it as needed to ensure your bug rep 10 vertical - + 750 True - 0.05000000074505806 - 0.05000000074505806 - Please wait until the problem is reported. - -You can see the progress in the window below. + 0 + Reporting did not start yet True - fill True @@ -786,13 +752,11 @@ You can see the progress in the window below. True 10 automatic - automatic - + True True False - word False @@ -801,16 +765,6 @@ You can see the progress in the window below. 1 - - - True - True - - - False - 2 - - diff --git a/src/gui-wizard-gtk/wizard.h b/src/gui-wizard-gtk/wizard.h index 1e263cde..af134f64 100644 --- a/src/gui-wizard-gtk/wizard.h +++ b/src/gui-wizard-gtk/wizard.h @@ -1,17 +1,18 @@ enum { - PAGENO_ANALYZE_ACTION_SELECTOR = 0, + PAGENO_SUMMARY, + PAGENO_ANALYZE_SELECTOR, PAGENO_ANALYZE_PROGRESS, PAGENO_REPORTER_SELECTOR, PAGENO_BACKTRACE_APPROVAL, PAGENO_HOWTO, - PAGENO_SUMMARY, PAGENO_REPORT, + PAGENO_REPORT_PROGRESS, }; extern GtkLabel *g_lbl_cd_reason; extern GtkLabel *g_lbl_analyze_log; extern GtkBox *g_box_analyzers; extern GtkBox *g_box_reporters; -extern GtkTextView *g_backtrace_tv; +extern GtkTextView *g_tv_backtrace; enum { DETAIL_COLUMN_NAME, @@ -19,8 +20,8 @@ enum //COLUMN_PATH, DETAIL_NUM_COLUMNS, }; -extern GtkTreeView *g_details_tv; -extern GtkListStore *g_details_ls; +extern GtkTreeView *g_tv_details; +extern GtkListStore *g_ls_details; GtkWidget *create_assistant(void); -- cgit