[evolution] Bug 681882 - Account signature not selected in new composer window
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug 681882 - Account signature not selected in new composer window
- Date: Thu, 16 Aug 2012 05:08:40 +0000 (UTC)
commit 582ba50c50e4f6250e82363ff7c9bffcff67fd3c
Author: Matthew Barnes <mbarnes redhat com>
Date: Thu Aug 16 01:06:47 2012 -0400
Bug 681882 - Account signature not selected in new composer window
widgets/misc/e-mail-signature-combo-box.c | 51 +++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
---
diff --git a/widgets/misc/e-mail-signature-combo-box.c b/widgets/misc/e-mail-signature-combo-box.c
index 26f87b9..275c253 100644
--- a/widgets/misc/e-mail-signature-combo-box.c
+++ b/widgets/misc/e-mail-signature-combo-box.c
@@ -81,6 +81,49 @@ mail_signature_combo_box_registry_changed (ESourceRegistry *registry,
combo_box);
}
+static gboolean
+mail_signature_combo_box_identity_to_signature (GBinding *binding,
+ const GValue *source_value,
+ GValue *target_value,
+ gpointer user_data)
+{
+ EMailSignatureComboBox *combo_box;
+ ESourceRegistry *registry;
+ GObject *source_object;
+ ESource *source;
+ ESourceMailIdentity *extension;
+ const gchar *identity_uid;
+ const gchar *signature_uid = "none";
+ const gchar *extension_name;
+
+ /* Source and target are the same object. */
+ source_object = g_binding_get_source (binding);
+ combo_box = E_MAIL_SIGNATURE_COMBO_BOX (source_object);
+ registry = e_mail_signature_combo_box_get_registry (combo_box);
+
+ identity_uid = g_value_get_string (source_value);
+ if (identity_uid == NULL)
+ return FALSE;
+
+ source = e_source_registry_ref_source (registry, identity_uid);
+ if (source == NULL)
+ return FALSE;
+
+ extension_name = E_SOURCE_EXTENSION_MAIL_IDENTITY;
+ if (!e_source_has_extension (source, extension_name)) {
+ g_object_unref (source);
+ return FALSE;
+ }
+
+ extension = e_source_get_extension (source, extension_name);
+ signature_uid = e_source_mail_identity_get_signature_uid (extension);
+ g_value_set_string (target_value, signature_uid);
+
+ g_object_unref (source);
+
+ return TRUE;
+}
+
static void
mail_signature_combo_box_set_registry (EMailSignatureComboBox *combo_box,
ESourceRegistry *registry)
@@ -218,6 +261,14 @@ mail_signature_combo_box_constructed (GObject *object)
gtk_cell_layout_add_attribute (
cell_layout, cell_renderer, "text", COLUMN_DISPLAY_NAME);
+ g_object_bind_property_full (
+ combo_box, "identity-uid",
+ combo_box, "active-id",
+ G_BINDING_DEFAULT,
+ mail_signature_combo_box_identity_to_signature,
+ NULL,
+ NULL, (GDestroyNotify) NULL);
+
e_mail_signature_combo_box_refresh (
E_MAIL_SIGNATURE_COMBO_BOX (object));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]