X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FContactDataObject.cpp;h=56b28467ffc0c1ac74981631890a122bb09d3659;hb=e853e78e586e6de204aeb733e05cccd6d568929a;hp=4c2cbc6442b59b4a7a07daaeb18a85a758834c66;hpb=b22d89925df6f435578ae08c37f91d73ee2bdda7;p=xestiaab%2F.git diff --git a/source/contacteditor/ContactDataObject.cpp b/source/contacteditor/ContactDataObject.cpp index 4c2cbc6..56b2846 100644 --- a/source/contacteditor/ContactDataObject.cpp +++ b/source/contacteditor/ContactDataObject.cpp @@ -680,6 +680,7 @@ void ContactDataObject::ProcessXML(wxString PropertySeg1, wxString PropertySeg2, wxString PropertyTokens; std::map::iterator SLiter; bool FirstToken = TRUE; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -696,10 +697,12 @@ void ContactDataObject::ProcessXML(wxString PropertySeg1, wxString PropertySeg2, CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - XMLListAltID.erase(*XMLCount); - XMLListAltID.insert(std::make_pair(*XMLCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &XMLListAltID, &PropertyValue, XMLCount, &PropertyMatched); + + if (PropertyMatched == TRUE){ + + PropertyMatched = FALSE; + continue; } @@ -728,6 +731,7 @@ void ContactDataObject::ProcessMember(wxString PropertySeg1, wxString PropertySe wxString PropertyTokens; std::map::iterator SLiter; bool FirstToken = TRUE; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -744,26 +748,19 @@ void ContactDataObject::ProcessMember(wxString PropertySeg1, wxString PropertySe CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - GroupsListAltID.erase(*GroupCount); - GroupsListAltID.insert(std::make_pair(*GroupCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &GroupsListAltID, &PropertyValue, GroupCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &GroupsListPID, &PropertyValue, GroupCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &GroupsListMediaType, &PropertyValue, GroupCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &GroupsListPref, &PropertyValue, GroupCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - GroupsListPID.erase(*GroupCount); - GroupsListPID.insert(std::make_pair(*GroupCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&GroupsListPref, &PropertyValue, GroupCount); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("MEDIATYPE")){ - - GroupsListMediaType.erase(*GroupCount); - GroupsListMediaType.insert(std::make_pair(*GroupCount, PropertyValue)); + } - } else if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){ + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){ if (FirstToken == TRUE){ @@ -810,6 +807,7 @@ void ContactDataObject::ProcessFN(wxString PropertySeg1, wxString PropertySeg2, wxString PropertyTokens; std::map::iterator SLiter; bool FirstToken = TRUE; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -835,27 +833,24 @@ void ContactDataObject::ProcessFN(wxString PropertySeg1, wxString PropertySeg2, FullNamesListType.insert(std::make_pair(*FNCount, PropertyValue)); } + + PropertyMatched = TRUE; - } else if (PropertyName == wxT("LANGUAGE")){ - - FullNamesListLanguage.erase(*FNCount); - FullNamesListLanguage.insert(std::make_pair(*FNCount, PropertyValue)); + } - } else if (PropertyName == wxT("ALTID")){ + ProcessStringValue(&PropertyName, "ALTID", &FullNamesListAltID, &PropertyValue, FNCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &FullNamesListPID, &PropertyValue, FNCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", &FullNamesListLanguage, &PropertyValue, FNCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &FullNamesListPref, &PropertyValue, FNCount, &PropertyMatched); - FullNamesListAltID.erase(*FNCount); - FullNamesListAltID.insert(std::make_pair(*FNCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PID")){ - - FullNamesListPID.erase(*FNCount); - FullNamesListPID.insert(std::make_pair(*FNCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&FullNamesListPref, &PropertyValue, FNCount); + } - } else if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){ + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){ if (FirstToken == TRUE){