예제 #1
0
파일: vcard.cpp 프로젝트: junekhan/libvcard
void vCard::addProperty(const vCardProperty& property)
{
    int count = m_properties.count();
    for (int i = 0; i < count; i++)
    {
        vCardProperty current = m_properties.at(i);
        if (current.name() == property.name() && current.params() == property.params())
        {
            m_properties[i] = property;
            return;
        }
    }

    m_properties.append(property);

}
예제 #2
0
파일: vcard.cpp 프로젝트: zhk/TigerContacts
bool vCard::removeProperty( int iEditorIndex )
{
	vCardPropertyList::iterator it = m_properties.begin();

	while ( it != m_properties.end() )
	{
		const vCardProperty current = *it;
		if (current.getEditorIndex() == iEditorIndex)
		{
			it = m_properties.erase(it);
			updateReversion();
			return true;
		}
		else
			++it;
	}

	return false;
}
예제 #3
0
파일: vcard.cpp 프로젝트: zhk/TigerContacts
bool vCard::addProperty(const vCardProperty& prop)
{
	for (vCardPropertyList::iterator it = m_properties.begin(); it != m_properties.end(); ++it)
    {
        vCardProperty current = *it;
        if (current == prop)
		{
			return false;
		}
		else if (current.name() == prop.name() && current.params() == prop.params())
		{
			if( vCardProperty::isUniqueProperty( current.name() ) )
			{
				*it = prop;
				return true;
			}
        }
    }

    m_properties.push_back(prop);

	return true;
}
예제 #4
0
파일: vcard.cpp 프로젝트: zhk/TigerContacts
bool vCard::removeProperty( const Cactus::GString& name )
{
	bool bFound = false;

	vCardPropertyList::iterator it = m_properties.begin();
	while ( it != m_properties.end() )
	{
		const vCardProperty current = *it;
		if (current.name() == name)
		{
			it = m_properties.erase(it);
			if(!bFound)
				bFound = true;
		}
		else
			++it;
	}

	if( bFound )
		updateReversion();

	return bFound;
}
예제 #5
0
파일: vcard.cpp 프로젝트: zhk/TigerContacts
vCardProperty vCard::property(const Cactus::GString& name, const vCardParamList& params, bool strict) const
{
	for (vCardPropertyList::const_iterator it = m_properties.begin(); it != m_properties.end(); ++it)
	{
		const vCardProperty current = *it;
        if (current.name() == name)
        {
            vCardParamList current_params = current.params();

            if (strict)
            {
                if (params != current_params)
                    continue;
            }
            else
            {
                M_Foreach_Const (vCardParam, param, vCardParamList, params)
					if (std::find(current_params.begin(), current_params.end(), param) == current_params.end())
                        continue;
            }

            return current;
        }
    }
bool vCardProperty::operator== (const vCardProperty& prop) const
{
    return ((m_name == prop.name()) && (m_values == prop.values()));
}
bool vCardProperty::operator!= (const vCardProperty& prop) const
{
    return ((m_name != prop.name()) || (m_values != prop.values()));
}
예제 #8
0
void TypedProperty::setProperty(vCardProperty& prop) {
    if (p) delete p;

    p = prop.clone();
}
void PersonalDetail::setPhoto(vCardProperty& p) {
    if (photo) delete photo;

    photo = p.clone();
}