author | ulf69 <ulf69> | 2004-07-09 08:10:08 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-07-09 08:10:08 (UTC) |
commit | de99e22a7093e857ee3c08a67ccc389d6374099a (patch) (side-by-side diff) | |
tree | 511c309f9df3ae71d43c194cc41f27bdb1966a05 | |
parent | d56bb523048598245ac4ffcb16689687e082f831 (diff) | |
download | kdepimpi-de99e22a7093e857ee3c08a67ccc389d6374099a.zip kdepimpi-de99e22a7093e857ee3c08a67ccc389d6374099a.tar.gz kdepimpi-de99e22a7093e857ee3c08a67ccc389d6374099a.tar.bz2 |
support of caseinsensitive phone and adress types, as required by the vcard spec
-rw-r--r-- | kabc/converter/opie/opieconverterE.pro | 2 | ||||
-rw-r--r-- | kabc/formats/vcardformatplugin2.cpp | 4 | ||||
-rw-r--r-- | kabc/vcardformatimpl.cpp | 48 | ||||
-rw-r--r-- | kabc/vcardformatplugin.cpp | 4 | ||||
-rw-r--r-- | kabc/vcardparser/vcardtool.cpp | 16 |
5 files changed, 50 insertions, 24 deletions
diff --git a/kabc/converter/opie/opieconverterE.pro b/kabc/converter/opie/opieconverterE.pro index 85ba28f..e026f2a 100644 --- a/kabc/converter/opie/opieconverterE.pro +++ b/kabc/converter/opie/opieconverterE.pro @@ -1,8 +1,8 @@ TEMPLATE = lib -INCLUDEPATH += . ../.. ../../../microkde ../../../microkde/kdecore $(QPEDIR)/include $(OPIEDIR)/include +INCLUDEPATH += . ../.. ../../../microkde ../../../microkde/kdecore $(OPIEDIR)/include $(OPEDIR)/include #CONFIG += staticlib OBJECTS_DIR = obj/$(PLATFORM) MOC_DIR = moc/$(PLATFORM) #for static linkage, put it here #DESTDIR=../../lib/$(PLATFORM) diff --git a/kabc/formats/vcardformatplugin2.cpp b/kabc/formats/vcardformatplugin2.cpp index f19e218..41b0c9a 100644 --- a/kabc/formats/vcardformatplugin2.cpp +++ b/kabc/formats/vcardformatplugin2.cpp @@ -31,12 +31,13 @@ VCardFormatPlugin2::VCardFormatPlugin2() VCardFormatPlugin2::~VCardFormatPlugin2() { } bool VCardFormatPlugin2::load( Addressee &addressee, QFile *file ) { + qDebug("VCardFormatPlugin2::load"); QString data; QTextStream t( file ); t.setEncoding( QTextStream::UnicodeUTF8 ); data = t.read(); @@ -51,12 +52,13 @@ bool VCardFormatPlugin2::load( Addressee &addressee, QFile *file ) return false; } bool VCardFormatPlugin2::loadAll( AddressBook *addressBook, Resource *resource, QFile *file ) { + qDebug("VCardFormatPlugin2::loadAll"); QString data; QTextStream t( file ); t.setEncoding( QTextStream::UnicodeUTF8 ); data = t.read(); @@ -74,12 +76,13 @@ bool VCardFormatPlugin2::loadAll( AddressBook *addressBook, Resource *resource, return true; } void VCardFormatPlugin2::save( const Addressee &addressee, QFile *file ) { + qDebug("VCardFormatPlugin2::save"); VCardTool tool; Addressee::List vcardlist; vcardlist.append( addressee ); @@ -87,12 +90,13 @@ void VCardFormatPlugin2::save( const Addressee &addressee, QFile *file ) t.setEncoding( QTextStream::UnicodeUTF8 ); t << tool.createVCards( vcardlist ); } void VCardFormatPlugin2::saveAll( AddressBook *ab, Resource *resource, QFile *file ) { + qDebug("VCardFormatPlugin2::saveAll"); VCardTool tool; Addressee::List vcardlist; AddressBook::Iterator it; for ( it = ab->begin(); it != ab->end(); ++it ) { if ( (*it).resource() == resource ) { diff --git a/kabc/vcardformatimpl.cpp b/kabc/vcardformatimpl.cpp index f90f813..3fcaf94 100644 --- a/kabc/vcardformatimpl.cpp +++ b/kabc/vcardformatimpl.cpp @@ -521,21 +521,23 @@ Address VCardFormatImpl::readAddressValue( ContentLine *cl ) int VCardFormatImpl::readAddressParam( ContentLine *cl ) { int type = 0; ParamList params = cl->paramList(); ParamListIterator it( params ); + QCString tmpStr; for( ; it.current(); ++it ) { - if ( (*it)->name() == "TYPE" ) { - if ( (*it)->value() == "dom" ) type |= Address::Dom; - else if ( (*it)->value() == "intl" ) type |= Address::Intl; - else if ( (*it)->value() == "parcel" ) type |= Address::Parcel; - else if ( (*it)->value() == "postal" ) type |= Address::Postal; - else if ( (*it)->value() == "work" ) type |= Address::Work; - else if ( (*it)->value() == "home" ) type |= Address::Home; - else if ( (*it)->value() == "pref" ) type |= Address::Pref; + if ( (*it)->name().upper() == "TYPE" ) { + tmpStr = (*it)->value().lower(); + if ( tmpStr == "dom" ) type |= Address::Dom; + else if ( tmpStr == "intl" ) type |= Address::Intl; + else if ( tmpStr == "parcel" ) type |= Address::Parcel; + else if ( tmpStr == "postal" ) type |= Address::Postal; + else if ( tmpStr == "work" ) type |= Address::Work; + else if ( tmpStr == "home" ) type |= Address::Home; + else if ( tmpStr == "pref" ) type |= Address::Pref; } } return type; } void VCardFormatImpl::addNValue( VCard *vcard, const Addressee &a ) @@ -598,28 +600,30 @@ PhoneNumber VCardFormatImpl::readTelephoneValue( ContentLine *cl ) TelValue *value = (TelValue *)cl->value(); p.setNumber( QString::fromUtf8( value->asString() ) ); int type = 0; ParamList params = cl->paramList(); ParamListIterator it( params ); + QCString tmpStr; for( ; it.current(); ++it ) { if ( (*it)->name() == "TYPE" ) { - if ( (*it)->value() == "home" ) type |= PhoneNumber::Home; - else if ( (*it)->value() == "work" ) type |= PhoneNumber::Work; - else if ( (*it)->value() == "msg" ) type |= PhoneNumber::Msg; - else if ( (*it)->value() == "pref" ) type |= PhoneNumber::Pref; - else if ( (*it)->value() == "voice" ) type |= PhoneNumber::Voice; - else if ( (*it)->value() == "fax" ) type |= PhoneNumber::Fax; - else if ( (*it)->value() == "cell" ) type |= PhoneNumber::Cell; - else if ( (*it)->value() == "video" ) type |= PhoneNumber::Video; - else if ( (*it)->value() == "bbs" ) type |= PhoneNumber::Bbs; - else if ( (*it)->value() == "modem" ) type |= PhoneNumber::Modem; - else if ( (*it)->value() == "car" ) type |= PhoneNumber::Car; - else if ( (*it)->value() == "isdn" ) type |= PhoneNumber::Isdn; - else if ( (*it)->value() == "pcs" ) type |= PhoneNumber::Pcs; - else if ( (*it)->value() == "pager" ) type |= PhoneNumber::Pager; + tmpStr = (*it)->value().lower(); + if ( tmpStr == "home" ) type |= PhoneNumber::Home; + else if ( tmpStr == "work" ) type |= PhoneNumber::Work; + else if ( tmpStr == "msg" ) type |= PhoneNumber::Msg; + else if ( tmpStr == "pref" ) type |= PhoneNumber::Pref; + else if ( tmpStr == "voice" ) type |= PhoneNumber::Voice; + else if ( tmpStr == "fax" ) type |= PhoneNumber::Fax; + else if ( tmpStr == "cell" ) type |= PhoneNumber::Cell; + else if ( tmpStr == "video" ) type |= PhoneNumber::Video; + else if ( tmpStr == "bbs" ) type |= PhoneNumber::Bbs; + else if ( tmpStr == "modem" ) type |= PhoneNumber::Modem; + else if ( tmpStr == "car" ) type |= PhoneNumber::Car; + else if ( tmpStr == "isdn" ) type |= PhoneNumber::Isdn; + else if ( tmpStr == "pcs" ) type |= PhoneNumber::Pcs; + else if ( tmpStr == "pager" ) type |= PhoneNumber::Pager; } } p.setType( type ); return p; } diff --git a/kabc/vcardformatplugin.cpp b/kabc/vcardformatplugin.cpp index 3cba59a..bc18690 100644 --- a/kabc/vcardformatplugin.cpp +++ b/kabc/vcardformatplugin.cpp @@ -32,27 +32,31 @@ VCardFormatPlugin::~VCardFormatPlugin() { delete mImpl; } bool VCardFormatPlugin::load( Addressee &addressee, QFile *file ) { + qDebug("VCardFormatPlugin::load"); return mImpl->load( addressee, file ); } bool VCardFormatPlugin::loadAll( AddressBook *addressBook, Resource *resource, QFile *file ) { + qDebug("VCardFormatPlugin::loadAll"); return mImpl->loadAll( addressBook, resource, file ); } void VCardFormatPlugin::save( const Addressee &addressee, QFile *file ) { + qDebug("VCardFormatPlugin::save"); mImpl->save( addressee, file ); } void VCardFormatPlugin::saveAll( AddressBook *addressBook, Resource *resource, QFile *file ) { + qDebug("VCardFormatPlugin::saveAll"); mImpl->saveAll( addressBook, resource, file ); } bool VCardFormatPlugin::checkFormat( QFile *file ) const { QString line; diff --git a/kabc/vcardparser/vcardtool.cpp b/kabc/vcardparser/vcardtool.cpp index 01c5b3e..71f29d7 100644 --- a/kabc/vcardparser/vcardtool.cpp +++ b/kabc/vcardparser/vcardtool.cpp @@ -100,17 +100,28 @@ QString VCardTool::createVCards( Addressee::List list, VCard::Version version ) VCardLine labelLine( "LABEL", (*it).label() ); bool hasLabel = !(*it).label().isEmpty(); QMap<QString, int>::Iterator typeIt; for ( typeIt = mAddressTypeMap.begin(); typeIt != mAddressTypeMap.end(); ++typeIt ) { if ( typeIt.data() & (*it).type() ) { + if ( version == VCard::v3_0 ) { + adrLine.addParameter( "TYPE", typeIt.key().lower() ); + } + else { adrLine.addParameter( "TYPE", typeIt.key() ); - if ( hasLabel ) + } + if ( hasLabel ) { + if ( version == VCard::v3_0 ) { + labelLine.addParameter( "TYPE", typeIt.key().lower() ); + } + else { labelLine.addParameter( "TYPE", typeIt.key() ); } } + } + } card.addLine( adrLine ); if ( hasLabel ) card.addLine( labelLine ); } @@ -230,12 +241,15 @@ QString VCardTool::createVCards( Addressee::List list, VCard::Version version ) for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) { VCardLine line( "TEL", (*phoneIt).number() ); QMap<QString, int>::Iterator typeIt; for ( typeIt = mPhoneTypeMap.begin(); typeIt != mPhoneTypeMap.end(); ++typeIt ) { if ( typeIt.data() & (*phoneIt).type() ) + if ( version == VCard::v3_0 ) + line.addParameter( "TYPE", typeIt.key().lower() ); + else line.addParameter( "TYPE", typeIt.key() ); } card.addLine( line ); } |