X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-platform.c;h=a8d881d9cd06733416d33efc4a3b84be6c41dc65;hp=2028960c02b4e80741a353dc324fa400d2aa8bdc;hb=824e4de9c2cb7fa0b66c4df1f20c0e1451fa99da;hpb=2dd768c41084634bf9d0ba7b9efd51c934264ded diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index 2028960..a8d881d 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -63,8 +63,10 @@ #include #include "hildon2/modest-hildon2-details-dialog.h" #include "hildon2/modest-hildon2-window-mgr.h" +#ifdef MODEST_USE_PROFILE #include #include +#endif #include #include #include "modest-header-window.h" @@ -92,8 +94,12 @@ #define URI_ACTION_COPY "copy:" #define MODEST_NOTIFICATION_CATEGORY "email-message" #define MODEST_NEW_MAIL_LIGHTING_PATTERN "PatternCommunicationEmail" +#ifdef MODEST_USE_PROFILE #define PROFILE_MAIL_TONE PROFILEKEY_EMAIL_ALERT_TONE #define PROFILE_MAIL_VOLUME PROFILEKEY_EMAIL_ALERT_VOLUME +#else +#define MAIL_TONE "message-new-email" +#endif #define COMMON_FOLDER_DIALOG_ENTRY "entry" #define COMMON_FOLDER_DIALOG_ACCOUNT_PICKER "account-picker" @@ -1596,7 +1602,9 @@ modest_platform_on_new_headers_received (TnyList *header_list, /* Notify. We need to do this in an idle because this function could be called from a thread */ - notify_notification_show (NOTIFY_NOTIFICATION (notification), NULL); + if (!notify_notification_show (NOTIFY_NOTIFICATION (notification), NULL)) { + g_warning ("Failed to send notification"); + } /* Save id in the list */ g_object_get(G_OBJECT(notification), "id", ¬if_id, NULL); @@ -2442,18 +2450,26 @@ modest_platform_get_osso_context (void) static void _modest_platform_play_email_tone (void) { - gchar *active_profile; gchar *mail_tone; - gchar *mail_volume; gint mail_volume_int; int ret; ca_context *ca_con = NULL; ca_proplist *pl = NULL; +#ifdef MODEST_USE_PROFILE + gchar *active_profile; + gchar *mail_volume; + active_profile = profile_get_profile (); mail_tone = profile_get_value (active_profile, PROFILE_MAIL_TONE); mail_volume = profile_get_value (active_profile, PROFILE_MAIL_VOLUME); mail_volume_int = profile_parse_int (mail_volume); + g_free (mail_volume); + g_free (active_profile); +#else + mail_tone = MAIL_TONE; + mail_volume_int = 100; +#endif if (mail_tone && !strstr (mail_tone, "/")) { gchar *tmp; @@ -2487,9 +2503,7 @@ _modest_platform_play_email_tone (void) ca_context_destroy(ca_con); } - g_free (mail_volume); g_free (mail_tone); - g_free (active_profile); } #define MOVE_TO_DIALOG_FOLDER_VIEW "folder-view" @@ -2522,8 +2536,13 @@ move_to_dialog_show_accounts (GtkWidget *dialog) g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS, GINT_TO_POINTER (FALSE)); gtk_label_set_text (GTK_LABEL (selection_label), ""); + modest_folder_view_set_account_id_of_visible_server_account (MODEST_FOLDER_VIEW (folder_view), NULL); modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (folder_view), TRUE); modest_folder_view_set_style (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_STYLE_SHOW_ALL); + modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (folder_view), + MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS); + modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (folder_view), + MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS); modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS); hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (pannable), 0, 0); @@ -2631,14 +2650,6 @@ on_move_to_dialog_back_clicked (GtkButton *button, gpointer userdata) { GtkWidget *dialog = (GtkWidget *) userdata; - ModestFolderView *folder_view; - - /* Revert the effect of show_folders filters */ - folder_view = MODEST_FOLDER_VIEW (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); - modest_folder_view_set_account_id_of_visible_server_account (folder_view, NULL); - modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (folder_view), TRUE); - modest_folder_view_unset_filter (folder_view, MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS); - modest_folder_view_unset_filter (folder_view, MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS); /* Back to show accounts */ move_to_dialog_show_accounts (dialog); @@ -2658,11 +2669,26 @@ on_move_to_dialog_folder_activated (GtkTreeView *tree_view, dialog = (GtkWidget *) user_data; showing_folders = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS)); if (!showing_folders) { + folder_view = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); selected = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view)); if (selected) { - move_to_dialog_show_folders (dialog, selected); + gboolean valid; + + valid = TRUE; + if (TNY_IS_ACCOUNT (selected) && + modest_tny_folder_store_is_remote (TNY_FOLDER_STORE (selected))) { + ModestProtocolType protocol_type; + + protocol_type = modest_tny_account_get_protocol_type (TNY_ACCOUNT (selected)); + valid = !modest_protocol_registry_protocol_type_has_tag + (modest_runtime_get_protocol_registry (), + protocol_type, + MODEST_PROTOCOL_REGISTRY_STORE_FORBID_MESSAGE_ADD); + } + if (valid) + move_to_dialog_show_folders (dialog, selected); } } } @@ -2784,6 +2810,7 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, gtk_widget_show (selection_label); gtk_widget_show (action_button); gtk_widget_show (buttons_hbox); + gtk_widget_show (dialog); g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW, *folder_view); g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_BACK_BUTTON, back_button);