diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2011-02-25 18:25:40 +0100 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2011-02-25 18:25:40 +0100 |
commit | 1bbf4c784aa9fda4d137013ea584874d56d45a33 (patch) | |
tree | 237caf179b6984a688187982e25897c1759b15ce /src/gui-wizard-gtk/wizard.c | |
parent | c00b15ff52f89ada9770453580e5828fd466e9c5 (diff) | |
download | abrt-1bbf4c784aa9fda4d137013ea584874d56d45a33.tar.gz abrt-1bbf4c784aa9fda4d137013ea584874d56d45a33.tar.xz abrt-1bbf4c784aa9fda4d137013ea584874d56d45a33.zip |
gui-wizard-gtk: show error messages as msg boxes
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.c | 33 |
1 files changed, 27 insertions, 6 deletions
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; |