X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FContactDataObject.cpp;h=e78af7088b0aa5239def8a88d61a3272171cbbea;hb=91fbabe0c6557c4c0041c1a6e074d3ba0bc60b33;hp=6b80e981077e67113042def4a62487710b9ddebe;hpb=f1acc9fce94b216699dc9d1d3d5f6f48480abc45;p=xestiaab%2F.git diff --git a/source/contacteditor/ContactDataObject.cpp b/source/contacteditor/ContactDataObject.cpp index 6b80e98..e78af70 100644 --- a/source/contacteditor/ContactDataObject.cpp +++ b/source/contacteditor/ContactDataObject.cpp @@ -2713,6 +2713,7 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper wxString PropertyValue; wxString PropertyTokens; bool FirstToken = TRUE; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -2731,39 +2732,28 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper // Process properties. - if (PropertyName == wxT("ALTID")){ - - GeopositionListAltID->erase(*GeographicCount); - GeopositionListAltID->insert(std::make_pair(*GeographicCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", GeopositionListAltID, &PropertyValue, GeographicCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", GeopositionListPID, &PropertyValue, GeographicCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", GeopositionListMediatype, &PropertyValue, GeographicCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", GeopositionListPref, &PropertyValue, GeographicCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - GeopositionListPID->erase(*GeographicCount); - GeopositionListPID->insert(std::make_pair(*GeographicCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("MEDIATYPE")){ - - GeopositionListMediatype->erase(*GeographicCount); - GeopositionListMediatype->insert(std::make_pair(*GeographicCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(GeopositionListPref, &PropertyValue, GeographicCount); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + if (FirstToken == TRUE){ - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; + + } else { + + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); }