idhelper.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <kconfig.h>
00023 #include <kdebug.h>
00024
00025 #include "idhelper.h"
00026
00027 using namespace KSync;
00028
00029
00030 KonnectorUIDHelper::KonnectorUIDHelper( const QString &dir )
00031 {
00032
00033 m_config = new KConfig( dir + "/konnector-ids.conf");
00034 m_config->setGroup("uids");
00035 QString string = m_config->readEntry( "ids" );
00036 QStringList list = QStringList::split( "%%||%%", string );
00037
00038 for ( QStringList::Iterator it = list.begin(); it != list.end() ; ++it ) {
00039 QStringList list2 = QStringList::split("||%%||",(*it), true );
00040 addId( list2[0], list2[1], list2[2] );
00041 }
00042
00043 }
00044 KonnectorUIDHelper::~KonnectorUIDHelper()
00045 {
00046 save();
00047 delete m_config;
00048 }
00049 QString KonnectorUIDHelper::konnectorId( const QString &appName, const QString &kdeId, const QString &defaultId )
00050 {
00051
00052
00053
00054
00055
00056 QMap<QString, Kontainer::ValueList >::Iterator it;
00057 it = m_ids.find( appName );
00058 if ( it != m_ids.end() ) {
00059 Kontainer::ValueList kontainer = it.data();
00060 Kontainer::ValueList::Iterator it;
00061 for ( it = kontainer.begin(); it != kontainer.end(); ++it ) {
00062 if ( kdeId.stripWhiteSpace() == (*it).second().stripWhiteSpace() ) {
00063
00064 return (*it).first();
00065 }
00066 }
00067 }
00068 return defaultId;
00069 }
00070 QString KonnectorUIDHelper::kdeId( const QString &appName, const QString &konnectorId, const QString &defaultId )
00071 {
00072
00073
00074
00075
00076 QMap<QString, Kontainer::ValueList >::Iterator it;
00077 it = m_ids.find( appName );
00078 if ( it != m_ids.end() ) {
00079 Kontainer::ValueList kontainer = it.data();
00080 Kontainer::ValueList::Iterator it;
00081 for ( it = kontainer.begin(); it != kontainer.end(); ++it ) {
00082 if ( konnectorId.stripWhiteSpace() == (*it).first().stripWhiteSpace() ) {
00083
00084 return (*it).second();
00085 }
00086 }
00087 }
00088 return defaultId;
00089 }
00090 void KonnectorUIDHelper::addId( const QString& appName,
00091 const QString& konnectorId,
00092 const QString& kdeId )
00093 {
00094
00095
00096
00097
00098 QMap<QString, Kontainer::ValueList >::Iterator it;
00099 it = m_ids.find( appName );
00100
00101 if ( it == m_ids.end() ) {
00102
00103 Kontainer::ValueList kontainer;
00104 kontainer.append( Kontainer( konnectorId, kdeId ) );
00105 m_ids.replace( appName, kontainer );
00106 }else{
00107
00108 Kontainer::ValueList kontainer = it.data();
00109 Kontainer kont( konnectorId, kdeId );
00110 kontainer.remove( kont );
00111 kontainer.append( kont );
00112 m_ids.replace( appName, kontainer );
00113 }
00114 }
00115 void KonnectorUIDHelper::removeId( const QString &appName, const QString &id )
00116 {
00117 QMap<QString, Kontainer::ValueList >::Iterator it;
00118 it = m_ids.find( appName );
00119 if ( it== m_ids.end() ) {
00120 Kontainer::ValueList kontainer = it.data();
00121 Kontainer::ValueList::Iterator it;
00122 for ( it = kontainer.begin(); it != kontainer.end(); ++it ) {
00123 if ( (*it).first() == id || (*it).second() == id ) {
00124 it = kontainer.remove( it );
00125 return;
00126 }
00127 }
00128 }
00129 }
00130 void KonnectorUIDHelper::replaceIds( const QString &app,
00131 Kontainer::ValueList ids )
00132 {
00133 m_ids.replace( app, ids );
00134 }
00135 void KonnectorUIDHelper::clear()
00136 {
00137 m_ids.clear();
00138 save();
00139 }
00140 void KonnectorUIDHelper::save()
00141 {
00142 QString string;
00143 QMap<QString, Kontainer::ValueList >::Iterator mapIt;
00144 Kontainer::ValueList::Iterator kontainerIt;
00145 for ( mapIt = m_ids.begin(); mapIt != m_ids.end(); ++mapIt ) {
00146 for ( kontainerIt = mapIt.data().begin();
00147 kontainerIt != mapIt.data().end();
00148 ++kontainerIt ) {
00149
00150
00151
00152
00153
00154
00155 string.append(mapIt.key()+ "||%%||"
00156 + (*kontainerIt).first() +
00157 "||%%||" + (*kontainerIt).second()+ "%%||%%");
00158 }
00159 }
00160 m_config->writeEntry( "ids", string );
00161 m_config->sync();
00162 }
This file is part of the documentation for kitchensync Library Version 3.3.2.