From 1bbf4c784aa9fda4d137013ea584874d56d45a33 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 25 Feb 2011 18:25:40 +0100 Subject: gui-wizard-gtk: show error messages as msg boxes Signed-off-by: Denys Vlasenko --- src/gui-wizard-gtk/wizard.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'src/gui-wizard-gtk/wizard.c') diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c index 747bca43..f0e83817 100644 --- a/src/gui-wizard-gtk/wizard.c +++ b/src/gui-wizard-gtk/wizard.c @@ -122,9 +122,8 @@ static void save_dialog_response(GtkDialog *dialog, gint response_id, gpointer u struct dump_dir *steal_if_needed(struct dump_dir *dd) { -//FIXME: show error dialog? if (!dd) - xfunc_die(); + xfunc_die(); /* error msg was already logged */ if (dd->locked) return dd; @@ -155,17 +154,39 @@ struct dump_dir *steal_if_needed(struct dump_dir *dd) dd = steal_directory(HOME, g_dump_dir_name); if (!dd) -//FIXME: show error dialog? - return NULL; - - delete_dump_dir_possibly_using_abrtd(g_dump_dir_name); + return NULL; /* Stealing failed. Error msg was already logged */ + /* Delete old dir and switch to new one. + * Don't want to keep new dd open across deletion, + * therefore it's a bit more complicated. + */ + char *old_name = g_dump_dir_name; g_dump_dir_name = xstrdup(dd->dd_dir); + dd_close(dd); + gtk_window_set_title(GTK_WINDOW(g_assistant), g_dump_dir_name); + delete_dump_dir_possibly_using_abrtd(old_name); //TODO: if (deletion_failed) error_msg("BAD")? + free(old_name); + + dd = dd_opendir(g_dump_dir_name, 0); + if (!dd) + xfunc_die(); /* error msg was already logged */ return dd; } +void show_error_as_msgbox(const char *msg) +{ + GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(g_assistant), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CLOSE, + "%s", msg + ); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); +} + static void load_text_to_text_view(GtkTextView *tv, const char *name) { const char *str = g_cd ? get_crash_item_content_or_NULL(g_cd, name) : NULL; -- cgit