X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FContactDataObject.cpp;h=7d8f53511f9795064c901f4e493f1c5e8e629130;hb=0a90006dce811f5df16fabea1a13c26232a4b775;hp=b71c1f3c4e4985380737a227614cea81aed08647;hpb=d5d6f0d5c37cf6040b90c83f7dfb34bedcd235e3;p=xestiaab%2F.git diff --git a/source/contacteditor/ContactDataObject.cpp b/source/contacteditor/ContactDataObject.cpp index b71c1f3..7d8f535 100644 --- a/source/contacteditor/ContactDataObject.cpp +++ b/source/contacteditor/ContactDataObject.cpp @@ -2590,6 +2590,7 @@ void ContactDataObject::ProcessLanguage(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){ @@ -2608,34 +2609,27 @@ void ContactDataObject::ProcessLanguage(wxString PropertySeg1, wxString Property // Process properties. - if (PropertyName == wxT("ALTID")){ + ProcessStringValue(&PropertyName, "ALTID", LanguageListAltID, &PropertyValue, LanguageCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", LanguageListPID, &PropertyValue, LanguageCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", LanguageListPref, &PropertyValue, LanguageCount, &PropertyMatched); - LanguageListAltID->erase(*LanguageCount); - LanguageListAltID->insert(std::make_pair(*LanguageCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PID")){ - - LanguageListPID->erase(*LanguageCount); - LanguageListPID->insert(std::make_pair(*LanguageCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(LanguageListPref, &PropertyValue, LanguageCount); + } - } 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); } @@ -2719,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){ @@ -2737,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); } @@ -2926,6 +2910,8 @@ void ContactDataObject::ProcessRelated(wxString PropertySeg1, wxString PropertyS intPrevValue = 8; + bool PropertyMatched = FALSE; + for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -2958,60 +2944,31 @@ void ContactDataObject::ProcessRelated(wxString PropertySeg1, wxString PropertyS CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ + ProcessStringValue(&PropertyName, "ALTID", &GeneralRelatedListAltID, &PropertyValue, RelatedCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &GeneralRelatedListPID, &PropertyValue, RelatedCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", &GeneralRelatedListLanguage, &PropertyValue, RelatedCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &GeneralRelatedListPref, &PropertyValue, RelatedCount, &PropertyMatched); - GeneralRelatedListAltID.erase(*RelatedCount); - GeneralRelatedListAltID.insert(std::make_pair(*RelatedCount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - GeneralRelatedListPID.erase(*RelatedCount); - GeneralRelatedListPID.insert(std::make_pair(*RelatedCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PREF")){ - - int PriorityNumber = 0; - bool ValidNumber = TRUE; - - try{ - PriorityNumber = std::stoi(PropertyValue.ToStdString()); - } - - catch(std::invalid_argument &e){ - ValidNumber = FALSE; - } - - if (ValidNumber == TRUE){ - - GeneralRelatedListPref.erase(*RelatedCount); - GeneralRelatedListPref.insert(std::make_pair(*RelatedCount, PriorityNumber)); - - } + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("LANGUAGE")){ + } - ProcessIntegerValue(&GeneralRelatedListPref, &PropertyValue, RelatedCount); - - } else if (PropertyName != wxT("TYPE")) { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - // Something else we don't know about so append - // to the tokens variable. + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } - + } } @@ -3097,6 +3054,7 @@ void ContactDataObject::ProcessURL(wxString PropertySeg1, wxString PropertySeg2, } intPrevValue = 4; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -3130,45 +3088,31 @@ void ContactDataObject::ProcessURL(wxString PropertySeg1, wxString PropertySeg2, CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - WebsiteListAltID->erase(*URLCount); - WebsiteListAltID->insert(std::make_pair(*URLCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", WebsiteListAltID, &PropertyValue, URLCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", WebsiteListPID, &PropertyValue, URLCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", WebsiteListMediatype, &PropertyValue, URLCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", WebsiteListPref, &PropertyValue, URLCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - WebsiteListPID->erase(*URLCount); - WebsiteListPID->insert(std::make_pair(*URLCount, PropertyValue)); - - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(WebsiteListPref, &PropertyValue, URLCount); - - } else if (PropertyName == wxT("MEDIATYPE")){ + if (PropertyMatched == TRUE){ - WebsiteListMediatype->erase(*URLCount); - WebsiteListMediatype->insert(std::make_pair(*URLCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else { + } - // Something else we don't know about so append - // to the tokens variable. + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + } else { - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); + } + } } @@ -3255,6 +3199,7 @@ void ContactDataObject::ProcessTitle(wxString PropertySeg1, wxString PropertySeg } intPrevValue = 6; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -3288,45 +3233,31 @@ void ContactDataObject::ProcessTitle(wxString PropertySeg1, wxString PropertySeg CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ + ProcessStringValue(&PropertyName, "ALTID", TitleListAltID, &PropertyValue, TitleCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", TitleListPID, &PropertyValue, TitleCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", TitleListLanguage, &PropertyValue, TitleCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", TitleListPref, &PropertyValue, TitleCount, &PropertyMatched); - TitleListAltID->erase(*TitleCount); - TitleListAltID->insert(std::make_pair(*TitleCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PID")){ - - TitleListPID->erase(*TitleCount); - TitleListPID->insert(std::make_pair(*TitleCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("PREF")){ + } - ProcessIntegerValue(TitleListPref, &PropertyValue, TitleCount); - - } else if (PropertyName == wxT("LANGUAGE")){ - - TitleListLanguage->erase(*TitleCount); - TitleListLanguage->insert(std::make_pair(*TitleCount, PropertyValue)); - - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - // Something else we don't know about so append - // to the tokens variable. + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } - + } } @@ -3413,6 +3344,7 @@ void ContactDataObject::ProcessRole(wxString PropertySeg1, wxString PropertySeg2 } intPrevValue = 5; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -3446,47 +3378,33 @@ void ContactDataObject::ProcessRole(wxString PropertySeg1, wxString PropertySeg2 CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - RoleListAltID->erase(*RoleCount); - RoleListAltID->insert(std::make_pair(*RoleCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", RoleListAltID, &PropertyValue, RoleCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", RoleListPID, &PropertyValue, RoleCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", RoleListLanguage, &PropertyValue, RoleCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", RoleListPref, &PropertyValue, RoleCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - RoleListPID->erase(*RoleCount); - RoleListPID->insert(std::make_pair(*RoleCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(RoleListPref, &PropertyValue, RoleCount); - - } else if (PropertyName == wxT("LANGUAGE")){ + PropertyMatched = FALSE; + continue; - RoleListLanguage->erase(*RoleCount); - RoleListLanguage->insert(std::make_pair(*RoleCount, PropertyValue)); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - // Something else we don't know about so append - // to the tokens variable. + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } - - } + } + } // Add the data to the General/Home/Work address variables. @@ -3575,6 +3493,7 @@ void ContactDataObject::ProcessOrganisation(wxString PropertySeg1, wxString Prop } intPrevValue = 4; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -3608,52 +3527,34 @@ void ContactDataObject::ProcessOrganisation(wxString PropertySeg1, wxString Prop CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - OrganisationsListAltID->erase(*OrganisationCount); - OrganisationsListAltID->insert(std::make_pair(*OrganisationCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", OrganisationsListAltID, &PropertyValue, OrganisationCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", OrganisationsListPID, &PropertyValue, OrganisationCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", OrganisationsListLanguage, &PropertyValue, OrganisationCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "SORT-AS", OrganisationsListSortAs, &PropertyValue, OrganisationCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", OrganisationsListPref, &PropertyValue, OrganisationCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - OrganisationsListPID->erase(*OrganisationCount); - OrganisationsListPID->insert(std::make_pair(*OrganisationCount, PropertyValue)); - - } else if (PropertyName == wxT("SORT-AS")){ - - OrganisationsListSortAs->erase(*OrganisationCount); - OrganisationsListSortAs->insert(std::make_pair(*OrganisationCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(OrganisationsListPref, &PropertyValue, OrganisationCount); - - } else if (PropertyName == wxT("LANGUAGE")){ + PropertyMatched = FALSE; + continue; - OrganisationsListLanguage->erase(*OrganisationCount); - OrganisationsListLanguage->insert(std::make_pair(*OrganisationCount, PropertyValue)); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - // Something else we don't know about so append - // to the tokens variable. + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } - - } + } + } // Add the data to the General/Home/Work address variables. @@ -3738,6 +3639,7 @@ void ContactDataObject::ProcessNote(wxString PropertySeg1, wxString PropertySeg2 } intPrevValue = 5; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -3771,45 +3673,31 @@ void ContactDataObject::ProcessNote(wxString PropertySeg1, wxString PropertySeg2 CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ + ProcessStringValue(&PropertyName, "ALTID", NoteListAltID, &PropertyValue, NoteCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", NoteListPID, &PropertyValue, NoteCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", NoteListLanguage, &PropertyValue, NoteCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", NoteListPref, &PropertyValue, NoteCount, &PropertyMatched); - NoteListAltID->erase(*NoteCount); - NoteListAltID->insert(std::make_pair(*NoteCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PID")){ - - NoteListPID->erase(*NoteCount); - NoteListPID->insert(std::make_pair(*NoteCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("PREF")){ + } - ProcessIntegerValue(NoteListPref, &PropertyValue, NoteCount); - - } else if (PropertyName == wxT("LANGUAGE")){ - - NoteListLanguage->erase(*NoteCount); - NoteListLanguage->insert(std::make_pair(*NoteCount, PropertyValue)); - - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - // Something else we don't know about so append - // to the tokens variable. + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } - + } } @@ -3867,6 +3755,7 @@ void ContactDataObject::ProcessCategory(wxString PropertySeg1, wxString Property } intPrevValue = 11; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -3900,45 +3789,31 @@ void ContactDataObject::ProcessCategory(wxString PropertySeg1, wxString Property CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ + ProcessStringValue(&PropertyName, "ALTID", &CategoriesListAltID, &PropertyValue, CategoryCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &CategoriesListPID, &PropertyValue, CategoryCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", &CategoriesListLanguage, &PropertyValue, CategoryCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &CategoriesListPref, &PropertyValue, CategoryCount, &PropertyMatched); - CategoriesListAltID.erase(*CategoryCount); - CategoriesListAltID.insert(std::make_pair(*CategoryCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PID")){ - - CategoriesListPID.erase(*CategoryCount); - CategoriesListPID.insert(std::make_pair(*CategoryCount, PropertyValue)); + PropertyMatched = FALSE; + continue; - } else if (PropertyName == wxT("PREF")){ + } - ProcessIntegerValue(&CategoriesListPref, &PropertyValue, CategoryCount); - - } else if (PropertyName == wxT("LANGUAGE")){ - - CategoriesListLanguage.erase(*CategoryCount); - CategoriesListLanguage.insert(std::make_pair(*CategoryCount, PropertyValue)); - - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - // Something else we don't know about so append - // to the tokens variable. + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } - + } } @@ -4140,6 +4015,7 @@ void ContactDataObject::ProcessPhoto(wxString PropertySeg1, wxString PropertySeg CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 6; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -4173,47 +4049,33 @@ void ContactDataObject::ProcessPhoto(wxString PropertySeg1, wxString PropertySeg CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - PicturesListAltID.erase(*PhotoCount); - PicturesListAltID.insert(std::make_pair(*PhotoCount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - PicturesListPID.erase(*PhotoCount); - PicturesListPID.insert(std::make_pair(*PhotoCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &PicturesListAltID, &PropertyValue, PhotoCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &PicturesListPID, &PropertyValue, PhotoCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &PicturesListMediatype, &PropertyValue, PhotoCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &PicturesListPref, &PropertyValue, PhotoCount, &PropertyMatched); - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&PicturesListPref, &PropertyValue, PhotoCount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("MEDIATYPE")){ + PropertyMatched = FALSE; + continue; - PicturesListMediatype.erase(*PhotoCount); - PicturesListMediatype.insert(std::make_pair(*PhotoCount, PropertyValue)); - - } else { + } + + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ + + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } } - + } intPropertyLen = PropertySeg2.Len(); @@ -4341,6 +4203,7 @@ void ContactDataObject::ProcessLogo(wxString PropertySeg1, wxString PropertySeg2 CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 5; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -4374,42 +4237,28 @@ void ContactDataObject::ProcessLogo(wxString PropertySeg1, wxString PropertySeg2 CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - LogosListAltID.erase(*LogoCount); - LogosListAltID.insert(std::make_pair(*LogoCount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - LogosListPID.erase(*LogoCount); - LogosListPID.insert(std::make_pair(*LogoCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &LogosListAltID, &PropertyValue, LogoCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &LogosListPID, &PropertyValue, LogoCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &LogosListMediatype, &PropertyValue, LogoCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &LogosListPref, &PropertyValue, LogoCount, &PropertyMatched); - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&LogosListPref, &PropertyValue, LogoCount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("MEDIATYPE")){ + PropertyMatched = FALSE; + continue; - LogosListMediatype.erase(*LogoCount); - LogosListMediatype.insert(std::make_pair(*LogoCount, PropertyValue)); - - } else { + } + + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + } else { + + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } @@ -4542,6 +4391,7 @@ void ContactDataObject::ProcessSound(wxString PropertySeg1, wxString PropertySeg CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 6; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -4575,47 +4425,29 @@ void ContactDataObject::ProcessSound(wxString PropertySeg1, wxString PropertySeg CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - SoundsListAltID.erase(*SoundCount); - SoundsListAltID.insert(std::make_pair(*SoundCount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - SoundsListPID.erase(*SoundCount); - SoundsListPID.insert(std::make_pair(*SoundCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &SoundsListAltID, &PropertyValue, SoundCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &SoundsListPID, &PropertyValue, SoundCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &SoundsListMediatype, &PropertyValue, SoundCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", &SoundsListLanguage, &PropertyValue, SoundCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &SoundsListPref, &PropertyValue, SoundCount, &PropertyMatched); - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&SoundsListPref, &PropertyValue, SoundCount); - - } else if (PropertyName == wxT("MEDIATYPE")){ + if (PropertyMatched == TRUE){ - SoundsListMediatype.erase(*SoundCount); - SoundsListMediatype.insert(std::make_pair(*SoundCount, PropertyValue)); - - } else if (PropertyName == wxT("LANGUAGE")){ + PropertyMatched = FALSE; + continue; - SoundsListLanguage.erase(*SoundCount); - SoundsListLanguage.insert(std::make_pair(*SoundCount, PropertyValue)); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + } else { + + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } @@ -4748,6 +4580,7 @@ void ContactDataObject::ProcessCalendarURI(wxString PropertySeg1, wxString Prope CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 7; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -4781,42 +4614,28 @@ void ContactDataObject::ProcessCalendarURI(wxString PropertySeg1, wxString Prope CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - CalendarListAltID.erase(*CalURICount); - CalendarListAltID.insert(std::make_pair(*CalURICount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - CalendarListPID.erase(*CalURICount); - CalendarListPID.insert(std::make_pair(*CalURICount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &CalendarListAltID, &PropertyValue, CalURICount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &CalendarListPID, &PropertyValue, CalURICount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &CalendarListMediatype, &PropertyValue, CalURICount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &CalendarListPref, &PropertyValue, CalURICount, &PropertyMatched); - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&CalendarListPref, &PropertyValue, CalURICount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("MEDIATYPE")){ + PropertyMatched = FALSE; + continue; - CalendarListMediatype.erase(*CalURICount); - CalendarListMediatype.insert(std::make_pair(*CalURICount, PropertyValue)); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ + + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + } else { - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } @@ -4884,6 +4703,7 @@ void ContactDataObject::ProcessCalendarAddressURI(wxString PropertySeg1, wxStrin CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 7; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -4917,42 +4737,28 @@ void ContactDataObject::ProcessCalendarAddressURI(wxString PropertySeg1, wxStrin CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - CalendarRequestListAltID.erase(*CalAdrURICount); - CalendarRequestListAltID.insert(std::make_pair(*CalAdrURICount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - CalendarRequestListPID.erase(*CalAdrURICount); - CalendarRequestListPID.insert(std::make_pair(*CalAdrURICount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &CalendarRequestListAltID, &PropertyValue, CalAdrURICount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &CalendarRequestListPID, &PropertyValue, CalAdrURICount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &CalendarRequestListMediatype, &PropertyValue, CalAdrURICount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &CalendarRequestListPref, &PropertyValue, CalAdrURICount, &PropertyMatched); - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&CalendarRequestListPref, &PropertyValue, CalAdrURICount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("MEDIATYPE")){ + PropertyMatched = FALSE; + continue; - CalendarRequestListMediatype.erase(*CalAdrURICount); - CalendarRequestListMediatype.insert(std::make_pair(*CalAdrURICount, PropertyValue)); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + } else { + + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } @@ -5020,6 +4826,7 @@ void ContactDataObject::ProcessCalendarFreeBusy(wxString PropertySeg1, wxString CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 6; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -5053,42 +4860,28 @@ void ContactDataObject::ProcessCalendarFreeBusy(wxString PropertySeg1, wxString CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - FreeBusyListAltID.erase(*FreeBusyAddressCount); - FreeBusyListAltID.insert(std::make_pair(*FreeBusyAddressCount, PropertyValue)); - - } else if (PropertyName == wxT("PID")){ - - FreeBusyListPID.erase(*FreeBusyAddressCount); - FreeBusyListPID.insert(std::make_pair(*FreeBusyAddressCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &FreeBusyListAltID, &PropertyValue, FreeBusyAddressCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &FreeBusyListPID, &PropertyValue, FreeBusyAddressCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "MEDIATYPE", &FreeBusyListMediatype, &PropertyValue, FreeBusyAddressCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &FreeBusyListPref, &PropertyValue, FreeBusyAddressCount, &PropertyMatched); - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&FreeBusyListPref, &PropertyValue, FreeBusyAddressCount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("MEDIATYPE")){ + PropertyMatched = FALSE; + continue; - FreeBusyListMediatype.erase(*FreeBusyAddressCount); - FreeBusyListMediatype.insert(std::make_pair(*FreeBusyAddressCount, PropertyValue)); + } - } else { + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + } else { + + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } @@ -5157,6 +4950,7 @@ void ContactDataObject::ProcessKey(wxString PropertySeg1, wxString PropertySeg2, CheckType(&PropertySeg1, &SplitPoints, &SplitLength, &intPrevValue, &PropType); intPrevValue = 4; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -5186,39 +4980,29 @@ void ContactDataObject::ProcessKey(wxString PropertySeg1, wxString PropertySeg2, PropertyValue.Remove(0, 1); - } + } - if (PropertyName == wxT("ALTID")){ - - KeyListAltID.erase(*KeyCount); - KeyListAltID.insert(std::make_pair(*KeyCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", &KeyListAltID, &PropertyValue, KeyCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", &KeyListPID, &PropertyValue, KeyCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", &KeyListPref, &PropertyValue, KeyCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - KeyListPID.erase(*KeyCount); - KeyListPID.insert(std::make_pair(*KeyCount, PropertyValue)); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(&KeyListPref, &PropertyValue, KeyCount); + PropertyMatched = FALSE; + continue; - } else { + } + + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ - // Something else we don't know about so append - // to the tokens variable. + if (FirstToken == TRUE){ - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + } else { + + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); } @@ -5422,30 +5206,6 @@ void ProcessIntegerValue(wxString *PropertyName, } -void ProcessIntegerValue(std::map *PrefPtr, - wxString *PropertyValue, - int *ItemCount){ - - int PriorityNumber = 0; - bool ValidNumber = TRUE; - - try{ - PriorityNumber = std::stoi(PropertyValue->ToStdString()); - } - - catch(std::invalid_argument &e){ - ValidNumber = FALSE; - } - - if (ValidNumber == TRUE){ - - PrefPtr->erase(*ItemCount); - PrefPtr->insert(std::make_pair(*ItemCount, PriorityNumber)); - - } - -} - void SplitValues(wxString *PropertyLine, std::map *SplitPoints, std::map *SplitLength,