{
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
+ if (extension->priv->authentication == authentication)
+ return;
+
extension->priv->authentication = authentication;
g_object_notify (G_OBJECT (extension), "authentication");
{
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
+ if ((extension->priv->can_browse ? 1 : 0) == (can_browse ? 1 : 0))
+ return;
+
extension->priv->can_browse = can_browse;
g_object_notify (G_OBJECT (extension), "can-browse");
const gchar *filter)
{
gboolean needs_parens;
+ gchar *new_filter;
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
g_mutex_lock (extension->priv->property_lock);
- g_free (extension->priv->filter);
if (needs_parens)
- extension->priv->filter = g_strdup_printf ("(%s)", filter);
+ new_filter = g_strdup_printf ("(%s)", filter);
else
- extension->priv->filter = g_strdup (filter);
+ new_filter = g_strdup (filter);
+
+ if (g_strcmp0 (extension->priv->filter, new_filter) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ g_free (new_filter);
+ return;
+ }
+
+ g_free (extension->priv->filter);
+ extension->priv->filter = new_filter;
g_mutex_unlock (extension->priv->property_lock);
{
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
+ if (extension->priv->limit == limit)
+ return;
+
extension->priv->limit = limit;
g_object_notify (G_OBJECT (extension), "limit");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->root_dn, root_dn) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->root_dn);
extension->priv->root_dn = e_util_strdup_strip (root_dn);
{
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
+ if (extension->priv->scope == scope)
+ return;
+
extension->priv->scope = scope;
g_object_notify (G_OBJECT (extension), "scope");
{
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
+ if (extension->priv->security == security)
+ return;
+
extension->priv->security = security;
g_object_notify (G_OBJECT (extension), "security");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->path, path) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->path);
extension->priv->path = e_util_strdup_strip (path);
g_return_if_fail (E_IS_BOOK_BACKEND (backend));
g_return_if_fail (cache_dir != NULL);
+ if (g_strcmp0 (backend->priv->cache_dir, cache_dir) == 0)
+ return;
+
g_free (backend->priv->cache_dir);
backend->priv->cache_dir = g_strdup (cache_dir);
{
g_return_if_fail (E_IS_SOURCE_CONTACTS (extension));
+ if ((extension->priv->include_me ? 1 : 0) == (include_me ? 1 : 0))
+ return;
+
extension->priv->include_me = include_me;
g_object_notify (G_OBJECT (extension), "include-me");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->location, location) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->location);
extension->priv->location = e_util_strdup_strip (location);
{
g_return_if_fail (E_IS_SOURCE_WEATHER (extension));
+ if (extension->priv->units == units)
+ return;
+
extension->priv->units = units;
g_object_notify (G_OBJECT (extension), "units");
g_return_if_fail (E_IS_CAL_BACKEND (backend));
g_return_if_fail (cache_dir != NULL);
+ if (g_strcmp0 (backend->priv->cache_dir, cache_dir) == 0)
+ return;
+
g_free (backend->priv->cache_dir);
backend->priv->cache_dir = g_strdup (cache_dir);
g_return_if_fail (CAMEL_IS_DATA_CACHE (cdc));
g_return_if_fail (path != NULL);
+ if (g_strcmp0 (cdc->priv->path, path) == 0)
+ return;
+
g_free (cdc->priv->path);
cdc->priv->path = g_strdup (path);
{
g_return_if_fail (CAMEL_IS_DISCO_FOLDER (disco_folder));
+ if ((disco_folder->priv->offline_sync ? 1 : 0) == (offline_sync ? 1 : 0))
+ return;
+
disco_folder->priv->offline_sync = offline_sync;
g_object_notify (G_OBJECT (disco_folder), "offline-sync");
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
+ if (g_strcmp0 (folder->priv->full_name, full_name) == 0)
+ return;
+
g_free (folder->priv->full_name);
folder->priv->full_name = g_strdup (full_name);
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
+ if (g_strcmp0 (folder->priv->display_name, display_name) == 0)
+ return;
+
g_free (folder->priv->display_name);
folder->priv->display_name = g_strdup (display_name);
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
+ if (g_strcmp0 (folder->priv->description, description) == 0)
+ return;
+
g_free (folder->priv->description);
folder->priv->description = g_strdup (description);
{
g_return_if_fail (CAMEL_IS_GPG_CONTEXT (context));
+ if ((context->priv->always_trust ? 1 : 0) == (always_trust ? 1 : 0))
+ return;
+
context->priv->always_trust = always_trust;
g_object_notify (G_OBJECT (context), "always-trust");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if (settings->priv->batch_fetch_count == batch_fetch_count)
+ return;
+
settings->priv->batch_fetch_count = batch_fetch_count;
g_object_notify (G_OBJECT (settings), "batch-fetch-count");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->check_all ? 1 : 0) == (check_all ? 1 : 0))
+ return;
+
settings->priv->check_all = check_all;
g_object_notify (G_OBJECT (settings), "check-all");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->check_subscribed ? 1 : 0) == (check_subscribed ? 1 : 0))
+ return;
+
settings->priv->check_subscribed = check_subscribed;
g_object_notify (G_OBJECT (settings), "check-subscribed");
MIN_CONCURRENT_CONNECTIONS,
MAX_CONCURRENT_CONNECTIONS);
+ if (settings->priv->concurrent_connections == concurrent_connections)
+ return;
+
settings->priv->concurrent_connections = concurrent_connections;
g_object_notify (G_OBJECT (settings), "concurrent-connections");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if (settings->priv->fetch_order == fetch_order)
+ return;
+
settings->priv->fetch_order = fetch_order;
g_object_notify (G_OBJECT (settings), "fetch-order");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->filter_all ? 1 : 0) == (filter_all ? 1 : 0))
+ return;
+
settings->priv->filter_all = filter_all;
g_object_notify (G_OBJECT (settings), "filter-all");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->filter_junk ? 1 : 0) == (filter_junk ? 1 : 0))
+ return;
+
settings->priv->filter_junk = filter_junk;
g_object_notify (G_OBJECT (settings), "filter-junk");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->filter_junk_inbox ? 1 : 0) == (filter_junk_inbox ? 1 : 0))
+ return;
+
settings->priv->filter_junk_inbox = filter_junk_inbox;
g_object_notify (G_OBJECT (settings), "filter-junk-inbox");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->use_mobile_mode ? 1 : 0) == (mobile_mode ? 1 : 0))
+ return;
+
settings->priv->use_mobile_mode = mobile_mode;
g_object_notify (G_OBJECT (settings), "mobile-mode");
g_mutex_lock (settings->priv->property_lock);
+ if (g_strcmp0 (settings->priv->namespace, namespace_) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_free (settings->priv->namespace);
settings->priv->namespace = g_strdup (namespace_);
g_mutex_lock (settings->priv->property_lock);
+ if (g_strcmp0 (settings->priv->shell_command, shell_command) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_free (settings->priv->shell_command);
settings->priv->shell_command = g_strdup (shell_command);
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->use_idle ? 1 : 0) == (use_idle ? 1 : 0))
+ return;
+
settings->priv->use_idle = use_idle;
g_object_notify (G_OBJECT (settings), "use-idle");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->use_namespace ? 1 : 0) == (use_namespace ? 1 : 0))
+ return;
+
settings->priv->use_namespace = use_namespace;
g_object_notify (G_OBJECT (settings), "use-namespace");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->use_qresync ? 1 : 0) == (use_qresync ? 1 : 0))
+ return;
+
settings->priv->use_qresync = use_qresync;
g_object_notify (G_OBJECT (settings), "use-qresync");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->use_shell_command ? 1 : 0) == (use_shell_command ? 1 : 0))
+ return;
+
settings->priv->use_shell_command = use_shell_command;
g_object_notify (G_OBJECT (settings), "use-shell-command");
{
g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+ if ((settings->priv->use_subscriptions ? 1 : 0) == (use_subscriptions ? 1 : 0))
+ return;
+
settings->priv->use_subscriptions = use_subscriptions;
g_object_notify (G_OBJECT (settings), "use-subscriptions");
const gchar *path)
{
gsize length = 0;
+ gchar *new_path;
g_return_if_fail (CAMEL_IS_LOCAL_SETTINGS (settings));
g_mutex_lock (settings->priv->property_lock);
+ new_path = g_strndup (path, length);
+
+ if (g_strcmp0 (settings->priv->path, new_path) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ g_free (new_path);
+ return;
+ }
+
g_free (settings->priv->path);
- settings->priv->path = g_strndup (path, length);
+ settings->priv->path = new_path;
g_mutex_unlock (settings->priv->property_lock);
medium_set_content (CamelMedium *medium,
CamelDataWrapper *content)
{
+ if (medium->priv->content == content)
+ return;
+
if (content != NULL)
g_object_ref (content);
{
g_return_if_fail (CAMEL_IS_OBJECT (object));
+ if (g_strcmp0 (object->priv->state_filename, state_filename) == 0)
+ return;
+
g_free (object->priv->state_filename);
object->priv->state_filename = g_strdup (state_filename);
{
g_return_if_fail (CAMEL_IS_OFFLINE_FOLDER (folder));
+ if ((folder->priv->offline_sync ? 1 : 0) == (offline_sync ? 1 : 0))
+ return;
+
folder->priv->offline_sync = offline_sync;
g_object_notify (G_OBJECT (folder), "offline-sync");
{
g_return_if_fail (CAMEL_IS_OFFLINE_SETTINGS (settings));
+ if ((settings->priv->stay_synchronized ? 1 : 0) == (stay_synchronized ? 1 : 0))
+ return;
+
settings->priv->stay_synchronized = stay_synchronized;
g_object_notify (G_OBJECT (settings), "stay-synchronized");
{
g_return_if_fail (CAMEL_IS_SASL (sasl));
+ if ((sasl->priv->authenticated ? 1 : 0) == (authenticated ? 1 : 0))
+ return;
+
sasl->priv->authenticated = authenticated;
g_object_notify (G_OBJECT (sasl), "authenticated");
{
g_return_if_fail (CAMEL_IS_SERVICE (service));
+ if (g_strcmp0 (service->priv->display_name, display_name) == 0)
+ return;
+
if (display_name != NULL)
g_return_if_fail (g_utf8_validate (display_name, -1, NULL));
{
g_return_if_fail (CAMEL_IS_SERVICE (service));
+ if (g_strcmp0 (service->priv->password, password) == 0)
+ return;
+
g_free (service->priv->password);
service->priv->password = g_strdup (password);
g_return_if_fail (CAMEL_IS_SERVICE (service));
+ if (service->priv->settings == settings)
+ return;
+
class = CAMEL_SERVICE_GET_CLASS (service);
if (settings != NULL) {
{
g_return_if_fail (CAMEL_IS_STORE_SETTINGS (settings));
+ if ((settings->priv->filter_inbox ? 1 : 0) == (filter_inbox ? 1 : 0))
+ return;
+
settings->priv->filter_inbox = filter_inbox;
g_object_notify (G_OBJECT (settings), "filter-inbox");
g_return_if_fail (CAMEL_IS_IMAP_FOLDER (imap_folder));
+ if ((imap_folder->priv->check_folder ? 1 : 0) == (check_folder ? 1 : 0))
+ return;
+
imap_folder->priv->check_folder = check_folder;
folder = CAMEL_FOLDER (imap_folder);
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->check_all ? 1 : 0) == (check_all ? 1 : 0))
+ return;
+
settings->priv->check_all = check_all;
g_object_notify (G_OBJECT (settings), "check-all");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->check_subscribed ? 1 : 0) == (check_subscribed ? 1 : 0))
+ return;
+
settings->priv->check_subscribed = check_subscribed;
g_object_notify (G_OBJECT (settings), "check-subscribed");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if (settings->priv->fetch_headers == fetch_headers)
+ return;
+
settings->priv->fetch_headers = fetch_headers;
g_object_notify (G_OBJECT (settings), "fetch-headers");
return duplicate;
}
+static gboolean
+fetch_headers_equal (const gchar * const *h1,
+ const gchar * const *h2)
+{
+ gint ii;
+
+ if (!h1 || !h2)
+ return h1 == h2;
+
+ for (ii = 0; h1[ii] && h2[ii]; ii++) {
+ if (g_strcmp0 (h1[ii], h2[ii]) != 0)
+ return FALSE;
+ }
+
+ return !h1[ii] && h1[ii] == h2[ii];
+}
+
/**
* camel_imap_settings_set_fetch_headers_extra:
* @settings: a #CamelImapSettings
g_mutex_lock (settings->priv->property_lock);
+ if (fetch_headers_equal (
+ (const gchar * const *) settings->priv->fetch_headers_extra,
+ fetch_headers_extra)) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_strfreev (settings->priv->fetch_headers_extra);
settings->priv->fetch_headers_extra =
g_strdupv ((gchar **) fetch_headers_extra);
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->filter_junk ? 1 : 0) == (filter_junk ? 1 : 0))
+ return;
+
settings->priv->filter_junk = filter_junk;
g_object_notify (G_OBJECT (settings), "filter-junk");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->filter_all ? 1 : 0) == (filter_all ? 1 : 0))
+ return;
+
settings->priv->filter_all = filter_all;
g_object_notify (G_OBJECT (settings), "filter-all");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->filter_junk_inbox ? 1 : 0) == (filter_junk_inbox ? 1 : 0))
+ return;
+
settings->priv->filter_junk_inbox = filter_junk_inbox;
g_object_notify (G_OBJECT (settings), "filter-junk-inbox");
g_mutex_lock (settings->priv->property_lock);
+ if (g_strcmp0 (settings->priv->namespace, namespace) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_free (settings->priv->namespace);
settings->priv->namespace = g_strdup (namespace);
g_mutex_lock (settings->priv->property_lock);
+ if (g_strcmp0 (settings->priv->real_junk_path, real_junk_path) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_free (settings->priv->real_junk_path);
settings->priv->real_junk_path = g_strdup (real_junk_path);
g_mutex_lock (settings->priv->property_lock);
+ if (g_strcmp0 (settings->priv->real_trash_path, real_trash_path) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_free (settings->priv->real_trash_path);
settings->priv->real_trash_path = g_strdup (real_trash_path);
g_mutex_lock (settings->priv->property_lock);
+ if (g_strcmp0 (settings->priv->shell_command, shell_command) == 0) {
+ g_mutex_unlock (settings->priv->property_lock);
+ return;
+ }
+
g_free (settings->priv->shell_command);
settings->priv->shell_command = g_strdup (shell_command);
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->use_namespace ? 1 : 0) == (use_namespace ? 1 : 0))
+ return;
+
settings->priv->use_namespace = use_namespace;
g_object_notify (G_OBJECT (settings), "use-namespace");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->use_real_junk_path ? 1 : 0) == (use_real_junk_path ? 1 : 0))
+ return;
+
settings->priv->use_real_junk_path = use_real_junk_path;
g_object_notify (G_OBJECT (settings), "use-real-junk-path");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->use_real_trash_path ? 1 : 0) == (use_real_trash_path ? 1 : 0))
+ return;
+
settings->priv->use_real_trash_path = use_real_trash_path;
g_object_notify (G_OBJECT (settings), "use-real-trash-path");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->use_shell_command ? 1 : 0) == (use_shell_command ? 1 : 0))
+ return;
+
settings->priv->use_shell_command = use_shell_command;
g_object_notify (G_OBJECT (settings), "use-shell-command");
{
g_return_if_fail (CAMEL_IS_IMAP_SETTINGS (settings));
+ if ((settings->priv->use_subscriptions ? 1 : 0) == (use_subscriptions ? 1 : 0))
+ return;
+
settings->priv->use_subscriptions = use_subscriptions;
g_object_notify (G_OBJECT (settings), "use-subscriptions");
{
g_return_if_fail (CAMEL_IS_LOCAL_FOLDER (local_folder));
+ if (((local_folder->flags & CAMEL_STORE_FOLDER_BODY_INDEX) ? 1 : 0) == (index_body ? 1 : 0))
+ return;
+
if (index_body)
local_folder->flags |= CAMEL_STORE_FOLDER_BODY_INDEX;
else
{
g_return_if_fail (CAMEL_IS_LOCAL_STORE (store));
+ if ((store->priv->need_summary_check ? 1 : 0) == (need_summary_check ? 1 : 0))
+ return;
+
store->priv->need_summary_check = need_summary_check;
g_object_notify (G_OBJECT (store), "need-summary-check");
{
g_return_if_fail (CAMEL_IS_MH_SETTINGS (settings));
+ if ((settings->priv->use_dot_folders ? 1 : 0) == (use_dot_folders ? 1 : 0))
+ return;
+
settings->priv->use_dot_folders = use_dot_folders;
g_object_notify (G_OBJECT (settings), "use-dot-folders");
{
g_return_if_fail (CAMEL_IS_SPOOL_SETTINGS (settings));
+ if ((settings->priv->use_xstatus_headers ? 1 : 0) == (use_xstatus_headers ? 1 : 0))
+ return;
+
settings->priv->use_xstatus_headers = use_xstatus_headers;
g_object_notify (G_OBJECT (settings), "use-xstatus-headers");
{
g_return_if_fail (CAMEL_IS_NNTP_SETTINGS (settings));
+ if ((settings->priv->filter_all ? 1 : 0) == (filter_all ? 1 : 0))
+ return;
+
settings->priv->filter_all = filter_all;
g_object_notify (G_OBJECT (settings), "filter-all");
{
g_return_if_fail (CAMEL_IS_NNTP_SETTINGS (settings));
+ if ((settings->priv->folder_hierarchy_relative ? 1 : 0) == (folder_hierarchy_relative ? 1 : 0))
+ return;
+
settings->priv->folder_hierarchy_relative = folder_hierarchy_relative;
g_object_notify (G_OBJECT (settings), "folder-hierarchy-relative");
{
g_return_if_fail (CAMEL_IS_NNTP_SETTINGS (settings));
+ if ((settings->priv->short_folder_names ? 1 : 0) == (short_folder_names ? 1 : 0))
+ return;
+
settings->priv->short_folder_names = short_folder_names;
g_object_notify (G_OBJECT (settings), "short-folder-names");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if (settings->priv->delete_after_days == delete_after_days)
+ return;
+
settings->priv->delete_after_days = delete_after_days;
g_object_notify (G_OBJECT (settings), "delete-after-days");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if ((settings->priv->delete_expunged ? 1 : 0) == (delete_expunged ? 1 : 0))
+ return;
+
settings->priv->delete_expunged = delete_expunged;
g_object_notify (G_OBJECT (settings), "delete-expunged");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if ((settings->priv->disable_extensions ? 1 : 0) == (disable_extensions ? 1 : 0))
+ return;
+
settings->priv->disable_extensions = disable_extensions;
g_object_notify (G_OBJECT (settings), "disable-extensions");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if ((settings->priv->keep_on_server ? 1 : 0) == (keep_on_server ? 1 : 0))
+ return;
+
settings->priv->keep_on_server = keep_on_server;
g_object_notify (G_OBJECT (settings), "keep-on-server");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if ((settings->priv->auto_fetch ? 1 : 0) == (auto_fetch ? 1 : 0))
+ return;
+
settings->priv->auto_fetch = auto_fetch;
g_object_notify (G_OBJECT (settings), "auto-fetch");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if ((settings->priv->mobile_mode ? 1 : 0) == (mobile_mode ? 1 : 0))
+ return;
+
settings->priv->mobile_mode = mobile_mode;
g_object_notify (G_OBJECT (settings), "mobile-mode");
{
g_return_if_fail (CAMEL_IS_POP3_SETTINGS (settings));
+ if ((settings->priv->batch_fetch_count ? 1 : 0) == (batch_fetch_count ? 1 : 0))
+ return;
+
settings->priv->batch_fetch_count = batch_fetch_count;
g_object_notify (G_OBJECT (settings), "batch-fetch-count");
g_mutex_lock (session->priv->property_lock);
+ if (g_strcmp0 (session->priv->prompt_title, prompt_title) == 0) {
+ g_mutex_unlock (session->priv->property_lock);
+ return;
+ }
+
g_free (session->priv->prompt_title);
session->priv->prompt_title = g_strdup (prompt_title);
g_mutex_lock (session->priv->property_lock);
+ if (g_strcmp0 (session->priv->prompt_message, prompt_message) == 0) {
+ g_mutex_unlock (session->priv->property_lock);
+ return;
+ }
+
g_free (session->priv->prompt_message);
session->priv->prompt_message = g_strdup (prompt_message);
g_mutex_lock (session->priv->property_lock);
+ if (g_strcmp0 (session->priv->prompt_description, prompt_description) == 0) {
+ g_mutex_unlock (session->priv->property_lock);
+ return;
+ }
+
g_free (session->priv->prompt_description);
session->priv->prompt_description = g_strdup (prompt_description);
g_return_if_fail (E_IS_BACKEND (backend));
/* Avoid unnecessary "notify" signals. */
- if (online == backend->priv->online)
+ if ((online ? 1 : 0) == (backend->priv->online ? 1 : 0))
return;
backend->priv->online = online;
{
g_return_if_fail (E_IS_SERVER_SIDE_SOURCE (source));
+ if ((source->priv->allow_auth_prompt ? 1 : 0) == (allow_auth_prompt ? 1 : 0))
+ return;
+
source->priv->allow_auth_prompt = allow_auth_prompt;
g_object_notify (G_OBJECT (source), "allow-auth-prompt");
g_return_if_fail (E_IS_SERVER_SIDE_SOURCE (source));
g_return_if_fail (write_directory != NULL);
+ if (g_strcmp0 (source->priv->write_directory, write_directory) == 0)
+ return;
+
g_free (source->priv->write_directory);
source->priv->write_directory = g_strdup (write_directory);
{
g_return_if_fail (E_IS_SOURCE_ALARMS (extension));
+ if ((extension->priv->include_me ? 1 : 0) == (include_me ? 1 : 0))
+ return;
+
extension->priv->include_me = include_me;
g_object_notify (G_OBJECT (extension), "include-me");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->last_notified, last_notified) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->last_notified);
extension->priv->last_notified = g_strdup (last_notified);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->host, host) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->host);
extension->priv->host = e_util_strdup_strip (host);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->method, method) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->method);
extension->priv->method = e_util_strdup_strip (method);
{
g_return_if_fail (E_SOURCE_AUTHENTICATION (extension));
+ if (extension->priv->port == port)
+ return;
+
extension->priv->port = port;
g_object_notify (G_OBJECT (extension), "port");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->user, user) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->user);
extension->priv->user = e_util_strdup_strip (user);
{
g_return_if_fail (E_IS_SOURCE_AUTOCOMPLETE (extension));
+ if ((extension->priv->include_me ? 1 : 0) == (include_me ? 1 : 0))
+ return;
+
extension->priv->include_me = include_me;
g_object_notify (G_OBJECT (extension), "include-me");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->backend_name, backend_name) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->backend_name);
extension->priv->backend_name = e_util_strdup_strip (backend_name);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->identity, identity) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->identity);
extension->priv->identity = e_util_strdup_strip (identity);
{
g_return_if_fail (E_IS_SOURCE_COLLECTION (extension));
+ if ((extension->priv->calendar_enabled ? 1 : 0) == (calendar_enabled ? 1 : 0))
+ return;
+
extension->priv->calendar_enabled = calendar_enabled;
g_object_notify (G_OBJECT (extension), "calendar-enabled");
{
g_return_if_fail (E_IS_SOURCE_COLLECTION (extension));
+ if ((extension->priv->contacts_enabled ? 1 : 0) == (contacts_enabled ? 1 : 0))
+ return;
+
extension->priv->contacts_enabled = contacts_enabled;
g_object_notify (G_OBJECT (extension), "contacts-enabled");
{
g_return_if_fail (E_IS_SOURCE_COLLECTION (extension));
+ if ((extension->priv->mail_enabled ? 1 : 0) == (mail_enabled ? 1 : 0))
+ return;
+
extension->priv->mail_enabled = mail_enabled;
g_object_notify (G_OBJECT (extension), "mail-enabled");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->account_id, account_id) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->account_id);
extension->priv->account_id = e_util_strdup_strip (account_id);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->identity_uid, identity_uid) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->identity_uid);
extension->priv->identity_uid = g_strdup (identity_uid);
return duplicate;
}
+static gboolean
+strv_equal (const gchar * const *strv1,
+ const gchar * const *strv2)
+{
+ gint ii;
+
+ if (!strv1 || !strv2)
+ return strv1 == strv2;
+
+ for (ii = 0; strv1[ii] && strv2[ii]; ii++) {
+ if (g_strcmp0 (strv1[ii], strv2[ii]) != 0)
+ return FALSE;
+ }
+
+ return !strv1[ii] && strv1[ii] == strv2[ii];
+}
+
/**
* e_source_mail_composition_set_bcc:
* @extension: an #ESource
g_mutex_lock (extension->priv->property_lock);
+ if (strv_equal ((const gchar * const *) extension->priv->bcc, bcc)) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_strfreev (extension->priv->bcc);
extension->priv->bcc = g_strdupv ((gchar **) bcc);
g_mutex_lock (extension->priv->property_lock);
+ if (strv_equal ((const gchar * const *) extension->priv->cc, cc)) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_strfreev (extension->priv->cc);
extension->priv->cc = g_strdupv ((gchar **) cc);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->drafts_folder, drafts_folder) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->drafts_folder);
extension->priv->drafts_folder = e_util_strdup_strip (drafts_folder);
{
g_return_if_fail (E_IS_SOURCE_MAIL_COMPOSITION (extension));
+ if ((extension->priv->sign_imip ? 1 : 0) == (sign_imip ? 1 : 0))
+ return;
+
extension->priv->sign_imip = sign_imip;
g_object_notify (G_OBJECT (extension), "sign-imip");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->templates_folder, templates_folder) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->templates_folder);
extension->priv->templates_folder = e_util_strdup_strip (templates_folder);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->address, address) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->address);
extension->priv->address = e_util_strdup_strip (address);
g_mutex_lock (extension->priv->property_lock);
+ if (extension->priv->name != NULL &&
+ g_strcmp0 (extension->priv->name, name) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->name);
extension->priv->name = e_util_strdup_strip (name);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->organization, organization) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->organization);
extension->priv->organization = e_util_strdup_strip (organization);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->reply_to, reply_to) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->reply_to);
extension->priv->reply_to = e_util_strdup_strip (reply_to);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->signature_uid, signature_uid) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->signature_uid);
extension->priv->signature_uid = g_strdup (signature_uid);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->mime_type, mime_type) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->mime_type);
extension->priv->mime_type = e_util_strdup_strip (mime_type);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->sent_folder, sent_folder) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->sent_folder);
extension->priv->sent_folder = e_util_strdup_strip (sent_folder);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->transport_uid, transport_uid) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->transport_uid);
extension->priv->transport_uid = g_strdup (transport_uid);
{
g_return_if_fail (E_IS_SOURCE_MDN (extension));
+ if (extension->priv->response_policy == response_policy)
+ return;
+
extension->priv->response_policy = response_policy;
g_object_notify (G_OBJECT (extension), "response-policy");
{
g_return_if_fail (E_IS_SOURCE_OFFLINE (extension));
+ if ((extension->priv->stay_synchronized ? 1 : 0) == (stay_synchronized ? 1 : 0))
+ return;
+
extension->priv->stay_synchronized = stay_synchronized;
g_object_notify (G_OBJECT (extension), "stay-synchronized");
{
g_return_if_fail (E_IS_SOURCE_OPENPGP (extension));
+ if ((extension->priv->always_trust ? 1 : 0) == (always_trust ? 1 : 0))
+ return;
+
extension->priv->always_trust = always_trust;
g_object_notify (G_OBJECT (extension), "always-trust");
{
g_return_if_fail (E_IS_SOURCE_OPENPGP (extension));
+ if ((extension->priv->encrypt_to_self ? 1 : 0) == (encrypt_to_self ? 1 : 0))
+ return;
+
extension->priv->encrypt_to_self = encrypt_to_self;
g_object_notify (G_OBJECT (extension), "encrypt-to-self");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->key_id, key_id) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->key_id);
extension->priv->key_id = e_util_strdup_strip (key_id);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->signing_algorithm, signing_algorithm) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->signing_algorithm);
extension->priv->signing_algorithm =
e_util_strdup_strip (signing_algorithm);
{
g_return_if_fail (E_IS_SOURCE_OPENPGP (extension));
+ if ((extension->priv->sign_by_default ? 1 : 0) == (sign_by_default ? 1 : 0))
+ return;
+
extension->priv->sign_by_default = sign_by_default;
g_object_notify (G_OBJECT (extension), "sign-by-default");
{
g_return_if_fail (E_IS_SOURCE_REFRESH (extension));
- if (enabled == extension->priv->enabled)
+ if ((enabled ? 1 : 0) == (extension->priv->enabled ? 1 : 0))
return;
extension->priv->enabled = enabled;
g_mutex_lock (extension->priv->property_lock);
+ if (extension->priv->method &&
+ g_strcmp0 (extension->priv->method, method) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->method);
extension->priv->method = e_util_strdup_strip (method);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->color, color) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->color);
extension->priv->color = e_util_strdup_strip (color);
{
g_return_if_fail (E_IS_SOURCE_SELECTABLE (extension));
+ if ((extension->priv->selected ? 1 : 0) == (selected ? 1 : 0))
+ return;
+
extension->priv->selected = selected;
g_object_notify (G_OBJECT (extension), "selected");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->encryption_certificate, encryption_certificate) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->encryption_certificate);
extension->priv->encryption_certificate =
e_util_strdup_strip (encryption_certificate);
{
g_return_if_fail (E_IS_SOURCE_SMIME (extension));
+ if ((extension->priv->encrypt_by_default ? 1 : 0) == (encrypt_by_default ? 1 : 0))
+ return;
+
extension->priv->encrypt_by_default = encrypt_by_default;
g_object_notify (G_OBJECT (extension), "encrypt-by-default");
{
g_return_if_fail (E_IS_SOURCE_SMIME (extension));
+ if ((extension->priv->encrypt_to_self ? 1 : 0) == (encrypt_to_self ? 1 : 0))
+ return;
+
extension->priv->encrypt_to_self = encrypt_to_self;
g_object_notify (G_OBJECT (extension), "encrypt-to-self");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->signing_algorithm, signing_algorithm) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->signing_algorithm);
extension->priv->signing_algorithm =
e_util_strdup_strip (signing_algorithm);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->signing_certificate, signing_certificate) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->signing_certificate);
extension->priv->signing_certificate =
e_util_strdup_strip (signing_certificate);
{
g_return_if_fail (E_IS_SOURCE_SMIME (extension));
+ if ((extension->priv->sign_by_default ? 1 : 0) == (sign_by_default ? 1 : 0))
+ return;
+
extension->priv->sign_by_default = sign_by_default;
g_object_notify (G_OBJECT (extension), "sign-by-default");
{
g_return_if_fail (E_IS_SOURCE_WEBDAV (extension));
+ if ((extension->priv->avoid_ifmatch ? 1 : 0) == (avoid_ifmatch ? 1 : 0))
+ return;
+
extension->priv->avoid_ifmatch = avoid_ifmatch;
g_object_notify (G_OBJECT (extension), "avoid-ifmatch");
{
g_return_if_fail (E_IS_SOURCE_WEBDAV (extension));
+ if ((extension->priv->calendar_auto_schedule ? 1 : 0) == (calendar_auto_schedule ? 1 : 0))
+ return;
+
extension->priv->calendar_auto_schedule = calendar_auto_schedule;
g_object_notify (G_OBJECT (extension), "calendar-auto-schedule");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->display_name, display_name) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->display_name);
extension->priv->display_name = e_util_strdup_strip (display_name);
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->email_address, email_address) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->email_address);
extension->priv->email_address = e_util_strdup_strip (email_address);
{
g_return_if_fail (E_IS_SOURCE_WEBDAV (extension));
+ if ((extension->priv->ignore_invalid_cert ? 1 : 0) == (ignore_invalid_cert ? 1 : 0))
+ return;
+
extension->priv->ignore_invalid_cert = ignore_invalid_cert;
g_object_notify (G_OBJECT (extension), "ignore-invalid-cert");
g_mutex_lock (extension->priv->property_lock);
+ if (g_strcmp0 (extension->priv->resource_path, resource_path) == 0) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
g_free (extension->priv->resource_path);
extension->priv->resource_path = e_util_strdup_strip (resource_path);
g_mutex_lock (extension->priv->property_lock);
+ if (extension->priv->uri && soup_uri_equal (extension->priv->uri, uri)) {
+ g_mutex_unlock (extension->priv->property_lock);
+ return;
+ }
+
soup_uri_free (extension->priv->uri);
extension->priv->uri = soup_uri_copy (uri);
g_mutex_lock (source->priv->property_lock);
+ if (g_strcmp0 (source->priv->parent, parent) == 0) {
+ g_mutex_unlock (source->priv->property_lock);
+ return;
+ }
+
g_free (source->priv->parent);
source->priv->parent = e_util_strdup_strip (parent);
{
g_return_if_fail (E_IS_SOURCE (source));
- if (enabled == source->priv->enabled)
+ if ((enabled ? 1 : 0) == (source->priv->enabled ? 1 : 0))
return;
source->priv->enabled = enabled;
g_mutex_lock (source->priv->property_lock);
+ if (g_strcmp0 (source->priv->display_name, display_name) == 0) {
+ g_mutex_unlock (source->priv->property_lock);
+ return;
+ }
+
g_free (source->priv->display_name);
source->priv->display_name = g_strdup (display_name);
{
g_return_if_fail (E_IS_CATEGORIES_EDITOR (editor));
+ if ((gtk_widget_get_visible (editor->priv->categories_entry) ? 1 : 0) ==
+ (entry_visible ? 1 : 0))
+ return;
+
gtk_widget_set_visible (
editor->priv->categories_entry, entry_visible);
gtk_widget_set_visible (
g_return_if_fail (E_IS_CATEGORIES_SELECTOR (selector));
+ if ((selector->priv->checkable ? 1 : 0) == (checkable ? 1 : 0))
+ return;
+
selector->priv->checkable = checkable;
column = gtk_tree_view_get_column (
{
g_return_if_fail (E_IS_NAME_SELECTOR_ENTRY (name_selector_entry));
+ if (name_selector_entry->priv->registry == registry)
+ return;
+
if (registry != NULL) {
g_return_if_fail (E_IS_SOURCE_REGISTRY (registry));
g_object_ref (registry);
{
g_return_if_fail (E_IS_SOURCE_COMBO_BOX (combo_box));
+ if (combo_box->priv->registry == registry)
+ return;
+
if (registry != NULL) {
g_return_if_fail (E_IS_SOURCE_REGISTRY (registry));
g_object_ref (registry);
{
g_return_if_fail (E_IS_SOURCE_COMBO_BOX (combo_box));
+ if (g_strcmp0 (combo_box->priv->extension_name, extension_name) == 0)
+ return;
+
g_free (combo_box->priv->extension_name);
combo_box->priv->extension_name = g_strdup (extension_name);
{
g_return_if_fail (E_IS_SOURCE_COMBO_BOX (combo_box));
- if (show_colors == combo_box->priv->show_colors)
+ if ((show_colors ? 1 : 0) == (combo_box->priv->show_colors ? 1 : 0))
return;
combo_box->priv->show_colors = show_colors;
{
g_return_if_fail (E_IS_SOURCE_SELECTOR (selector));
- if (show_colors == selector->priv->show_colors)
+ if ((show_colors ? 1 : 0) == (selector->priv->show_colors ? 1 : 0))
return;
selector->priv->show_colors = show_colors;
{
g_return_if_fail (E_IS_SOURCE_SELECTOR (selector));
- if (show_toggles == selector->priv->show_toggles)
+ if ((show_toggles ? 1 : 0) == (selector->priv->show_toggles ? 1 : 0))
return;
selector->priv->show_toggles = show_toggles;