aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-05-09 18:45:30 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-05-09 18:45:30 +0200
commitc75f9ef6ab690931a48d01b9f07c0418e3e2c5d2 (patch)
treec23fd6af3aca5bb6626325bda28611db65bff28f
parent23fb72d1b80288b37cfac54bcc1b334d8ff0f460 (diff)
downloadexperiment-player-c75f9ef6ab690931a48d01b9f07c0418e3e2c5d2.tar.gz
handle errors when displaying manual
introduced helper function for displaying GErrors in a message box
-rw-r--r--src/experiment-player.h1
-rw-r--r--src/main.c27
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;
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 <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[])
{