diff options
author | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-02-28 20:29:40 +0800 |
---|---|---|
committer | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-02-28 23:25:43 +0800 |
commit | 5fd9df9e45b27e550f6516e1a31e6b79907b5af8 (patch) | |
tree | 8a4f3f2ce14469d55ffd4533d09f12fabde1cb22 /libempathy-gtk | |
parent | decf711bd5ac82b2ea4c61e4304f1d124289a375 (diff) | |
download | gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.tar gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.tar.gz gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.tar.bz2 gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.tar.lz gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.tar.xz gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.tar.zst gsoc2013-empathy-5fd9df9e45b27e550f6516e1a31e6b79907b5af8.zip |
Return meaningful errors when starting a call fails
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-call-utils.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c index 86ce3b4f7..fdf30df67 100644 --- a/libempathy-gtk/empathy-call-utils.c +++ b/libempathy-gtk/empathy-call-utils.c @@ -33,6 +33,27 @@ #define DEBUG_FLAG EMPATHY_DEBUG_OTHER #include <libempathy/empathy-debug.h> +static const gchar * +get_error_display_message (GError *error) +{ + if (error->domain != TP_ERROR) + return _("There was an error starting the call"); + + switch (error->code) + { + case TP_ERROR_NETWORK_ERROR: + return _("Network error"); + case TP_ERROR_NOT_CAPABLE: + return _("The specified contact doesn't support calls"); + case TP_ERROR_OFFLINE: + return _("The specified contact is offline"); + case TP_ERROR_INVALID_HANDLE: + return _("The specified contact is not valid"); + } + + return _("There was an error starting the call"); +} + static void show_call_error (GError *error) { @@ -40,7 +61,7 @@ show_call_error (GError *error) dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - _("There was an error starting the call")); + get_error_display_message (error)); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), |