static void gkm_secret_item_set_property (GObject *obj, guint prop_id, const GValue *value, GParamSpec *pspec) { GkmSecretItem *self = GKM_SECRET_ITEM (obj); switch (prop_id) { case PROP_COLLECTION: g_return_if_fail (!self->collection); self->collection = g_value_get_object (value); g_return_if_fail (self->collection); g_object_add_weak_pointer (G_OBJECT (self->collection), (gpointer*)&(self->collection)); break; case PROP_FIELDS: gkm_secret_item_set_fields (self, g_value_get_boxed (value)); break; case PROP_SCHEMA: gkm_secret_item_set_schema (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec); break; } }
static void setup_item_from_info (GkmSecretItem *item, GkmSecretData *data, ItemInfo *info) { GkmSecretObject *obj = GKM_SECRET_OBJECT (item); const gchar *schema_name; GkmSecret *secret; gkm_secret_object_set_label (obj, info->display_name); gkm_secret_object_set_created (obj, info->ctime); gkm_secret_object_set_modified (obj, info->mtime); schema_name = g_hash_table_lookup (info->attributes, GKM_SECRET_FIELD_SCHEMA); if (schema_name == NULL) schema_name = gkm_secret_compat_format_item_type (info->type); gkm_secret_item_set_schema (item, schema_name); gkm_secret_item_set_fields (item, info->attributes); /* Collection is locked */ if (!data) { g_object_set_data (G_OBJECT (item), "compat-acl", NULL); } else { secret = gkm_secret_new (info->ptr_secret, info->n_secret); gkm_secret_data_set_secret (data, gkm_secret_object_get_identifier (obj), secret); g_object_unref (secret); g_object_set_data_full (G_OBJECT (item), "compat-acl", info->acl, gkm_secret_compat_acl_free); info->acl = NULL; } }