vcard.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "vcard.h"
00022
00023 using namespace KABC;
00024
00025 VCard::VCard()
00026 {
00027 }
00028
00029 VCard::VCard( const VCard& vcard )
00030 {
00031 mLineMap = vcard.mLineMap;
00032 }
00033
00034 VCard::~VCard()
00035 {
00036 }
00037
00038 VCard& VCard::operator=( const VCard& vcard )
00039 {
00040 if ( &vcard == this )
00041 return *this;
00042
00043 mLineMap = vcard.mLineMap;
00044
00045 return *this;
00046 }
00047
00048 void VCard::clear()
00049 {
00050 mLineMap.clear();
00051 }
00052
00053 QStringList VCard::identifiers() const
00054 {
00055 return mLineMap.keys();
00056 }
00057
00058 void VCard::addLine( const VCardLine& line )
00059 {
00060 mLineMap[ line.identifier() ].append( line );
00061 }
00062
00063 VCardLine::List VCard::lines( const QString& identifier ) const
00064 {
00065 LineMap::ConstIterator it = mLineMap.find( identifier );
00066 if ( it == mLineMap.end() )
00067 return VCardLine::List();
00068
00069 return *it;
00070 }
00071
00072 VCardLine VCard::line( const QString& identifier ) const
00073 {
00074 LineMap::ConstIterator it = mLineMap.find( identifier );
00075 if ( it == mLineMap.end() )
00076 return VCardLine();
00077
00078 if ( (*it).isEmpty() )
00079 return VCardLine();
00080 else
00081 return (*it).first();
00082 }
00083
00084 void VCard::setVersion( Version version )
00085 {
00086 mLineMap.erase( "VERSION" );
00087
00088 VCardLine line;
00089 line.setIdentifier( "VERSION" );
00090 if ( version == v2_1 )
00091 line.setIdentifier( "2.1" );
00092 else if ( version == v3_0 )
00093 line.setIdentifier( "3.0" );
00094
00095 mLineMap[ "VERSION" ].append( line );
00096 }
00097
00098 VCard::Version VCard::version() const
00099 {
00100 LineMap::ConstIterator versionEntry = mLineMap.find( "VERSION" );
00101 if ( versionEntry == mLineMap.end() )
00102 return v3_0;
00103
00104 VCardLine line = ( *versionEntry )[ 0 ];
00105 if ( line.value() == "2.1" )
00106 return v2_1;
00107 else
00108 return v3_0;
00109 }
|