diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-05-09 18:45:30 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-05-09 18:45:30 +0200 |
commit | c75f9ef6ab690931a48d01b9f07c0418e3e2c5d2 (patch) | |
tree | c23fd6af3aca5bb6626325bda28611db65bff28f /src | |
parent | 23fb72d1b80288b37cfac54bcc1b334d8ff0f460 (diff) | |
download | gtk-vlc-player-c75f9ef6ab690931a48d01b9f07c0418e3e2c5d2.tar.gz |
handle errors when displaying manual
introduced helper function for displaying GErrors in a message box
Diffstat (limited to 'src')
-rw-r--r-- | src/experiment-player.h | 1 | ||||
-rw-r--r-- | src/main.c | 27 |
2 files changed, 27 insertions, 1 deletions
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 <gtk/gtk.h> gboolean load_media_file(const gchar *file); +void show_message_dialog_gerror(GError *err); extern GtkWidget *player_window; @@ -8,6 +8,8 @@ #include <X11/Xlib.h> #endif +#include <glib.h> + #include <gtk/gtk.h> #include <gtk-vlc-player.h> @@ -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[]) { |