summaryrefslogtreecommitdiff
path: root/sendto/main.c
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2015-06-08 14:18:18 +0200
committerBastien Nocera <hadess@hadess.net>2015-06-08 14:19:01 +0200
commitc2e107176010cabb9f8b93c092001cbc02abad85 (patch)
tree6b0c6a7a8017a1c2c50bf1087f9576ecd11ce3aa /sendto/main.c
parent10c4de2e8a04075b11c1c96a77d5aa4ceab9b132 (diff)
downloadgnome-bluetooth-c2e107176010cabb9f8b93c092001cbc02abad85.tar.gz
sendto: Strip the D-Bus error from the error message
https://bugzilla.gnome.org/show_bug.cgi?id=746698
Diffstat (limited to 'sendto/main.c')
-rw-r--r--sendto/main.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/sendto/main.c b/sendto/main.c
index 5a4832d3..c9a048e2 100644
--- a/sendto/main.c
+++ b/sendto/main.c
@@ -108,18 +108,36 @@ update_from_label (void)
g_free (markup);
}
+static char *
+cleanup_error (GError *error)
+{
+ char *remote_error;
+
+ if (!error || *error->message == '\0')
+ return g_strdup (_("An unknown error occurred"));
+ if (g_dbus_error_is_remote_error (error) == FALSE)
+ return g_strdup (error->message);
+
+ remote_error = g_dbus_error_get_remote_error (error);
+ g_debug ("Remote error is: %s", remote_error);
+ g_free (remote_error);
+
+ g_dbus_error_strip_remote_error (error);
+
+ return g_strdup (error->message);
+}
+
static void
handle_error (GError *error)
{
- const char *message;
+ char *message;
+
+ message = cleanup_error (error);
- if (!error || *error->message == '\0')
- message = _("An unknown error occurred");
- else
- message = error->message;
gtk_widget_show (image_status);
gtk_label_set_markup (GTK_LABEL (label_status), message);
g_clear_error (&error);
+ g_free (message);
/* Clear the progress bar as it may be saying 'Connecting' or
* 'Sending file 1 of 1' which is not true. */