Index: sendto/dialog.h =================================================================== RCS file: /cvsroot/bluez/gnome/sendto/dialog.h,v retrieving revision 1.2 diff -u -p -u -p -r1.2 dialog.h --- sendto/dialog.h 5 Apr 2008 23:59:11 -0000 1.2 +++ sendto/dialog.h 8 Apr 2008 15:53:07 -0000 @@ -21,5 +21,7 @@ * */ +#include + gchar *show_browse_dialog(void); gchar **show_select_dialog(void); Index: sendto/main.c =================================================================== RCS file: /cvsroot/bluez/gnome/sendto/main.c,v retrieving revision 1.27 diff -u -p -u -p -r1.27 main.c --- sendto/main.c 6 Apr 2008 01:26:23 -0000 1.27 +++ sendto/main.c 8 Apr 2008 15:53:08 -0000 @@ -78,6 +78,13 @@ static void response_callback(GtkWidget gtk_main_quit(); } +static gboolean is_palm_device(const gchar *bdaddr) +{ + return (g_str_has_prefix(bdaddr, "00:04:6B") + || g_str_has_prefix(bdaddr, "00:07:E0") + || g_str_has_prefix(bdaddr, "00:0E:20")); +} + static void create_window(void) { GtkWidget *vbox; @@ -260,15 +267,15 @@ static void transfer_progress(DBusGProxy remaining_time = (total_size - current_sent) / transfer_rate; if (remaining_time >= 3600) - time = g_strdup_printf(_("ETA %d:%02d:%02d"), + time = g_strdup_printf(_("%d:%02d:%02d Remaining"), remaining_time / 3600, (remaining_time % 3600) / 60, (remaining_time % 3600) % 60); else - time = g_strdup_printf(_("ETA %d:%02d"), + time = g_strdup_printf(_("%d:%02d Remaining"), remaining_time / 60, remaining_time % 60); - if (transfer_rate >= 1000) + if (transfer_rate >= 3000) rate = g_strdup_printf(_("%d KB/s"), transfer_rate / 1000); else rate = g_strdup_printf(_("%d B/s"), transfer_rate); @@ -312,6 +319,29 @@ static void session_connected(DBusGProxy send_file(proxy); } +static gchar *get_error_message(GError *error) +{ + char *message; + + if (error != NULL) { + const gchar *error_name; + + if (error && error->code == DBUS_GERROR_REMOTE_EXCEPTION) + error_name = dbus_g_error_get_name(error); + else + error_name = NULL; + + if (error_name && !strcmp(error_name, "org.openobex.Error.ConnectionAttemptFailed") && is_palm_device(option_device)) { + message = g_strdup (_("Make sure that remote device is on and that it accepts Bluetooth connections.")); + } else { + message = g_strdup(error->message); + } + } else + message = g_strdup(_("An unknown error occured")); + + return message; +} + static void create_notify(DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) { @@ -323,12 +353,9 @@ static void create_notify(DBusGProxy *pr G_TYPE_INVALID) == FALSE) { gchar *text, *message; - if (error != NULL) { - message = g_strdup(error->message); + message = get_error_message(error); + if (error != NULL) g_error_free(error); - } else - message = g_strdup(_("An unknown error occured")); - text = g_strdup_printf("%s", message); gtk_label_set_markup(GTK_LABEL(label_status), text);