From b6845008e161e1bb355a32767c3e3f89ff8e5c01 Mon Sep 17 00:00:00 2001 From: zautrix Date: Thu, 10 Mar 2005 22:11:30 +0000 Subject: quoted printable for kapi --- (limited to 'kabc/vcardparser/vcardline.cpp') diff --git a/kabc/vcardparser/vcardline.cpp b/kabc/vcardparser/vcardline.cpp index 84638f8..0972a35 100644 --- a/kabc/vcardparser/vcardline.cpp +++ b/kabc/vcardparser/vcardline.cpp @@ -22,45 +22,42 @@ using namespace KABC; +class VCardLine::VCardLinePrivate +{ + public: + QString mGroup; +}; + VCardLine::VCardLine() - : mParamMap( 0 ) + : d( 0 ) { } VCardLine::VCardLine( const QString &identifier ) - : mParamMap( 0 ) + : d( 0 ) { mIdentifier = identifier; } -VCardLine::VCardLine( const QString &identifier, const QVariant &value ) - : mParamMap( 0 ) +VCardLine::VCardLine( const QString &identifier, const QString &value ) + : d( 0 ) { mIdentifier = identifier; - mValue = value; + mValue.assign( value.data(), value.length() ); } VCardLine::VCardLine( const VCardLine& line ) - : mParamMap( 0 ) + : d( 0 ) { - if ( line.mParamMap ) { - if ( !mParamMap ) - mParamMap = new QMap; - - *mParamMap = *(line.mParamMap); - } else { - delete mParamMap; - mParamMap = 0; - } - + mParamMap = line.mParamMap; mValue = line.mValue; mIdentifier = line.mIdentifier; } VCardLine::~VCardLine() { - delete mParamMap; - mParamMap = 0; + delete d; + d = 0; } VCardLine& VCardLine::operator=( const VCardLine& line ) @@ -68,16 +65,7 @@ VCardLine& VCardLine::operator=( const VCardLine& line ) if ( &line == this ) return *this; - if ( line.mParamMap ) { - if ( !mParamMap ) - mParamMap = new QMap; - - *mParamMap = *(line.mParamMap); - } else { - delete mParamMap; - mParamMap = 0; - } - + mParamMap = line.mParamMap; mValue = line.mValue; mIdentifier = line.mIdentifier; @@ -93,56 +81,91 @@ QString VCardLine::identifier() const { return mIdentifier; } -void VCardLine::setValue( const QVariant& value ) + +void VCardLine::setValue( const QString& value ) +{ + mValue.duplicate( value.data(), value.length() ); +} + +void VCardLine::setValue( const QByteArray& value ) { mValue = value; } QVariant VCardLine::value() const { + return QVariant( QCString( mValue.data(), mValue.size()+1 ) ); +} + +QByteArray VCardLine::valueBytes() const +{ return mValue; } +void VCardLine::setGroup( const QString& group ) +{ + if ( !d ) + d = new VCardLinePrivate(); + + d->mGroup = group; +} + +QString VCardLine::group() const +{ + if ( d ) + return d->mGroup; + else + return QString(); +} + +bool VCardLine::hasGroup() const +{ + if ( !d ) + return false; + else + return d->mGroup.isEmpty(); +} + QStringList VCardLine::parameterList() const { - if ( !mParamMap ) - return QStringList(); - else { + //return mParamMap.keys(); //US method QMap::keys() not available yet. SO collect the data manually //US return mParamMap->keys(); - + QStringList result; - + QMap::ConstIterator it; - for( it = mParamMap->begin(); it != mParamMap->end(); ++it ) { + for( it = mParamMap.begin(); it != mParamMap.end(); ++it ) { result << it.key().latin1(); } return result; - } } void VCardLine::addParameter( const QString& param, const QString& value ) { - if ( !mParamMap ) - mParamMap = new QMap; - - QStringList &list = (*mParamMap)[ param ]; - if ( list.find( value ) == list.end() ) // not included yet + QStringList &list = mParamMap[ param ]; + if ( list.findIndex( value ) == -1 ) // not included yet list.append( value ); } QStringList VCardLine::parameters( const QString& param ) const { - if ( !mParamMap ) + ParamMap::ConstIterator it = mParamMap.find( param ); + if ( it == mParamMap.end() ) return QStringList(); else - return (*mParamMap)[ param ]; + return *it; } QString VCardLine::parameter( const QString& param ) const { - if ( !mParamMap ) + ParamMap::ConstIterator it = mParamMap.find( param ); + if ( it == mParamMap.end() ) return QString::null; - else - return (*mParamMap)[ param ][ 0 ]; + else { + if ( (*it).isEmpty() ) + return QString::null; + else + return (*it).first(); + } } -- cgit v0.9.0.2