diff options
author | Karel Klic <kklic@redhat.com> | 2011-03-14 12:20:23 +0100 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2011-03-14 12:20:23 +0100 |
commit | 3193c4a31ab218d99e0fb75790198d927bdaa991 (patch) | |
tree | 143c92ca5fd69332b4f161e15ab4ddf425795d9d /src | |
parent | 9d615fa67c1181727c81a4671f5d92e3100ecd40 (diff) | |
parent | 6d1f476a71a9c61a90f49edda008ae3c2a340d65 (diff) | |
download | abrt-3193c4a31ab218d99e0fb75790198d927bdaa991.tar.gz abrt-3193c4a31ab218d99e0fb75790198d927bdaa991.tar.xz abrt-3193c4a31ab218d99e0fb75790198d927bdaa991.zip |
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src')
-rw-r--r-- | src/gui-gtk/abrt-gtk.c | 2 | ||||
-rw-r--r-- | src/gui-wizard-gtk/main.c | 8 | ||||
-rw-r--r-- | src/gui-wizard-gtk/wizard.c | 266 | ||||
-rw-r--r-- | src/gui-wizard-gtk/wizard.glade | 36 | ||||
-rw-r--r-- | src/gui-wizard-gtk/wizard.h | 26 | ||||
-rw-r--r-- | src/include/report/crash_data.h | 3 | ||||
-rw-r--r-- | src/lib/crash_data.c | 8 | ||||
-rw-r--r-- | src/lib/event_xml_parser.c | 28 | ||||
-rw-r--r-- | src/plugins/analyze_RetraceServer.xml | 2 | ||||
-rw-r--r-- | src/plugins/report_Bugzilla.xml | 4 |
10 files changed, 206 insertions, 177 deletions
diff --git a/src/gui-gtk/abrt-gtk.c b/src/gui-gtk/abrt-gtk.c index 99b6f41f..680c2209 100644 --- a/src/gui-gtk/abrt-gtk.c +++ b/src/gui-gtk/abrt-gtk.c @@ -344,7 +344,7 @@ GtkWidget *create_main_window(void) /* buttons are homogenous so set size only for one button and it will * work for the rest buttons in same gtk_hbox_new() */ - GtkWidget *btn_report = gtk_button_new_with_mnemonic(_("_Report")); + GtkWidget *btn_report = gtk_button_new_with_mnemonic(_("O_pen")); gtk_widget_set_size_request(btn_report, 200, 30); GtkWidget *btn_delete = gtk_button_new_from_stock(GTK_STOCK_DELETE); diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c index 85f962cd..23ff0699 100644 --- a/src/gui-wizard-gtk/main.c +++ b/src/gui-wizard-gtk/main.c @@ -7,7 +7,6 @@ char *g_glade_file = NULL; char *g_dump_dir_name = NULL; -char *g_analyze_label_selected = NULL; char *g_analyze_events = NULL; char *g_reanalyze_events = NULL; char *g_report_events = NULL; @@ -24,11 +23,18 @@ void reload_crash_data_from_dump_dir(void) struct dump_dir *dd = dd_opendir(g_dump_dir_name, DD_OPEN_READONLY); if (!dd) xfunc_die(); /* dd_opendir already logged error msg */ + g_cd = create_crash_data_from_dump_dir(dd); + add_to_crash_data_ext(g_cd, CD_DUMPDIR, g_dump_dir_name, CD_FLAG_TXT + CD_FLAG_ISNOTEDITABLE); + g_analyze_events = list_possible_events(dd, NULL, "analyze"); g_reanalyze_events = list_possible_events(dd, NULL, "reanalyze"); g_report_events = list_possible_events(dd, NULL, "report"); dd_close(dd); + + /* Load /etc/abrt/events/foo.{conf,xml} stuff */ + load_event_config_data(); +//TODO: load overrides from keyring? Load ~/.abrt/events/foo.conf? } int main(int argc, char **argv) diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c index 36fe2cc3..6b58739e 100644 --- a/src/gui-wizard-gtk/wizard.c +++ b/src/gui-wizard-gtk/wizard.c @@ -6,33 +6,42 @@ #define DEFAULT_WIDTH 800 #define DEFAULT_HEIGHT 500 -GtkAssistant *g_assistant; - -GtkBox *g_box_analyzers; -GtkLabel *g_lbl_analyze_log; -GtkTextView *g_tv_analyze_log; -GtkBox *g_box_reporters; -GtkLabel *g_lbl_report_log; -GtkTextView *g_tv_report_log; -GtkContainer *g_container_details1; -GtkContainer *g_container_details2; - -GtkLabel *g_lbl_cd_reason; -GtkLabel *g_lbl_dirname; -GtkTextView *g_tv_backtrace; -GtkTextView *g_tv_comment; -GtkTreeView *g_tv_details; -GtkListStore *g_ls_details; -GtkWidget *g_widget_warnings_area; -GtkBox *g_box_warning_labels; -GtkToggleButton *g_tb_approve_bt; -GtkButton *g_btn_refresh; - -GtkLabel *g_lbl_reporters; -GtkLabel *g_lbl_size; - - -/* required for search in bt */ +static GtkAssistant *g_assistant; + +static char *g_analyze_label_selected; + +static GtkBox *g_box_analyzers; +static GtkLabel *g_lbl_analyze_log; +static GtkTextView *g_tv_analyze_log; +static GtkBox *g_box_reporters; +static GtkLabel *g_lbl_report_log; +static GtkTextView *g_tv_report_log; +static GtkContainer *g_container_details1; +static GtkContainer *g_container_details2; + +static GtkLabel *g_lbl_cd_reason; +static GtkTextView *g_tv_backtrace; +static GtkTextView *g_tv_comment; +static GtkTreeView *g_tv_details; +static GtkWidget *g_widget_warnings_area; +static GtkBox *g_box_warning_labels; +static GtkToggleButton *g_tb_approve_bt; +static GtkButton *g_btn_refresh; + +static GtkLabel *g_lbl_reporters; +static GtkLabel *g_lbl_size; + +static GtkCellRenderer *g_tv_details_col2; +static GtkListStore *g_ls_details; +enum +{ + DETAIL_COLUMN_NAME, + DETAIL_COLUMN_VALUE, + //COLUMN_PATH, + DETAIL_NUM_COLUMNS, +}; + +/* Search in bt */ static guint g_timeout = 0; static GtkEntry *g_search_entry_bt; @@ -49,6 +58,16 @@ static PangoFontDescription *monospace_font; * page_6: summary * page_7: reporting progress */ +enum { + PAGENO_SUMMARY, + PAGENO_COMMENT, + PAGENO_ANALYZE_SELECTOR, + PAGENO_ANALYZE_PROGRESS, + PAGENO_REPORTER_SELECTOR, + PAGENO_BACKTRACE_APPROVAL, + PAGENO_REPORT, + PAGENO_REPORT_PROGRESS, +}; /* Use of arrays (instead of, say, #defines to C strings) * allows cheaper page_obj_t->name == PAGE_FOO comparisons @@ -171,7 +190,6 @@ struct dump_dir *steal_if_needed(struct dump_dir *dd) dd_close(dd); gtk_window_set_title(GTK_WINDOW(g_assistant), g_dump_dir_name); - gtk_label_set_text(g_lbl_dirname, g_dump_dir_name); delete_dump_dir_possibly_using_abrtd(old_name); //TODO: if (deletion_failed) error_msg("BAD")? free(old_name); @@ -255,33 +273,115 @@ static void append_to_textview(GtkTextView *tv, const char *str, int len) } +/* tv_details handling */ + +static void tv_details_row_activated( + GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + gpointer user_data) +{ + GtkTreeModel *model; + GtkTreeIter iter; + GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view); + if (!gtk_tree_selection_get_selected(selection, &model, &iter)) + return; + + gchar *column_name; + gtk_tree_model_get(model, &iter, DETAIL_COLUMN_NAME, &column_name, -1); + struct crash_item *item = get_crash_data_item_or_NULL(g_cd, column_name); + if (!item || !(item->flags & CD_FLAG_TXT)) + return; + if (item->flags & CD_FLAG_ONELINE) + return; + + gchar *arg[3]; + arg[0] = (char *) "xdg-open"; + arg[1] = concat_path_file(g_dump_dir_name, column_name); + arg[2] = NULL; + g_free(column_name); + + g_spawn_sync(NULL, arg, NULL, + G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, + NULL, NULL, NULL, NULL, NULL, NULL); + + free(arg[1]); +} + +/* static gboolean tv_details_select_cursor_row( + GtkTreeView *tree_view, + gboolean arg1, + gpointer user_data) {...} */ + +static void tv_details_cursor_changed( + GtkTreeView *tree_view, + gpointer user_data) +{ + GtkTreeModel *model; + GtkTreeIter iter; + GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view); + if (!gtk_tree_selection_get_selected(selection, &model, &iter)) + return; + + gchar *column_name; + gtk_tree_model_get(model, &iter, DETAIL_COLUMN_NAME, &column_name, -1); + struct crash_item *item = get_crash_data_item_or_NULL(g_cd, column_name); + + gboolean editable = (item && (item->flags & (CD_FLAG_TXT|CD_FLAG_ONELINE)) == (CD_FLAG_TXT|CD_FLAG_ONELINE)); + + /* Allow user to select the text with mouse. + * Has undesirable side-effect of allowing user to "edit" the text, + * but changes aren't saved (the old text reappears as soon as user + * leaves the field). Need to disable editing somehow. + */ + g_object_set(G_OBJECT(g_tv_details_col2), + "editable", editable, + // "editable-set", editable, + NULL); +} + + /* update_gui_state_from_crash_data */ static void analyze_rb_was_toggled(GtkButton *button, gpointer user_data) { - const char *label = gtk_button_get_label(button); - if (label) + const char *event_name = gtk_widget_get_tooltip_text(GTK_WIDGET(button)); + if (event_name) { free(g_analyze_label_selected); - g_analyze_label_selected = xstrdup(label); + g_analyze_label_selected = xstrdup(event_name); } } -static void report_tb_was_toggled(GtkButton *button, gpointer user_data) +static void report_tb_was_toggled(GtkButton *button_unused, gpointer user_data_unused) { + struct strbuf *reporters_string = strbuf_new(); GList *reporters = gtk_container_get_children(GTK_CONTAINER(g_box_reporters)); GList *li = reporters; if (reporters) { for (; li; li = li->next) + { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(li->data)) == TRUE) - break; + { + const char *event_name = gtk_widget_get_tooltip_text(GTK_WIDGET(li->data)); + strbuf_append_strf(reporters_string, + "%s%s", + (reporters_string->len != 0 ? ", " : ""), + event_name + ); + } + } } g_list_free(reporters); + gtk_assistant_set_page_complete(g_assistant, pages[PAGENO_REPORTER_SELECTOR].page_widget, - li != NULL /* true if at least one checkbox is active */ + reporters_string->len != 0 /* true if at least one checkbox is active */ ); + + /* Update "list of reporters" label */ + gtk_label_set_text(g_lbl_reporters, strbuf_free_nobuf(reporters_string)); } static GtkWidget *add_event_buttons(GtkBox *box, char *event_name, GCallback func, bool radio, const char *prev_selected) @@ -296,12 +396,37 @@ VERB2 log("removing all buttons from box %p", box); char *event_name_end = strchr(event_name, '\n'); *event_name_end = '\0'; + /* Form a pretty text representation of event */ + /* By default, use event name, just strip "foo_" prefix if it exists: */ + const char *event_screen_name = strchr(event_name, '_'); + if (event_screen_name) + event_screen_name++; + else + event_screen_name = event_name; + const char *event_description = NULL; + event_config_t *cfg = g_hash_table_lookup(g_event_config_list, event_name); + if (cfg) + { + /* .xml has (presumably) prettier description, use it: */ + if (cfg->screen_name) + event_screen_name = cfg->screen_name; + event_description = cfg->description; + } + char *event_label = xasprintf("%s%s%s", + event_screen_name, + (event_description ? " - " : ""), + event_description ? event_description : "" + ); + 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); + ? gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(first_button), event_label) + : gtk_check_button_new_with_label(event_label); if (!first_button) first_button = button; + free(event_label); + /* Important: tooltip isn't used merely as decoration. We retrieve event name in the toggle handlers! */ + gtk_widget_set_tooltip_text(button, event_name); if (prev_selected && strcmp(prev_selected, event_name) == 0) { @@ -326,39 +451,6 @@ struct cd_stats { unsigned filecount; }; -static void tv_details_edit_cb(GtkTreeView *tree_view, - GtkTreePath *path, - GtkTreeViewColumn *column, - gpointer user_data) -{ - GtkTreeModel *model; - GtkTreeIter iter; - GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view); - if (!gtk_tree_selection_get_selected(selection, &model, &iter)) - return; - - gchar *column_name; - gtk_tree_model_get(model, &iter, DETAIL_COLUMN_NAME, &column_name, -1); - struct crash_item *item = get_crash_data_item_or_NULL(g_cd, column_name); - if (!item || !IS_TXT(item->flags)) - return; - - if (item && IS_ONELINE(item->flags)) - return; - - gchar *arg[3]; - arg[0] = (char *) "xdg-open"; - arg[1] = concat_path_file(g_dump_dir_name, column_name); - arg[2] = NULL; - g_free(column_name); - - g_spawn_sync(NULL, arg, NULL, - G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, - NULL, NULL, NULL, NULL, NULL, NULL); - - free(arg[1]); -} - static void append_item_to_ls_details(gpointer name, gpointer value, gpointer data) { crash_item *item = (crash_item*)value; @@ -410,7 +502,6 @@ static void append_item_to_ls_details(gpointer name, gpointer value, gpointer da void update_gui_state_from_crash_data(void) { gtk_window_set_title(GTK_WINDOW(g_assistant), g_dump_dir_name); - gtk_label_set_text(g_lbl_dirname, g_dump_dir_name); 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)")); @@ -425,13 +516,6 @@ void update_gui_state_from_crash_data(void) load_text_to_text_view(g_tv_backtrace, FILENAME_BACKTRACE); load_text_to_text_view(g_tv_comment, FILENAME_COMMENT); -//Doesn't work: shows empty page -// if (!g_analyze_events[0]) -// { -// /* No available analyze events, go to reporter selector page */ -// gtk_assistant_set_current_page(GTK_ASSISTANT(assistant), PAGENO_REPORTER_SELECTOR); -// } - /* Update analyze radio buttons */ GtkWidget *first_rb = add_event_buttons(g_box_analyzers, g_analyze_events, G_CALLBACK(analyze_rb_was_toggled), /*radio:*/ true, /*prev:*/ g_analyze_label_selected); /* Update the value of currently selected analyzer */ @@ -460,13 +544,10 @@ void update_gui_state_from_crash_data(void) add_event_buttons(g_box_reporters, g_report_events, /*callback:*/ G_CALLBACK(report_tb_was_toggled), /*radio:*/ false, /*prev:*/ NULL); /* Re-select new reporters which were selected before we deleted them */ GList *new_reporters = gtk_container_get_children(GTK_CONTAINER(g_box_reporters)); - struct strbuf *reporters_string = strbuf_new(); for (GList *li_new = new_reporters; li_new; li_new = li_new->next) { const char *new_name = gtk_button_get_label(GTK_BUTTON(li_new->data)); - strbuf_append_strf(reporters_string, "%s%s", (reporters_string->len ? ", " : ""), new_name); - for (GList *li_old = old_reporters; li_old; li_old = li_old->next) { if (strcmp(new_name, li_old->data) == 0) @@ -478,11 +559,9 @@ void update_gui_state_from_crash_data(void) } g_list_free(new_reporters); list_free_with_free(old_reporters); - /* Update "list of reporters" label */ - gtk_label_set_text(g_lbl_reporters, strbuf_free_nobuf(reporters_string)); - /* Update readiness state of reporter selector page */ - report_tb_was_toggled(NULL, NULL); + /* Update readiness state of reporter selector page and "list of reporters" label */ + report_tb_was_toggled(NULL, NULL); /* We can't just do gtk_widget_show_all once in main: * We created new widgets (buttons). Need to make them visible. @@ -971,19 +1050,7 @@ static void create_details_treeview() gtk_tree_view_column_set_sort_column_id(column, DETAIL_COLUMN_NAME); gtk_tree_view_append_column(g_tv_details, column); - renderer = gtk_cell_renderer_text_new(); - /* Allow user to select the text with mouse. - * Has undesirable side-effect of allowing user to "edit" the text, - * but changes aren't saved (the old text reappears as soon as user - * leaves the field). Need to disable editing somehow. - * Also, it interferes with "(click here to view/edit)" values. - * Need to find a way to _selectively_ enable editing only - * on some cells, not all at once. - */ - //g_object_set(G_OBJECT(renderer), - // "editable", TRUE, - // // "editable-set", TRUE, - // NULL); + g_tv_details_col2 = renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Value"), renderer, "text", @@ -1049,7 +1116,6 @@ static void add_pages(void) } /* Set pointers to objects we might need to work with */ g_lbl_cd_reason = GTK_LABEL( gtk_builder_get_object(builder, "lbl_cd_reason")); - g_lbl_dirname = GTK_LABEL( gtk_builder_get_object(builder, "lbl_dirname")); g_box_analyzers = GTK_BOX( gtk_builder_get_object(builder, "vb_analyzers")); g_lbl_analyze_log = GTK_LABEL( gtk_builder_get_object(builder, "lbl_analyze_log")); g_tv_analyze_log = GTK_TEXT_VIEW( gtk_builder_get_object(builder, "tv_analyze_log")); @@ -1111,7 +1177,9 @@ void create_assistant() 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); - g_signal_connect(g_tv_details, "row-activated", G_CALLBACK(tv_details_edit_cb), NULL); + g_signal_connect(g_tv_details, "row-activated", G_CALLBACK(tv_details_row_activated), NULL); + /* [Enter] on a row: g_signal_connect(g_tv_details, "select-cursor-row", G_CALLBACK(tv_details_select_cursor_row), NULL); */ + g_signal_connect(g_tv_details, "cursor-changed", G_CALLBACK(tv_details_cursor_changed), NULL); /* init searching */ GtkTextBuffer *backtrace_buf = gtk_text_view_get_buffer(g_tv_backtrace); diff --git a/src/gui-wizard-gtk/wizard.glade b/src/gui-wizard-gtk/wizard.glade index bfa0be67..fa9f15ed 100644 --- a/src/gui-wizard-gtk/wizard.glade +++ b/src/gui-wizard-gtk/wizard.glade @@ -40,38 +40,6 @@ </packing> </child> <child> - <object class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <child> - <object class="GtkLabel" id="label13"> - <property name="visible">True</property> - <property name="ypad">5</property> - <property name="label" translatable="yes">Problem data is stored in:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="lbl_dirname"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="xpad">5</property> - <property name="ypad">5</property> - <property name="selectable">True</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">2</property> - </packing> - </child> - <child> <object class="GtkExpander" id="expander1"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -97,7 +65,7 @@ </child> </object> <packing> - <property name="position">3</property> + <property name="position">2</property> </packing> </child> </object> @@ -492,7 +460,7 @@ <property name="width_request">750</property> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Click 'Forward' to start reporting</property> + <property name="label" translatable="yes">Click 'Apply' to start reporting</property> <property name="justify">fill</property> <property name="wrap">True</property> </object> diff --git a/src/gui-wizard-gtk/wizard.h b/src/gui-wizard-gtk/wizard.h index 00884b21..322b338f 100644 --- a/src/gui-wizard-gtk/wizard.h +++ b/src/gui-wizard-gtk/wizard.h @@ -1,28 +1,3 @@ -enum { - PAGENO_SUMMARY, - PAGENO_COMMENT, - PAGENO_ANALYZE_SELECTOR, - PAGENO_ANALYZE_PROGRESS, - PAGENO_REPORTER_SELECTOR, - PAGENO_BACKTRACE_APPROVAL, - PAGENO_REPORT, - PAGENO_REPORT_PROGRESS, -}; -extern GtkAssistant *g_assistant; -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_tv_backtrace; -enum -{ - DETAIL_COLUMN_NAME, - DETAIL_COLUMN_VALUE, - //COLUMN_PATH, - DETAIL_NUM_COLUMNS, -}; -extern GtkTreeView *g_tv_details; -extern GtkListStore *g_ls_details; void create_assistant(void); void update_gui_state_from_crash_data(void); void show_error_as_msgbox(const char *msg); @@ -30,7 +5,6 @@ void show_error_as_msgbox(const char *msg); extern char *g_glade_file; extern char *g_dump_dir_name; -extern char *g_analyze_label_selected; extern char *g_analyze_events; extern char *g_reanalyze_events; extern char *g_report_events; diff --git a/src/include/report/crash_data.h b/src/include/report/crash_data.h index 2dfdb242..3813cabf 100644 --- a/src/include/report/crash_data.h +++ b/src/include/report/crash_data.h @@ -35,9 +35,6 @@ enum { CD_FLAG_ONELINE = (1 << 4), }; -#define IS_TXT(flag) ((flag) & CD_FLAG_TXT) -#define IS_ONELINE(flag) ((flag) & CD_FLAG_ONELINE) - struct crash_item { char *content; unsigned flags; diff --git a/src/lib/crash_data.c b/src/lib/crash_data.c index 7f23c52f..a3ba3fb6 100644 --- a/src/lib/crash_data.c +++ b/src/lib/crash_data.c @@ -42,9 +42,13 @@ void add_to_crash_data_ext(crash_data_t *crash_data, const char *content, unsigned flags) { - if (!(flags & (CD_FLAG_BIN|CD_FLAG_TXT))) + if (!(flags & CD_FLAG_BIN)) + { flags |= CD_FLAG_TXT; - if (!(flags & (CD_FLAG_ISEDITABLE|CD_FLAG_ISNOTEDITABLE))) + if (!strchr(content, '\n')) + flags |= CD_FLAG_ONELINE; + } + if (!(flags & CD_FLAG_ISEDITABLE)) flags |= CD_FLAG_ISNOTEDITABLE; struct crash_item *item = (struct crash_item *)xzalloc(sizeof(*item)); diff --git a/src/lib/event_xml_parser.c b/src/lib/event_xml_parser.c index c144d845..f24606e0 100644 --- a/src/lib/event_xml_parser.c +++ b/src/lib/event_xml_parser.c @@ -1,13 +1,14 @@ #include "abrtlib.h" #include "event_config.h" -#define EVENT_ELEMENT "event" -#define LABEL_ELEMENT "label" -#define DESCRIPTION_ELEMENT "description" -#define ALLOW_EMPTY_ELEMENT "allow-empty" -#define OPTION_ELEMENT "option" -//#define ACTION_ELEMENT "action" -#define NAME_ELEMENT "name" +#define EVENT_ELEMENT "event" +#define LABEL_ELEMENT "label" +#define DESCRIPTION_ELEMENT "description" +#define ALLOW_EMPTY_ELEMENT "allow-empty" +#define OPTION_ELEMENT "option" +//#define ACTION_ELEMENT "action" +#define NAME_ELEMENT "name" +#define DEFAULT_VALUE_ELEMENT "default-value" struct my_parse_data { @@ -156,6 +157,19 @@ static void text(GMarkupParseContext *context, return; } /* + * we can add a separate filed for the default value + * in that case we can implement features like "reset to default value" + * but for now using "value" should be enough and clients doesn't + * have to know about the "defaul-value" + */ + if (strcmp(inner_element, DEFAULT_VALUE_ELEMENT) == 0) + { + VERB2 log("default value:'%s'", text_copy); + free(opt->value); + opt->value = text_copy; + return; + } + /* if (strcmp(inner_element, DESCRIPTION_ELEMENT) == 0) { VERB2 log("tooltip:'%s'", text_copy); diff --git a/src/plugins/analyze_RetraceServer.xml b/src/plugins/analyze_RetraceServer.xml index ee28f28d..9e9cc6ec 100644 --- a/src/plugins/analyze_RetraceServer.xml +++ b/src/plugins/analyze_RetraceServer.xml @@ -5,7 +5,7 @@ <options> <option type="text" name="RETRACE_SERVER_URL"> <label>Retrace server URL</label> - <default-value>retrace01.fedoraproject.org</default-value> + <default-value>retrace01.fedoraproject.org</default-value> <allow-empty>no</allow-empty> <description>Address of the retrace server</description> </option> diff --git a/src/plugins/report_Bugzilla.xml b/src/plugins/report_Bugzilla.xml index bc8e8ecb..0cd1891a 100644 --- a/src/plugins/report_Bugzilla.xml +++ b/src/plugins/report_Bugzilla.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <event> <name>Bugzilla</name> - <action>Report this problem to the Red Hat bug tracker</action> - <description>Reports selected problems to the Red Hat bug tracker</description> + <description>Report to Red Hat bug tracker</description> <options> <option type="text" name="Bugzilla_BugzillaURL"> <label>Bugzilla URL</label> @@ -27,4 +26,3 @@ </option> </options> </event> - |