aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-02-28 20:29:40 +0800
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-02-28 23:25:43 +0800
commit5fd9df9e45b27e550f6516e1a31e6b79907b5af8 (patch)
tree8a4f3f2ce14469d55ffd4533d09f12fabde1cb22
parentdecf711bd5ac82b2ea4c61e4304f1d124289a375 (diff)
downloadgsoc2013-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
-rw-r--r--libempathy-gtk/empathy-call-utils.c23
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),