00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "customfieldmanager_p.h"
00023
00024 #include <kconfig.h>
00025 #include <kconfiggroup.h>
00026
00027 #include <QVector>
00028
00029 void CustomFieldManager::setGlobalCustomFieldDescriptions( const CustomField::List &customFields )
00030 {
00031 KConfig config( QLatin1String( "akonadi_contactrc" ) );
00032 KConfigGroup group( &config, QLatin1String( "GlobalCustomFields" ) );
00033
00034 group.deleteGroup();
00035 foreach ( const CustomField &field, customFields ) {
00036 const QString key = field.key();
00037 const QString value = CustomField::typeToString( field.type() ) + QLatin1Char( ':' ) + field.title();
00038
00039 group.writeEntry( key, value );
00040 }
00041 }
00042
00043 CustomField::List CustomFieldManager::globalCustomFieldDescriptions()
00044 {
00045 KConfig config( QLatin1String( "akonadi_contactrc" ) );
00046 const KConfigGroup group( &config, QLatin1String( "GlobalCustomFields" ) );
00047
00048 CustomField::List customFields;
00049
00050 const QStringList keys = group.keyList();
00051 foreach ( const QString &key, keys ) {
00052 CustomField field;
00053 field.setKey( key );
00054 field.setScope( CustomField::GlobalScope );
00055
00056 const QString value = group.readEntry( key, QString() );
00057 const int pos = value.indexOf( QLatin1Char( ':' ) );
00058 if ( pos != -1 ) {
00059 field.setType( CustomField::stringToType( value.left( pos - 1 ) ) );
00060 field.setTitle( value.mid( pos + 1 ) );
00061 }
00062
00063 customFields << field;
00064 }
00065
00066 return customFields;
00067 }