X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FContactDataObject.cpp;h=fab6aafed9c5b2ff7380ca175010d6705276d39b;hb=749c51c25f73a4bc2c1a8161168b8fa07de2a045;hp=47fe119f7b065927c9f91b2da3c83147ded63a3e;hpb=1759400884dfefa8bba80c2cef27aa8ee2d05c2c;p=xestiaab%2F.git diff --git a/source/contacteditor/ContactDataObject.cpp b/source/contacteditor/ContactDataObject.cpp index 47fe119..fab6aaf 100644 --- a/source/contacteditor/ContactDataObject.cpp +++ b/source/contacteditor/ContactDataObject.cpp @@ -731,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){ @@ -747,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){ @@ -813,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){ @@ -838,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){ @@ -1075,39 +1067,22 @@ void ContactDataObject::ProcessClientPIDMap(wxString PropertySeg1, wxString Prop intPrevValue = intiter->second; // Process properties. - - size_t intPropertyValueLen = PropertyValue.Len(); - - if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){ - - PropertyValue.Trim(); - PropertyValue.RemoveLast(); - - } - - if (PropertyValue.Mid(0, 1) == wxT("\"")){ - - PropertyValue.Remove(0, 1); - - } - + CaptureString(&PropertyValue, FALSE); - - if (PropertyName.IsEmpty() || PropertyName.IsEmpty()){ - - continue; - - } + + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){ - if (FirstToken == TRUE){ + if (FirstToken == TRUE){ - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - } else { + } else { - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); + } + } } @@ -1188,6 +1163,7 @@ void ContactDataObject::ProcessNickname(wxString PropertySeg1, wxString Property wxString PropertyValue; wxString PropertyTokens; bool FirstToken = TRUE; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -1204,45 +1180,31 @@ void ContactDataObject::ProcessNickname(wxString PropertySeg1, wxString Property CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - NicknamesListAltID->erase(*NicknameCount); - NicknamesListAltID->insert(std::make_pair(*NicknameCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", NicknamesListAltID, &PropertyValue, NicknameCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", NicknamesListPID, &PropertyValue, NicknameCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", NicknamesListLanguage, &PropertyValue, NicknameCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", NicknamesListPref, &PropertyValue, NicknameCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - NicknamesListPID->erase(*NicknameCount); - NicknamesListPID->insert(std::make_pair(*NicknameCount, PropertyValue)); - - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(NicknamesListPref, &PropertyValue, NicknameCount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("LANGUAGE")){ - - NicknamesListLanguage->erase(*NicknameCount); - NicknamesListLanguage->insert(std::make_pair(*NicknameCount, PropertyValue)); - - } else { + PropertyMatched = FALSE; + continue; - // Something else we don't know about so append - // to the tokens variable. + } - 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); + } + } }