From c003c99a75587ba39a45d164272760c33f9666b5 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 25 Feb 2011 16:20:41 +0100 Subject: Bug #614480 - Avoid using G_TYPE_INSTANCE_GET_PRIVATE repeatedly --- composer/e-composer-header-table.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'composer/e-composer-header-table.c') diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index 1e78111da4..d2d41dfdcc 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -32,10 +32,6 @@ #include "e-composer-post-header.h" #include "e-composer-text-header.h" -#define E_COMPOSER_HEADER_TABLE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE \ - ((obj), E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTablePrivate)) - #define HEADER_TOOLTIP_TO \ _("Enter the recipients of the message") #define HEADER_TOOLTIP_CC \ @@ -538,7 +534,7 @@ composer_header_table_constructor (GType type, e_composer_header_table_parent_class)->constructor ( type, n_construct_properties, construct_properties); - priv = E_COMPOSER_HEADER_TABLE_GET_PRIVATE (object); + priv = E_COMPOSER_HEADER_TABLE (object)->priv; small_screen_mode = e_shell_get_small_screen_mode (priv->shell); @@ -810,7 +806,7 @@ composer_header_table_dispose (GObject *object) EComposerHeaderTablePrivate *priv; gint ii; - priv = E_COMPOSER_HEADER_TABLE_GET_PRIVATE (object); + priv = E_COMPOSER_HEADER_TABLE (object)->priv; for (ii = 0; ii < G_N_ELEMENTS (priv->headers); ii++) { if (priv->headers[ii] != NULL) { @@ -998,7 +994,7 @@ e_composer_header_table_init (EComposerHeaderTable *table) GtkWidget *widget; gint ii; - table->priv = E_COMPOSER_HEADER_TABLE_GET_PRIVATE (table); + table->priv = G_TYPE_INSTANCE_GET_PRIVATE (table, E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTablePrivate); name_selector = e_name_selector_new (); table->priv->name_selector = name_selector; -- cgit v1.2.3 From 7aacf983b32ecac26bc9707697da622b3ef164a3 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 5 Mar 2011 12:33:49 -0500 Subject: Coding style and whitespace cleanup. --- composer/e-composer-header-table.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'composer/e-composer-header-table.c') diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index d2d41dfdcc..efac8a1d31 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -994,7 +994,9 @@ e_composer_header_table_init (EComposerHeaderTable *table) GtkWidget *widget; gint ii; - table->priv = G_TYPE_INSTANCE_GET_PRIVATE (table, E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTablePrivate); + table->priv = G_TYPE_INSTANCE_GET_PRIVATE ( + table, E_TYPE_COMPOSER_HEADER_TABLE, + EComposerHeaderTablePrivate); name_selector = e_name_selector_new (); table->priv->name_selector = name_selector; -- cgit v1.2.3 From c24038c4f62f37b89d1bda9542ca5ccc843d4ea0 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 27 May 2011 15:23:07 +0200 Subject: Bug #646109 - Fix use of include to make sure translations work --- composer/e-composer-header-table.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'composer/e-composer-header-table.c') diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index efac8a1d31..78404a62e7 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -15,6 +15,10 @@ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include "e-composer-header-table.h" #include -- cgit v1.2.3 From 54e056e2ddd661e589ccbc31b3faa2999631175e Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 23 Jun 2011 18:30:36 +0200 Subject: Postpone ENameSelector loading as much as possible Also fixes few memory leaks around ENameSelector and cancels loading of its address books when not needed any more. --- composer/e-composer-header-table.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'composer/e-composer-header-table.c') diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index 78404a62e7..c87abcf307 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -825,6 +825,7 @@ composer_header_table_dispose (GObject *object) } if (priv->name_selector != NULL) { + e_name_selector_cancel_loading (priv->name_selector); g_object_unref (priv->name_selector); priv->name_selector = NULL; } @@ -990,6 +991,17 @@ e_composer_header_table_class_init (EComposerHeaderTableClass *class) G_PARAM_READWRITE)); } +static void +composer_header_table_realize_cb (EComposerHeaderTable *table) +{ + g_return_if_fail (table != NULL); + g_return_if_fail (table->priv != NULL); + + g_signal_handlers_disconnect_by_func (table, composer_header_table_realize_cb, NULL); + + e_name_selector_load_books (table->priv->name_selector); +} + static void e_composer_header_table_init (EComposerHeaderTable *table) { @@ -1064,6 +1076,9 @@ e_composer_header_table_init (EComposerHeaderTable *table) header->input_widget, "visible", G_BINDING_SYNC_CREATE); } + + /* postpone name_selector loading, do that only when really needed */ + g_signal_connect (table, "realize", G_CALLBACK (composer_header_table_realize_cb), NULL); } GtkWidget * -- cgit v1.2.3 From ae9db3ed236b0c734fd12c8dc8c99764626bf0b8 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 1 Jul 2011 00:07:26 -0400 Subject: Coding style and whitespace cleanup. --- composer/e-composer-header-table.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'composer/e-composer-header-table.c') diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index c87abcf307..7fe1399dbe 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -997,7 +997,8 @@ composer_header_table_realize_cb (EComposerHeaderTable *table) g_return_if_fail (table != NULL); g_return_if_fail (table->priv != NULL); - g_signal_handlers_disconnect_by_func (table, composer_header_table_realize_cb, NULL); + g_signal_handlers_disconnect_by_func ( + table, composer_header_table_realize_cb, NULL); e_name_selector_load_books (table->priv->name_selector); } @@ -1078,7 +1079,9 @@ e_composer_header_table_init (EComposerHeaderTable *table) } /* postpone name_selector loading, do that only when really needed */ - g_signal_connect (table, "realize", G_CALLBACK (composer_header_table_realize_cb), NULL); + g_signal_connect ( + table, "realize", + G_CALLBACK (composer_header_table_realize_cb), NULL); } GtkWidget * -- cgit v1.2.3 From ff8b1650ead99d8507469ff1fcf4805d6451ba93 Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Thu, 13 Oct 2011 17:44:28 +0200 Subject: Port EComposerHeaderTable to GSettings --- composer/e-composer-header-table.c | 56 ++++++++++++++------------------------ 1 file changed, 21 insertions(+), 35 deletions(-) (limited to 'composer/e-composer-header-table.c') diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index 2dd94eb875..5083ef38a1 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -25,7 +25,6 @@ #include #include -#include #include #include "e-msg-composer.h" @@ -63,7 +62,6 @@ enum { struct _EComposerHeaderTablePrivate { EComposerHeader *headers[E_COMPOSER_NUM_HEADERS]; - guint gconf_bindings[E_COMPOSER_NUM_HEADERS]; GtkWidget *signature_label; GtkWidget *signature_combo_box; ENameSelector *name_selector; @@ -305,35 +303,30 @@ from_header_should_be_visible (EComposerHeaderTable *table) static void composer_header_table_setup_mail_headers (EComposerHeaderTable *table) { - GConfBridge *bridge; + GSettings *settings; gint ii; - bridge = gconf_bridge_get (); + settings = g_settings_new ("org.gnome.evolution.mail"); for (ii = 0; ii < E_COMPOSER_NUM_HEADERS; ii++) { EComposerHeader *header; const gchar *key; - guint binding_id; gboolean sensitive; gboolean visible; - binding_id = table->priv->gconf_bindings[ii]; header = e_composer_header_table_get_header (table, ii); - if (binding_id > 0) - gconf_bridge_unbind (bridge, binding_id); - switch (ii) { case E_COMPOSER_HEADER_BCC: - key = COMPOSER_GCONF_PREFIX "/show_mail_bcc"; + key = "composer-show-bcc"; break; case E_COMPOSER_HEADER_CC: - key = COMPOSER_GCONF_PREFIX "/show_mail_cc"; + key = "composer-show-cc"; break; case E_COMPOSER_HEADER_REPLY_TO: - key = COMPOSER_GCONF_PREFIX "/show_mail_reply_to"; + key = "composer-show-reply-to"; break; default: @@ -365,42 +358,36 @@ composer_header_table_setup_mail_headers (EComposerHeaderTable *table) e_composer_header_set_sensitive (header, sensitive); e_composer_header_set_visible (header, visible); - if (key != NULL) - binding_id = gconf_bridge_bind_property ( - bridge, key, G_OBJECT (header), "visible"); - else - binding_id = 0; - - table->priv->gconf_bindings[ii] = binding_id; + if (key != NULL) { + g_settings_unbind (settings, key); + g_settings_bind (settings, key, G_OBJECT (header), "visible", G_SETTINGS_BIND_DEFAULT); + } } + + g_object_unref (settings); } static void composer_header_table_setup_post_headers (EComposerHeaderTable *table) { - GConfBridge *bridge; + GSettings *settings; gint ii; - bridge = gconf_bridge_get (); + settings = g_settings_new ("org.gnome.evolution.mail"); for (ii = 0; ii < E_COMPOSER_NUM_HEADERS; ii++) { EComposerHeader *header; const gchar *key; - guint binding_id; - binding_id = table->priv->gconf_bindings[ii]; header = e_composer_header_table_get_header (table, ii); - if (binding_id > 0) - gconf_bridge_unbind (bridge, binding_id); - switch (ii) { case E_COMPOSER_HEADER_FROM: - key = COMPOSER_GCONF_PREFIX "/show_post_from"; + key = "composer-show-post-from"; break; case E_COMPOSER_HEADER_REPLY_TO: - key = COMPOSER_GCONF_PREFIX "/show_post_reply_to"; + key = "composer-show-post-reply-to"; break; default: @@ -423,14 +410,13 @@ composer_header_table_setup_post_headers (EComposerHeaderTable *table) break; } - if (key != NULL) - binding_id = gconf_bridge_bind_property ( - bridge, key, G_OBJECT (header), "visible"); - else - binding_id = 0; - - table->priv->gconf_bindings[ii] = binding_id; + if (key != NULL) { + g_settings_unbind (settings, key); + g_settings_bind (settings, key, G_OBJECT (header), "visible", G_SETTINGS_BIND_DEFAULT); + } } + + g_object_unref (settings); } static void -- cgit v1.2.3