From c75f9ef6ab690931a48d01b9f07c0418e3e2c5d2 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Wed, 9 May 2012 18:45:30 +0200 Subject: handle errors when displaying manual introduced helper function for displaying GErrors in a message box --- src/experiment-player.h | 1 + src/main.c | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/experiment-player.h b/src/experiment-player.h index 9fb2faa..5797801 100644 --- a/src/experiment-player.h +++ b/src/experiment-player.h @@ -4,6 +4,7 @@ #include gboolean load_media_file(const gchar *file); +void show_message_dialog_gerror(GError *err); extern GtkWidget *player_window; diff --git a/src/main.c b/src/main.c index 6d4fcfc..e616491 100644 --- a/src/main.c +++ b/src/main.c @@ -8,6 +8,8 @@ #include #endif +#include + #include #include @@ -87,7 +89,12 @@ void help_menu_manual_item_activate_cb(GtkWidget *widget __attribute__((unused)), gpointer data __attribute__((unused))) { - gtk_show_uri(NULL, HELP_URI, GDK_CURRENT_TIME, NULL); + GError *err = NULL; + + if (!gtk_show_uri(NULL, HELP_URI, GDK_CURRENT_TIME, &err)) { + show_message_dialog_gerror(err); + g_error_free(err); + } } void @@ -123,6 +130,24 @@ load_media_file(const gchar *file) return FALSE; } +void +show_message_dialog_gerror(GError *err) +{ + GtkWidget *dialog; + + if (err == NULL) + return; + + dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s", err->message); + gtk_window_set_title(GTK_WINDOW(dialog), "Error"); + + gtk_dialog_run(GTK_DIALOG(dialog)); + + gtk_widget_destroy(dialog); +} + int main(int argc, char *argv[]) { -- cgit v1.2.3