From 165cf260c918362da2ea328a5ab5910c02238d9c Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Fri, 4 Jul 2014 22:31:59 +0200 Subject: [PATCH 1/2] Add ag_app_message_dialog() to create multi-purpose message dialogs --- src/ag-app.c | 16 ++++++++++++++++ src/ag-app.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/ag-app.c b/src/ag-app.c index e40e567..6ef26e9 100644 --- a/src/ag-app.c +++ b/src/ag-app.c @@ -342,3 +342,19 @@ ag_app_class_init(AgAppClass *klass) application_class->open = ag_app_open; } +void +ag_app_message_dialog(GtkWidget *window, GtkMessageType message_type, gchar *fmt, ...) +{ + gchar *msg; + va_list args; + GtkWidget *dialog; + + va_start(args, fmt); + msg = g_strdup_vprintf(fmt, args); + va_end(args); + + dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, message_type, GTK_BUTTONS_OK, "%s", msg); + g_free(msg); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); +} diff --git a/src/ag-app.h b/src/ag-app.h index c5f363d..945f49b 100644 --- a/src/ag-app.h +++ b/src/ag-app.h @@ -37,6 +37,7 @@ void ag_app_raise(AgApp *self); void ag_app_run_action(AgApp *app, gboolean is_remote, const AstrognomeOptions *options); +void ag_app_message_dialog(GtkWidget *window, GtkMessageType message_type, gchar *fmt, ...); G_END_DECLS From 8262eaabd148016aef979aa9f706ca1d8f865044 Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Sat, 5 Jul 2014 11:03:27 +0200 Subject: [PATCH 2/2] Add error checking to several places --- src/ag-window.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ag-window.c b/src/ag-window.c index a240e05..5231d4a 100644 --- a/src/ag-window.c +++ b/src/ag-window.c @@ -165,7 +165,9 @@ ag_window_save_action(GSimpleAction *action, GVariant *parameter, gpointer user_ ag_window_save_as(window, &err); } - // TODO: Check err! + if (err) { + ag_app_message_dialog(GTK_WIDGET(window), GTK_MESSAGE_ERROR, "%s", err->message); + } } static void @@ -177,7 +179,9 @@ ag_window_save_as_action(GSimpleAction *action, GVariant *parameter, gpointer us recalculate_chart(window); ag_window_save_as(window, &err); - // TODO: Check err! + if (err) { + ag_app_message_dialog(GTK_WIDGET(window), GTK_MESSAGE_ERROR, "%s", err->message); + } } static void @@ -253,7 +257,9 @@ ag_window_export_svg_action(GSimpleAction *action, GVariant *parameter, gpointer ag_window_export_svg(window, &err); - // TODO: Check err! + if (err) { + ag_app_message_dialog(GTK_WIDGET(window), GTK_MESSAGE_ERROR, "%s", err->message); + } } const gchar *