From b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 26 Jun 2004 19:01:18 +0000 Subject: Initial revision --- (limited to 'kabc/vcardparser/vcardline.cpp') diff --git a/kabc/vcardparser/vcardline.cpp b/kabc/vcardparser/vcardline.cpp new file mode 100644 index 0000000..84638f8 --- a/dev/null +++ b/kabc/vcardparser/vcardline.cpp @@ -0,0 +1,148 @@ +/* + This file is part of libkabc. + Copyright (c) 2003 Tobias Koenig + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#include "vcardline.h" + +using namespace KABC; + +VCardLine::VCardLine() + : mParamMap( 0 ) +{ +} + +VCardLine::VCardLine( const QString &identifier ) + : mParamMap( 0 ) +{ + mIdentifier = identifier; +} + +VCardLine::VCardLine( const QString &identifier, const QVariant &value ) + : mParamMap( 0 ) +{ + mIdentifier = identifier; + mValue = value; +} + +VCardLine::VCardLine( const VCardLine& line ) + : mParamMap( 0 ) +{ + if ( line.mParamMap ) { + if ( !mParamMap ) + mParamMap = new QMap; + + *mParamMap = *(line.mParamMap); + } else { + delete mParamMap; + mParamMap = 0; + } + + mValue = line.mValue; + mIdentifier = line.mIdentifier; +} + +VCardLine::~VCardLine() +{ + delete mParamMap; + mParamMap = 0; +} + +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; + } + + mValue = line.mValue; + mIdentifier = line.mIdentifier; + + return *this; +} + +void VCardLine::setIdentifier( const QString& identifier ) +{ + mIdentifier = identifier; +} + +QString VCardLine::identifier() const +{ + return mIdentifier; +} +void VCardLine::setValue( const QVariant& value ) +{ + mValue = value; +} + +QVariant VCardLine::value() const +{ + return mValue; +} + +QStringList VCardLine::parameterList() const +{ + if ( !mParamMap ) + return QStringList(); + else { +//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 ) { + 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 + list.append( value ); +} + +QStringList VCardLine::parameters( const QString& param ) const +{ + if ( !mParamMap ) + return QStringList(); + else + return (*mParamMap)[ param ]; +} + +QString VCardLine::parameter( const QString& param ) const +{ + if ( !mParamMap ) + return QString::null; + else + return (*mParamMap)[ param ][ 0 ]; +} -- cgit v0.9.0.2