X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-platform.c;h=cb0b80f1c8c6bc4b5d0a8948610bf3054cf1704f;hb=f790df3576aaeefa6737889b7b8280c19c60caf9;hp=c909a50f839ef102666bac50f4819bd8fc0e0ba6;hpb=eb21ca4b354fede1b81f4f1441b3fa77cf439d12;p=modest diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index c909a50..cb0b80f 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -42,7 +42,10 @@ #include #include #include +#include +#include #include +#include #include #include #include @@ -462,7 +465,7 @@ modest_platform_show_uri_popup (const gchar *uri) GSList *node; popup_info->actions = actions_list; popup_info->uri = g_strdup (uri); - + for (node = actions_list; node != NULL; node = g_slist_next (node)) { GtkWidget *menu_item; const gchar *action_name; @@ -474,7 +477,7 @@ modest_platform_show_uri_popup (const gchar *uri) g_object_set_data (G_OBJECT(menu_item), HILDON_OSSO_URI_ACTION, (gpointer)action_name); /* hack */ g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (activate_uri_popup_item), popup_info); - + if (hildon_uri_is_default_action (action, NULL)) { gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menu_item); } else { @@ -484,25 +487,15 @@ modest_platform_show_uri_popup (const gchar *uri) } } - /* always add the copy item */ - GtkWidget* menu_item = gtk_menu_item_new_with_label (dgettext("osso-uri", - "uri_link_copy_link_location")); - g_object_set_data_full (G_OBJECT(menu_item), HILDON_OSSO_URI_ACTION, - g_strconcat (URI_ACTION_COPY, uri, NULL), - g_free); - g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (activate_uri_popup_item),NULL); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - gtk_widget_show (menu_item); - /* and what to do when the link is deleted */ g_signal_connect (G_OBJECT (menu), "delete-event", G_CALLBACK (delete_uri_popup), popup_info); gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time ()); - + } else { hildon_banner_show_information (NULL, NULL, _("mcen_ib_unsupported_link")); } - + return TRUE; } @@ -571,6 +564,10 @@ entry_insert_text (GtkEditable *editable, g_free (msg); g_free (tmp); } else { + if (length >= 20) { + hildon_banner_show_information (gtk_widget_get_parent (GTK_WIDGET (data)), NULL, + _CS("ckdg_ib_maximum_characters_reached")); + } /* Write the text in the entry if it's valid */ g_signal_handlers_block_by_func (editable, (gpointer) entry_insert_text, data); @@ -598,11 +595,11 @@ entry_changed (GtkEditable *editable, g_return_if_fail (chars != NULL); - if (g_utf8_strlen (chars,-1) >= 20) + if (g_utf8_strlen (chars,-1) >= 20) { hildon_banner_show_information (gtk_widget_get_parent (GTK_WIDGET (user_data)), NULL, _CS("ckdg_ib_maximum_characters_reached")); - else - gtk_widget_set_sensitive (ok_button, modest_text_utils_validate_folder_name(chars)); + } + gtk_widget_set_sensitive (ok_button, modest_text_utils_validate_folder_name(chars)); /* Free */ g_list_free (buttons); @@ -695,7 +692,8 @@ folder_chooser_dialog_run (ModestFolderView *original) modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_CAN_HAVE_FOLDERS); - modest_folder_view_copy_model (MODEST_FOLDER_VIEW (original), MODEST_FOLDER_VIEW (folder_view)); + modest_folder_view_copy_model (MODEST_FOLDER_VIEW (original), + MODEST_FOLDER_VIEW (folder_view)); visible_id = modest_folder_view_get_account_id_of_visible_server_account (MODEST_FOLDER_VIEW(original)); @@ -762,12 +760,48 @@ folder_picker_set_store (GtkButton *button, TnyFolderStore *store) if (store == NULL) { g_object_set_data (G_OBJECT (button), FOLDER_PICKER_CURRENT_FOLDER, NULL); } else { + GdkPixbuf *pixbuf; + const gchar *icon_name = NULL; + g_object_ref (store); g_object_set_data_full (G_OBJECT (button), FOLDER_PICKER_CURRENT_FOLDER, store, (GDestroyNotify) g_object_unref); name = folder_store_get_display_name (store); hildon_button_set_value (HILDON_BUTTON (button), name); g_free (name); + + /* Select icon */ + if (TNY_IS_ACCOUNT (store)) { + if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (store))) + icon_name = MODEST_FOLDER_ICON_LOCAL_FOLDERS; + else if (modest_tny_account_is_memory_card_account (TNY_ACCOUNT (store))) + icon_name = MODEST_FOLDER_ICON_MMC; + else + icon_name = MODEST_FOLDER_ICON_ACCOUNT; + } else { + if (modest_tny_folder_is_remote_folder (TNY_FOLDER (store))) { + TnyFolderType type = modest_tny_folder_guess_folder_type (TNY_FOLDER (store)); + switch (type) { + case TNY_FOLDER_TYPE_INBOX: + icon_name = MODEST_FOLDER_ICON_INBOX; + break; + default: + icon_name = MODEST_FOLDER_ICON_ACCOUNT; + } + } else if (modest_tny_folder_is_local_folder (TNY_FOLDER (store))) + icon_name = MODEST_FOLDER_ICON_NORMAL; + else if (modest_tny_folder_is_memory_card_folder (TNY_FOLDER (store))) + icon_name = MODEST_FOLDER_ICON_MMC_FOLDER; + } + + /* Set icon */ + pixbuf = modest_platform_get_icon (icon_name, MODEST_ICON_SIZE_SMALL); + + if (pixbuf) { + hildon_button_set_image (HILDON_BUTTON (button), + gtk_image_new_from_pixbuf (pixbuf)); + g_object_unref (pixbuf); + } } } @@ -787,15 +821,10 @@ static GtkWidget * folder_picker_new (ModestFolderView *folder_view, TnyFolderStore *suggested) { GtkWidget *button; - GdkPixbuf *pixbuf; button = hildon_button_new (MODEST_EDITABLE_SIZE, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL); - pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_NORMAL, - MODEST_ICON_SIZE_SMALL); - hildon_button_set_image (HILDON_BUTTON (button), - gtk_image_new_from_pixbuf (pixbuf)); hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 1.0); if (suggested) { @@ -2175,12 +2204,19 @@ modest_platform_connect_if_remote_and_perform (GtkWindow *parent_window, gpointer user_data) { TnyAccount *account = NULL; - - if (!folder_store) { + + if (!folder_store || + (TNY_IS_MERGE_FOLDER (folder_store) && + (tny_folder_get_folder_type (TNY_FOLDER(folder_store)) == TNY_FOLDER_TYPE_OUTBOX))) { + /* We promise to instantly perform the callback, so ... */ if (callback) { - callback (FALSE, NULL, parent_window, NULL, user_data); - } + GError *error = NULL; + g_set_error (&error, TNY_ERROR_DOMAIN, TNY_SERVICE_ERROR_UNKNOWN, + "Unable to move or not found folder"); + callback (FALSE, error, parent_window, NULL, user_data); + g_error_free (error); + } return; } else if (TNY_IS_FOLDER (folder_store)) { @@ -2302,7 +2338,7 @@ modest_platform_check_memory_low (ModestWindow *win, if (win && lowmem && visuals) modest_platform_run_information_dialog ( GTK_WINDOW(win), - dgettext("ke-recv","memr_ib_operation_disabled"), + _KR("memr_ib_operation_disabled"), TRUE); if (lowmem) @@ -2424,7 +2460,7 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, GTK_WINDOW (parent_window), GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR | GTK_DIALOG_DESTROY_WITH_PARENT, - _("mcen_bd_new"), MODEST_GTK_RESPONSE_NEW_FOLDER, + _HL("wdgt_bd_new"), MODEST_GTK_RESPONSE_NEW_FOLDER, NULL); /* Create folder view */ @@ -2436,6 +2472,9 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, G_CALLBACK (on_move_to_dialog_folder_activated), dialog); + tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (*folder_view), + (TnyAccountStore *) modest_runtime_get_account_store ()); + /* Create pannable and add it to the dialog */ folder_view_container = hildon_pannable_area_new (); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), folder_view_container);