/* * e-mail-shell-settings.c * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see * * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ #ifdef HAVE_CONFIG_H #include #endif #include "e-mail-shell-settings.h" #include #include #include #include #define MAIL_SCHEMA "org.gnome.evolution.mail" static gboolean transform_no_folder_dots_to_ellipsize (GBinding *binding, const GValue *source_value, GValue *target_value, gpointer user_data) { PangoEllipsizeMode ellipsize; if (g_value_get_boolean (source_value)) ellipsize = PANGO_ELLIPSIZE_NONE; else ellipsize = PANGO_ELLIPSIZE_END; g_value_set_enum (target_value, ellipsize); return TRUE; } void e_mail_shell_settings_init (EShellBackend *shell_backend) { EShell *shell; EShellSettings *shell_settings; EMailBackend *backend; EMailSession *session; gpointer object; shell = e_shell_backend_get_shell (shell_backend); shell_settings = e_shell_get_shell_settings (shell); backend = E_MAIL_BACKEND (shell_backend); session = e_mail_backend_get_session (backend); /*** Global Objects ***/ e_shell_settings_install_property ( g_param_spec_object ( "mail-label-list-store", NULL, NULL, E_TYPE_MAIL_LABEL_LIST_STORE, G_PARAM_READWRITE)); object = e_mail_label_list_store_new (); e_shell_settings_set_object ( shell_settings, "mail-label-list-store", object); g_object_unref (object); e_shell_settings_install_property ( g_param_spec_pointer ( "mail-session", NULL, NULL, G_PARAM_READWRITE)); e_shell_settings_set_pointer ( shell_settings, "mail-session", g_object_ref (session)); /*** Mail Preferences ***/ e_shell_settings_install_property_for_key ( "mail-address-compress", MAIL_SCHEMA, "address-compress"); e_shell_settings_install_property_for_key ( "mail-address-count", MAIL_SCHEMA, "address-count"); e_shell_settings_install_property_for_key ( "mail-charset", MAIL_SCHEMA, "charset"); e_shell_settings_install_property_for_key ( "mail-check-for-junk", MAIL_SCHEMA, "junk-check-incoming"); e_shell_settings_install_property_for_key ( "mail-check-on-start", MAIL_SCHEMA, "send-recv-on-start"); e_shell_settings_install_property_for_key ( "mail-check-all-on-start", MAIL_SCHEMA, "send-recv-all-on-start"); e_shell_settings_install_property_for_key ( "mail-citation-color", MAIL_SCHEMA, "citation-colour"); e_shell_settings_install_property_for_key ( "mail-confirm-expunge", MAIL_SCHEMA, "prompt-on-expunge"); e_shell_settings_install_property_for_key ( "mail-confirm-unwanted-html", MAIL_SCHEMA, "prompt-on-unwanted-html"); e_shell_settings_install_property_for_key ( "mail-empty-junk-on-exit", MAIL_SCHEMA, "junk-empty-on-exit"); e_shell_settings_install_property_for_key ( "mail-empty-trash-on-exit", MAIL_SCHEMA, "trash-empty-on-exit"); e_shell_settings_install_property_for_key ( "mail-enable-search-folders", MAIL_SCHEMA, "enable-vfolders"); e_shell_settings_install_property_for_key ( "mail-enable-local-folders", MAIL_SCHEMA, "enable-local"); e_shell_settings_install_property_for_key ( "mail-font-monospace", MAIL_SCHEMA, "monospace-font"); e_shell_settings_install_property_for_key ( "mail-font-variable", MAIL_SCHEMA, "variable-width-font"); e_shell_settings_install_property_for_key ( "mail-force-message-limit", MAIL_SCHEMA, "force-message-limit"); /* This value corresponds to the EMailForwardStyle enum. */ e_shell_settings_install_property_for_key ( "mail-forward-style", MAIL_SCHEMA, "forward-style"); /* This value corresponds to MailConfigHTTPMode enum. */ e_shell_settings_install_property_for_key ( "mail-image-loading-policy", MAIL_SCHEMA, "load-http-images"); e_shell_settings_install_property_for_key ( "mail-magic-spacebar", MAIL_SCHEMA, "magic-spacebar"); e_shell_settings_install_property_for_key ( "mail-global-view-setting", MAIL_SCHEMA, "global-view-setting"); e_shell_settings_install_property_for_key ( "mail-mark-citations", MAIL_SCHEMA, "mark-citations"); e_shell_settings_install_property_for_key ( "mail-mark-seen", MAIL_SCHEMA, "mark-seen"); e_shell_settings_install_property_for_key ( "mail-mark-seen-timeout", MAIL_SCHEMA, "mark-seen-timeout"); e_shell_settings_install_property_for_key ( "mail-message-text-part-limit", MAIL_SCHEMA, "message-text-part-limit"); /* Do not bind to this. Use "mail-sidebar-ellipsize" instead. */ e_shell_settings_install_property_for_key ( "mail-no-folder-dots", MAIL_SCHEMA, "no-folder-dots"); e_shell_settings_install_property_for_key ( "mail-only-local-photos", MAIL_SCHEMA, "photo-local"); e_shell_settings_install_property_for_key ( "mail-show-real-date", MAIL_SCHEMA, "show-real-date"); e_shell_settings_install_property_for_key ( "mail-sort-accounts-alpha", MAIL_SCHEMA, "sort-accounts-alpha"); e_shell_settings_install_property_for_key ( "mail-prompt-delete-in-vfolder", MAIL_SCHEMA, "prompt-on-delete-in-vfolder"); /* This value corresponds to the EMailReplyStyle enum, * but the ordering of the combo box items in preferences * has changed. We use transformation functions there. */ e_shell_settings_install_property_for_key ( "mail-reply-style", MAIL_SCHEMA, "reply-style"); e_shell_settings_install_property_for_key ( "mail-safe-list", MAIL_SCHEMA, "safe-list"); e_shell_settings_install_property_for_key ( "mail-show-animated-images", MAIL_SCHEMA, "show-animated-images"); e_shell_settings_install_property_for_key ( "mail-show-sender-photo", MAIL_SCHEMA, "show-sender-photo"); e_shell_settings_install_property_for_key ( "mail-sidebar-search", MAIL_SCHEMA, "side-bar-search"); e_shell_settings_install_property_for_key ( "mail-thread-by-subject", MAIL_SCHEMA, "thread-subject"); e_shell_settings_install_property_for_key ( "mail-use-custom-fonts", MAIL_SCHEMA, "use-custom-font"); /*** Composer Preferences ***/ e_shell_settings_install_property_for_key ( "composer-charset", MAIL_SCHEMA, "composer-charset"); e_shell_settings_install_property_for_key ( "composer-format-html", MAIL_SCHEMA, "composer-send-html"); e_shell_settings_install_property_for_key ( "composer-inline-spelling", MAIL_SCHEMA, "composer-inline-spelling"); e_shell_settings_install_property_for_key ( "composer-magic-links", MAIL_SCHEMA, "composer-magic-links"); e_shell_settings_install_property_for_key ( "composer-magic-smileys", MAIL_SCHEMA, "composer-magic-smileys"); e_shell_settings_install_property_for_key ( "composer-outlook-filenames", MAIL_SCHEMA, "composer-outlook-filenames"); e_shell_settings_install_property_for_key ( "composer-ignore-list-reply-to", MAIL_SCHEMA, "composer-ignore-list-reply-to"); e_shell_settings_install_property_for_key ( "composer-group-reply-to-list", MAIL_SCHEMA, "composer-group-reply-to-list"); e_shell_settings_install_property_for_key ( "composer-sign-reply-if-signed", MAIL_SCHEMA, "/apps/evolution/mail/composer/sign_reply_if_signed"); e_shell_settings_install_property_for_key ( "composer-prompt-only-bcc", MAIL_SCHEMA, "prompt-on-only-bcc"); e_shell_settings_install_property_for_key ( "composer-prompt-private-list-reply", MAIL_SCHEMA, "prompt-on-private-list-reply"); e_shell_settings_install_property_for_key ( "composer-prompt-reply-many-recips", MAIL_SCHEMA, "prompt-on-reply-many-recips"); e_shell_settings_install_property_for_key ( "composer-prompt-list-reply-to", MAIL_SCHEMA, "prompt-on-list-reply-to"); e_shell_settings_install_property_for_key ( "composer-prompt-empty-subject", MAIL_SCHEMA, "prompt-on-empty-subject"); e_shell_settings_install_property_for_key ( "composer-prompt-send-invalid-recip", MAIL_SCHEMA, "prompt-on-invalid-recip"); e_shell_settings_install_property_for_key ( "composer-reply-start-bottom", MAIL_SCHEMA, "composer-reply-start-bottom"); e_shell_settings_install_property_for_key ( "composer-request-receipt", MAIL_SCHEMA, "composer-request-receipt"); e_shell_settings_install_property_for_key ( "composer-spell-color", MAIL_SCHEMA, "composer-spell-color"); e_shell_settings_install_property_for_key ( "composer-top-signature", MAIL_SCHEMA, "composer-top-signature"); e_shell_settings_install_property_for_key ( "composer-no-signature-delim", MAIL_SCHEMA, "composer-no-signature-delim"); e_shell_settings_install_property_for_key ( "composer-gallery-path", MAIL_SCHEMA, "composer-gallery-path"); e_shell_settings_install_property_for_key ( "paned-view-headers-state", MAIL_SCHEMA, "paned-view-headers-state"); /* These properties use transform functions to convert * GConf values to forms more useful to Evolution. We * have to use separate properties because GConfBridge * does not support transform functions. Much of this * is backward-compatibility cruft for poorly designed * GConf schemas. */ e_shell_settings_install_property ( g_param_spec_enum ( "mail-sidebar-ellipsize", NULL, NULL, PANGO_TYPE_ELLIPSIZE_MODE, PANGO_ELLIPSIZE_NONE, G_PARAM_READWRITE)); g_object_bind_property_full ( shell_settings, "mail-no-folder-dots", shell_settings, "mail-sidebar-ellipsize", G_BINDING_SYNC_CREATE, transform_no_folder_dots_to_ellipsize, NULL, g_object_ref (shell_settings), (GDestroyNotify) g_object_unref); }