22 #include "contactmetadata_p.h"
24 #include "contactmetadataattribute_p.h"
26 #include <akonadi/item.h>
28 using namespace Akonadi;
30 class ContactMetaData::Private
34 : mDisplayNameMode( -1 )
39 QVariantList mCustomFieldDescriptions;
42 ContactMetaData::ContactMetaData()
47 ContactMetaData::~ContactMetaData()
52 void ContactMetaData::load(
const Akonadi::Item &contact )
54 if ( !contact.hasAttribute(
"contactmetadata" ) )
57 ContactMetaDataAttribute *attribute = contact.attribute<ContactMetaDataAttribute>();
58 const QVariantMap metaData = attribute->metaData();
60 if ( metaData.contains( QLatin1String(
"DisplayNameMode" ) ) )
61 d->mDisplayNameMode = metaData.value( QLatin1String(
"DisplayNameMode" ) ).toInt();
63 d->mDisplayNameMode = -1;
65 d->mCustomFieldDescriptions = metaData.value( QLatin1String(
"CustomFieldDescriptions" ) ).toList();
68 void ContactMetaData::store( Akonadi::Item &contact )
70 ContactMetaDataAttribute *attribute = contact.attribute<ContactMetaDataAttribute>( Item::AddIfMissing );
73 if ( d->mDisplayNameMode != -1 )
74 metaData.insert( QLatin1String(
"DisplayNameMode" ), QVariant( d->mDisplayNameMode ) );
76 if ( !d->mCustomFieldDescriptions.isEmpty() )
77 metaData.insert( QLatin1String(
"CustomFieldDescriptions" ), d->mCustomFieldDescriptions );
79 attribute->setMetaData( metaData );
82 void ContactMetaData::setDisplayNameMode(
int mode )
84 d->mDisplayNameMode = mode;
87 int ContactMetaData::displayNameMode()
const
89 return d->mDisplayNameMode;
92 void ContactMetaData::setCustomFieldDescriptions(
const QVariantList &descriptions )
94 d->mCustomFieldDescriptions = descriptions;
97 QVariantList ContactMetaData::customFieldDescriptions()
const
99 return d->mCustomFieldDescriptions;