X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2Fcdo%2FContactDataObject-Save.cpp;h=c8a394a72c7f89a7afee30da1ea4dcbacd575766;hb=d26544d56dee0a1f6b62b096efcdbd8b7d03e245;hp=5fbc38614764e4f1f8603258fe618bb5f7b79986;hpb=03165a86aeabb5be5b9663a4703fc16d8dacecec;p=xestiaab%2F.git diff --git a/source/contacteditor/cdo/ContactDataObject-Save.cpp b/source/contacteditor/cdo/ContactDataObject-Save.cpp index 5fbc386..c8a394a 100644 --- a/source/contacteditor/cdo/ContactDataObject-Save.cpp +++ b/source/contacteditor/cdo/ContactDataObject-Save.cpp @@ -255,6 +255,33 @@ ContactSaveStatus ContactDataObject::SaveString(wxString *SaveData){ &BusinessTZListMediatype, &BusinessTZListPref, &BusinessTZListTokens, SaveData, "work"); + // Process ADR. + + SaveAddress(&GeneralAddressList, &GeneralAddressListTown, + &GeneralAddressListCounty, &GeneralAddressListPostCode, + &GeneralAddressListCountry, &GeneralAddressListLabel, + &GeneralAddressListLang, &GeneralAddressListAltID, + &GeneralAddressListPID, &GeneralAddressListGeo, + &GeneralAddressListTimezone, &GeneralAddressListType, + &GeneralAddressListMediatype, &GeneralAddressListPref, + &GeneralAddressListTokens, SaveData, ""); + SaveAddress(&HomeAddressList, &HomeAddressListTown, + &HomeAddressListCounty, &HomeAddressListPostCode, + &HomeAddressListCountry, &HomeAddressListLabel, + &HomeAddressListLang, &HomeAddressListAltID, + &HomeAddressListPID, &HomeAddressListGeo, + &HomeAddressListTimezone, &HomeAddressListType, + &HomeAddressListMediatype, &HomeAddressListPref, + &HomeAddressListTokens, SaveData, "home"); + SaveAddress(&BusinessAddressList, &BusinessAddressListTown, + &BusinessAddressListCounty, &BusinessAddressListPostCode, + &BusinessAddressListCountry, &BusinessAddressListLabel, + &BusinessAddressListLang, &BusinessAddressListAltID, + &BusinessAddressListPID, &BusinessAddressListGeo, + &BusinessAddressListTimezone, &BusinessAddressListType, + &BusinessAddressListMediatype, &BusinessAddressListPref, + &BusinessAddressListTokens, SaveData, "work"); + // Write the end part of the vCard data file. SaveData->Append("END:VCARD"); @@ -579,4 +606,139 @@ void ContactDataObject::SaveTimezone(map *TZList, map *AddressList, map *AddressListTown, + map *AddressListCounty, map *AddressListPostCode, + map *AddressListCountry, map *AddressListLabel, + map *AddressListLang, map *AddressListAltID, + map *AddressListPID, map *AddressListGeo, + map *AddressListTimezone, map *AddressListType, + map *AddressListMediatype, map *AddressListPref, + map *AddressListTokens, wxString *SaveData, wxString DataType){ + + wxString ProcessData = ""; + + for (std::map::iterator AddressIter = AddressList->begin(); + AddressIter != AddressList->end(); AddressIter++){ + + ProcessData.Append("ADR"); + + // Check if there is a value for TYPE. + + if (DataType.size() > 0){ + + ProcessData.Append(";TYPE="); + ProcessData.Append(DataType); + + } + + // Check if there is a value for ALTID. + + if ((*AddressListAltID)[AddressIter->first].size() > 0){ + + ProcessData.Append(";ALTID="); + ProcessData.Append((*AddressListAltID)[AddressIter->first]); + + } + + // Check if there is a value for GEO. + + if ((*AddressListGeo)[AddressIter->first].size() > 0){ + + ProcessData.Append(";GEO=\""); + ProcessData.Append((*AddressListGeo)[AddressIter->first]); + ProcessData.Append("\""); + + } + + // Check if there is a value for LABEL. + + if ((*AddressListLabel)[AddressIter->first].size() > 0){ + + wxString AddressProcessed = ""; + AddressProcessed = (*AddressListLabel)[AddressIter->first]; + + AddressProcessed.Replace("\n", "\\n", true); + + ProcessData.Append(";LABEL="); + ProcessData.Append(AddressProcessed); + + } + + // Check if there is a value for LANGUAGE. + + if ((*AddressListLang)[AddressIter->first].size() > 0){ + + ProcessData.Append(";LANGUAGE="); + ProcessData.Append((*AddressListLang)[AddressIter->first]); + + } + + // Check if there is a value for MEDIATYPE. + + if ((*AddressListMediatype)[AddressIter->first].size() > 0){ + + ProcessData.Append(";MEDIATYPE="); + ProcessData.Append((*AddressListMediatype)[AddressIter->first]); + + } + + // Check if there is a value for PID. + + if ((*AddressListPID)[AddressIter->first].size() > 0){ + + ProcessData.Append(";PID="); + ProcessData.Append((*AddressListPID)[AddressIter->first]); + + } + + // Check if there is a value for PREF. + + if ((*AddressListPref)[AddressIter->first] > 0){ + + ProcessData.Append(";PREF="); + ProcessData.Append(wxString::Format("%i", (*AddressListPref)[AddressIter->first])); + + } + + // Check if there is a value for TZ. + + if ((*AddressListTimezone)[AddressIter->first].size() > 0){ + + ProcessData.Append(";TZ="); + ProcessData.Append((*AddressListTimezone)[AddressIter->first]); + + } + + // Check if there is a value for tokens. + + if ((*AddressListTokens)[AddressIter->first].size() > 0){ + + ProcessData.Append(";"); + ProcessData.Append((*AddressListTokens)[AddressIter->first]); + + } + + // Build the address. + + ProcessData.Append(":;;"); + ProcessData.Append((*AddressList)[AddressIter->first]); + ProcessData.Append(";"); + ProcessData.Append((*AddressListTown)[AddressIter->first]); + ProcessData.Append(";"); + ProcessData.Append((*AddressListCounty)[AddressIter->first]); + ProcessData.Append(";"); + ProcessData.Append((*AddressListPostCode)[AddressIter->first]); + ProcessData.Append(";"); + ProcessData.Append((*AddressListCountry)[AddressIter->first]); + ProcessData.Append("\n"); + + ProcessData = OutputText(&ProcessData); + + SaveData->Append(ProcessData); + ProcessData.clear(); + + } + } \ No newline at end of file