X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2Fcdo%2FContactDataObject.cpp;h=50854091cbd52f289771c2452e3b84a677f6d03c;hb=bdb1cb146a16ae7f8e15aa9c9f084705a5249973;hp=5c625c183d37340ea43a98e324e8e5ffe475527c;hpb=20c258c0cc4524fada364e6fc2abd23852c7cd76;p=xestiaab%2F.git diff --git a/source/contacteditor/cdo/ContactDataObject.cpp b/source/contacteditor/cdo/ContactDataObject.cpp index 5c625c1..5085409 100644 --- a/source/contacteditor/cdo/ContactDataObject.cpp +++ b/source/contacteditor/cdo/ContactDataObject.cpp @@ -2082,6 +2082,7 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert TypeSplitLength.insert(std::make_pair(intSplitsFound, intSplitSize)); int intTypeSeek = 0; + bool TypeFound = FALSE; for (std::map::iterator typeiter = TypeSplitPoints.begin(); typeiter != TypeSplitPoints.end(); ++typeiter){ @@ -2101,17 +2102,22 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert } - if (TypePropertyName == wxT("home")){ + if (TypePropertyName == wxT("home") && TypeFound == FALSE){ PropType = PROPERTY_HOME; + TelTypeUI.Append("home"); + intTypeSeek++; + TypeFound = TRUE; - } else if (TypePropertyName == wxT("work")){ + } else if (TypePropertyName == wxT("work") && TypeFound == FALSE){ PropType = PROPERTY_WORK; - + TelTypeUI.Append("work"); + intTypeSeek++; + TypeFound = TRUE; + } - if (TypePropertyName == wxT("text")){ TelTypeUI.Append(_("text")); @@ -2389,6 +2395,7 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper std::map *GeopositionListPID = NULL; std::map *GeopositionListTokens = NULL; std::map *GeopositionListMediatype = NULL; + std::map *GeopositionListDataType = NULL; std::map *GeopositionListPref = NULL; switch(PropType){ @@ -2461,9 +2468,21 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper ProcessTokens(&PropertyName, &PropertyValue, &PropertyTokens, &FirstToken); } + + wxStringTokenizer GeoSplitData(PropertySeg2, wxT(":")); - GeopositionList->insert(std::make_pair(*GeographicCount, PropertySeg2)); + if (GeoSplitData.CountTokens() > 1){ + + GeopositionListDataType->insert(std::make_pair(*GeographicCount, GeoSplitData.GetNextToken())); + GeopositionList->insert(std::make_pair(*GeographicCount, GeoSplitData.GetString())); + } else { + + GeopositionList->insert(std::make_pair(*GeographicCount, PropertySeg2)); + GeopositionListDataType->insert(std::make_pair(*GeographicCount, "tel")); + + } + // Add the name token data. if (!PropertyTokens.IsEmpty()){