aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-signature-list.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-signature-list.c')
-rw-r--r--e-util/e-signature-list.c42
1 files changed, 22 insertions, 20 deletions
diff --git a/e-util/e-signature-list.c b/e-util/e-signature-list.c
index 094d4785da..3fd4f8ab15 100644
--- a/e-util/e-signature-list.c
+++ b/e-util/e-signature-list.c
@@ -153,8 +153,7 @@ add_autogen (ESignatureList *list, GSList *new_sigs)
ESignature *autogen;
autogen = e_signature_new ();
- autogen->name = g_strdup ("Autogenerated");
- autogen->autogen = TRUE;
+ e_signature_set_autogenerated (autogen, TRUE);
e_list_append (E_LIST (list), autogen);
@@ -182,8 +181,11 @@ gconf_signatures_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry,
if ((uid = e_signature_uid_from_xml (l->data))) {
/* See if this is an existing signature */
for (iter = e_list_get_iterator (old_sigs); e_iterator_is_valid (iter); e_iterator_next (iter)) {
+ const gchar *signature_uid;
+
signature = (ESignature *) e_iterator_get (iter);
- if (!strcmp (signature->uid, uid)) {
+ signature_uid = e_signature_get_uid (signature);
+ if (!strcmp (signature_uid, uid)) {
/* The signature still exists, so remove
* it from "old_sigs" and update it.
*/
@@ -192,7 +194,7 @@ gconf_signatures_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry,
if (e_signature_set_from_xml (signature, l->data))
g_signal_emit (signature_list, signals[SIGNATURE_CHANGED], 0, signature);
- have_autogen |= signature->autogen;
+ have_autogen |= e_signature_get_autogenerated (signature);
break;
}
@@ -204,11 +206,8 @@ gconf_signatures_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry,
if (!found) {
/* Must be a new signature */
signature = e_signature_new_from_xml (l->data);
- have_autogen |= signature->autogen;
- if (!signature->uid) {
- signature->uid = e_uid_new ();
- resave = TRUE;
- }
+ have_autogen |= e_signature_get_autogenerated (signature);
+ resave = TRUE;
e_list_append (E_LIST (signature_list), signature);
new_sigs = g_slist_prepend (new_sigs, signature);
@@ -422,9 +421,11 @@ e_signature_list_remove (ESignatureList *signatures, ESignature *signature)
* Return value: The signature or NULL if it doesn't exist.
**/
const ESignature *
-e_signature_list_find (ESignatureList *signatures, e_signature_find_t type, const gchar *key)
+e_signature_list_find (ESignatureList *signatures,
+ e_signature_find_t type,
+ const gchar *key)
{
- const ESignature *signature = NULL;
+ ESignature *signature = NULL;
EIterator *it;
/* this could use a callback for more flexibility ...
@@ -436,20 +437,21 @@ e_signature_list_find (ESignatureList *signatures, e_signature_find_t type, cons
for (it = e_list_get_iterator ((EList *) signatures);
e_iterator_is_valid (it);
e_iterator_next (it)) {
- gint found = 0;
+ const gchar *value;
- signature = (const ESignature *) e_iterator_get (it);
+ /* XXX EIterator misuses const. */
+ signature = (ESignature *) e_iterator_get (it);
switch (type) {
- case E_SIGNATURE_FIND_NAME:
- found = strcmp (signature->name, key) == 0;
- break;
- case E_SIGNATURE_FIND_UID:
- found = strcmp (signature->uid, key) == 0;
- break;
+ case E_SIGNATURE_FIND_NAME:
+ value = e_signature_get_name (signature);
+ break;
+ case E_SIGNATURE_FIND_UID:
+ value = e_signature_get_uid (signature);
+ break;
}
- if (found)
+ if (g_strcmp0 (value, key) == 0)
break;
signature = NULL;