diff options
author | Jiri Moskovcak <jmoskovc@redhat.com> | 2011-04-17 17:12:45 +0200 |
---|---|---|
committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2011-04-17 17:12:45 +0200 |
commit | 66fb696b1d498fdb335d7ed585b39be5d6771723 (patch) | |
tree | 8f0b37e9dc37d058c9a61938a9d25f8e7c84146e /src/gtk-helpers/event_config_dialog.c | |
parent | 2e1c4aa678a0191c011daef206e72016f94d1dc1 (diff) | |
download | abrt-66fb696b1d498fdb335d7ed585b39be5d6771723.tar.gz abrt-66fb696b1d498fdb335d7ed585b39be5d6771723.tar.xz abrt-66fb696b1d498fdb335d7ed585b39be5d6771723.zip |
wizard: warn user if the plugin configuration is wrong trac#156
Diffstat (limited to 'src/gtk-helpers/event_config_dialog.c')
-rw-r--r-- | src/gtk-helpers/event_config_dialog.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c index 6882ac25..b15c659c 100644 --- a/src/gtk-helpers/event_config_dialog.c +++ b/src/gtk-helpers/event_config_dialog.c @@ -22,6 +22,7 @@ static GtkWindow *g_event_list_window; static GList *option_widget_list; +GtkWindow *g_parent_window; enum { @@ -416,3 +417,35 @@ void show_events_list_dialog(GtkWindow *parent) gtk_widget_show_all(event_list_window); } + +void show_event_opt_error_dialog(const char *event_name) +{ + event_config_t *ec = get_event_config(event_name); + char *message = xasprintf(_("Wrong settings detected for %s, " + "reporting will probably fail if you continue " + "with the current configuration."), + ec->screen_name); + char *markup_message = xasprintf(_("Wrong settings detected for <b>%s</b>, " + "reporting will probably fail if you continue " + "with the current configuration."), + ec->screen_name); + GtkWidget *wrong_settings = gtk_message_dialog_new(g_parent_window, + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CLOSE, + message); + gtk_window_set_transient_for(GTK_WINDOW(wrong_settings), g_parent_window); + free(message); + gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(wrong_settings), + markup_message); + free(markup_message); + gtk_dialog_run(GTK_DIALOG(wrong_settings)); + gtk_widget_destroy(wrong_settings); +} + +void g_validate_event(const char* event_name) +{ + GHashTable *errors = validate_event(event_name); + if (errors != NULL) + show_event_opt_error_dialog(event_name); +} |