X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-platform.c;h=cf31c38b896554a1a3a70a73d90dc0fc85dd95fe;hp=cc577d15a8780c523c6c59086a3d62722abfbc2a;hb=fcbc6a6dfa1a10921d2ca889256a21b192adbe98;hpb=f3b422f8b7b8db2f2df5b5468e2f4ef6219dd503;ds=sidebyside diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index cc577d1..cf31c38 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -525,6 +525,12 @@ modest_platform_get_icon (const gchar *name) g_return_val_if_fail (name, NULL); + /* strlen == 0 is not really an error; it just + * means the icon is not available + */ + if (!name || strlen(name) == 0) + return NULL; + #if 0 /* do we still need this? */ if (g_str_has_suffix (name, ".png")) { /*FIXME: hack*/ pixbuf = gdk_pixbuf_new_from_file (name, &err); @@ -573,22 +579,25 @@ entry_insert_text (GtkEditable *editable, hildon_banner_show_information (gtk_widget_get_parent (GTK_WIDGET (data)), NULL, _CS("ckdg_ib_maximum_characters_reached")); } else { - GtkWidget *ok_button; - GList *buttons; - - buttons = gtk_container_get_children (GTK_CONTAINER (GTK_DIALOG (data)->action_area)); - ok_button = GTK_WIDGET (buttons->next->data); - - gtk_widget_set_sensitive (ok_button, - modest_text_utils_validate_folder_name (chars)); - g_list_free (buttons); - - /* Write the text in the entry */ - g_signal_handlers_block_by_func (editable, - (gpointer) entry_insert_text, data); - gtk_editable_insert_text (editable, text, length, position); - g_signal_handlers_unblock_by_func (editable, - (gpointer) entry_insert_text, data); + if (modest_text_utils_is_forbidden_char (*text, FOLDER_NAME_FORBIDDEN_CHARS)) { + /* Show an error */ + gchar *tmp, *msg; + + tmp = g_strndup (folder_name_forbidden_chars, + FOLDER_NAME_FORBIDDEN_CHARS_LENGTH); + msg = g_strdup_printf (_CS("ckdg_ib_illegal_characters_entered"), tmp); + hildon_banner_show_information (gtk_widget_get_parent (GTK_WIDGET (data)), + NULL, msg); + g_free (msg); + g_free (tmp); + } else { + /* Write the text in the entry if it's valid */ + g_signal_handlers_block_by_func (editable, + (gpointer) entry_insert_text, data); + gtk_editable_insert_text (editable, text, length, position); + g_signal_handlers_unblock_by_func (editable, + (gpointer) entry_insert_text, data); + } } /* Do not allow further processing */ g_signal_stop_emission_by_name (editable, "insert_text"); @@ -744,8 +753,8 @@ launch_sort_headers_dialog (GtkWindow *parent_window, modest_widget_memory_save (modest_runtime_get_conf (), G_OBJECT (header_view), MODEST_CONF_HEADER_VIEW_KEY); - while (gtk_events_pending ()) - gtk_main_iteration (); +/* while (gtk_events_pending ()) */ +/* gtk_main_iteration (); */ /* free */ g_list_free(cols); @@ -1198,17 +1207,18 @@ gboolean modest_platform_set_update_interval (guint minutes) /* Specify what should happen when the alarm happens: * It should call this D-Bus method: */ - /* Note: I am surpised that alarmd can't just use the modest.service file - * for this. murrayc. */ - event->dbus_path = g_strdup(PREFIX "/bin/modest"); - + event->dbus_path = g_strdup(MODEST_DBUS_OBJECT); event->dbus_interface = g_strdup (MODEST_DBUS_IFACE); event->dbus_service = g_strdup (MODEST_DBUS_SERVICE); event->dbus_name = g_strdup (MODEST_DBUS_METHOD_SEND_RECEIVE); - /* Otherwise, a dialog will be shown if exect_name or dbus_path is NULL, - even though we have specified no dialog text: */ - event->flags = ALARM_EVENT_NO_DIALOG; + /* Use ALARM_EVENT_NO_DIALOG: Otherwise, a dialog will be shown if + * exec_name or dbus_path is NULL, even though we have specified no dialog text. + * Also use ALARM_EVENT_ACTIVATION so that modest is started (without UI) to get emails + * This is why we want to use the Alarm API instead of just g_timeout_add(). + * (The old maemo email-client did this, though it isn't specified in the UI spec.) + */ + event->flags = ALARM_EVENT_NO_DIALOG | ALARM_EVENT_ACTIVATION; alarm_cookie = alarm_event_add (event); @@ -1222,20 +1232,22 @@ gboolean modest_platform_set_update_interval (guint minutes) if (!alarm_cookie) { /* Error */ const alarm_error_t alarm_error = alarmd_get_error (); - printf ("Error setting alarm event. Error code: '%d'\n", alarm_error); + g_debug ("Error setting alarm event. Error code: '%d'\n", alarm_error); /* Give people some clue: */ /* The alarm API should have a function for this: */ if (alarm_error == ALARMD_ERROR_DBUS) { - printf (" ALARMD_ERROR_DBUS: An error with D-Bus occurred, probably coudn't get a D-Bus connection.\n"); + g_debug (" ALARMD_ERROR_DBUS: An error with D-Bus occurred, probably coudn't get a D-Bus connection.\n"); } else if (alarm_error == ALARMD_ERROR_CONNECTION) { - printf (" ALARMD_ERROR_CONNECTION: Could not contact alarmd via D-Bus.\n"); + g_debug (" ALARMD_ERROR_CONNECTION: Could not contact alarmd via D-Bus.\n"); } else if (alarm_error == ALARMD_ERROR_INTERNAL) { - printf (" ALARMD_ERROR_INTERNAL: Some alarmd or libalarm internal error, possibly a version mismatch.\n"); + g_debug (" ALARMD_ERROR_INTERNAL: Some alarmd or libalarm internal error, possibly a version mismatch.\n"); } else if (alarm_error == ALARMD_ERROR_MEMORY) { - printf (" ALARMD_ERROR_MEMORY: A memory allocation failed.\n"); + g_debug (" ALARMD_ERROR_MEMORY: A memory allocation failed.\n"); } else if (alarm_error == ALARMD_ERROR_ARGUMENT) { - printf (" ALARMD_ERROR_ARGUMENT: An argument given by caller was invalid.\n"); + g_debug (" ALARMD_ERROR_ARGUMENT: An argument given by caller was invalid.\n"); + } else if (alarm_error == ALARMD_ERROR_NOT_RUNNING) { + g_debug (" ALARMD_ERROR_NOT_RUNNING: alarmd is not running.\n"); } return FALSE;