static void seahorse_pgp_uid_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { SeahorsePgpUid *self = SEAHORSE_PGP_UID (object); switch (prop_id) { case PROP_SIGNATURES: g_value_set_boxed (value, seahorse_pgp_uid_get_signatures (self)); break; case PROP_VALIDITY: g_value_set_uint (value, seahorse_pgp_uid_get_validity (self)); break; case PROP_VALIDITY_STR: g_value_set_string (value, seahorse_pgp_uid_get_validity_str (self)); break; case PROP_NAME: g_value_set_string (value, seahorse_pgp_uid_get_name (self)); break; case PROP_EMAIL: g_value_set_string (value, seahorse_pgp_uid_get_email (self)); break; case PROP_COMMENT: g_value_set_string (value, seahorse_pgp_uid_get_comment (self)); break; } }
void seahorse_gpgme_uid_set_userid (SeahorseGpgmeUid *self, gpgme_user_id_t userid) { SeahorsePgpUid *base; GObject *obj; gpgme_user_id_t uid; gchar *string; gint index, i; g_return_if_fail (SEAHORSE_IS_GPGME_UID (self)); g_return_if_fail (userid); if (self->pv->userid) g_return_if_fail (seahorse_gpgme_uid_is_same (self, userid)); /* Make sure that this userid is in the pubkey */ index = -1; for (i = 0, uid = self->pv->pubkey->uids; uid; ++i, uid = uid->next) { if(userid == uid) { index = i; break; } } g_return_if_fail (index >= 0); self->pv->userid = userid; self->pv->gpgme_index = index; obj = G_OBJECT (self); g_object_freeze_notify (obj); g_object_notify (obj, "userid"); g_object_notify (obj, "gpgme_index"); base = SEAHORSE_PGP_UID (self); string = convert_string (userid->comment); seahorse_pgp_uid_set_comment (base, string); g_free (string); string = convert_string (userid->email); seahorse_pgp_uid_set_email (base, string); g_free (string); string = convert_string (userid->name); seahorse_pgp_uid_set_name (base, string); g_free (string); realize_signatures (self); seahorse_pgp_uid_set_validity (base, seahorse_gpgme_convert_validity (userid->validity)); g_object_thaw_notify (obj); }
static void seahorse_pgp_uid_realize (SeahorseObject *obj) { SeahorsePgpUid *self = SEAHORSE_PGP_UID (obj); gchar *markup; /* Don't realize if no name present */ if (!self->pv->name) return; self->pv->realized = TRUE; SEAHORSE_OBJECT_CLASS (seahorse_pgp_uid_parent_class)->realize (obj); g_object_set (self, "label", self->pv->name ? self->pv->name : "", NULL); markup = seahorse_pgp_uid_calc_markup (self->pv->name, self->pv->email, self->pv->comment, 0); g_object_set (self, "markup", markup, NULL); g_free (markup); }
static void seahorse_pgp_uid_object_finalize (GObject *gobject) { SeahorsePgpUid *self = SEAHORSE_PGP_UID (gobject); seahorse_object_list_free (self->pv->signatures); self->pv->signatures = NULL; g_free (self->pv->name); self->pv->name = NULL; g_free (self->pv->email); self->pv->email = NULL; g_free (self->pv->comment); self->pv->comment = NULL; G_OBJECT_CLASS (seahorse_pgp_uid_parent_class)->finalize (gobject); }
static void realize_signatures (SeahorseGpgmeUid *self) { gpgme_key_sig_t gsig; SeahorsePgpSignature *sig; GList *sigs = NULL; guint flags; g_return_if_fail (self->pv->pubkey); g_return_if_fail (self->pv->userid); /* If this key was loaded without signatures, then leave them as is */ if ((self->pv->pubkey->keylist_mode & GPGME_KEYLIST_MODE_SIGS) == 0) return; for (gsig = self->pv->userid->signatures; gsig; gsig = gsig->next) { sig = seahorse_pgp_signature_new (gsig->keyid); /* Order of parsing these flags is important */ flags = 0; if (gsig->revoked) flags |= SEAHORSE_FLAG_REVOKED; if (gsig->expired) flags |= SEAHORSE_FLAG_EXPIRED; if (flags == 0 && !gsig->invalid) flags = SEAHORSE_FLAG_IS_VALID; if (gsig->exportable) flags |= SEAHORSE_FLAG_EXPORTABLE; seahorse_pgp_signature_set_flags (sig, flags); sigs = g_list_prepend (sigs, sig); } seahorse_pgp_uid_set_signatures (SEAHORSE_PGP_UID (self), sigs); seahorse_object_list_free (sigs); }