akonadi/contact
contactmetadata.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "contactmetadata_p.h"
00023
00024 #include "contactmetadataattribute_p.h"
00025
00026 #include <akonadi/item.h>
00027
00028 using namespace Akonadi;
00029
00030 class ContactMetaData::Private
00031 {
00032 public:
00033 Private()
00034 : mDisplayNameMode( -1 )
00035 {
00036 }
00037
00038 int mDisplayNameMode;
00039 };
00040
00041 ContactMetaData::ContactMetaData()
00042 : d( new Private )
00043 {
00044 }
00045
00046 ContactMetaData::~ContactMetaData()
00047 {
00048 delete d;
00049 }
00050
00051 void ContactMetaData::load( const Akonadi::Item &contact )
00052 {
00053 if ( !contact.hasAttribute( "contactmetadata" ) )
00054 return;
00055
00056 ContactMetaDataAttribute *attribute = contact.attribute<ContactMetaDataAttribute>();
00057 const QVariantMap metaData = attribute->metaData();
00058
00059 if ( metaData.contains( QLatin1String( "DisplayNameMode" ) ) )
00060 d->mDisplayNameMode = metaData.value( QLatin1String( "DisplayNameMode" ) ).toInt();
00061 else
00062 d->mDisplayNameMode = -1;
00063 }
00064
00065 void ContactMetaData::store( Akonadi::Item &contact )
00066 {
00067 ContactMetaDataAttribute *attribute = contact.attribute<ContactMetaDataAttribute>( Item::AddIfMissing );
00068
00069 QVariantMap metaData;
00070 if ( d->mDisplayNameMode != -1 )
00071 metaData.insert( QLatin1String( "DisplayNameMode" ), QVariant( d->mDisplayNameMode ) );
00072
00073 attribute->setMetaData( metaData );
00074 }
00075
00076 void ContactMetaData::setDisplayNameMode( int mode )
00077 {
00078 d->mDisplayNameMode = mode;
00079 }
00080
00081 int ContactMetaData::displayNameMode() const
00082 {
00083 return d->mDisplayNameMode;
00084 }