From 8554191719627d7fbfe48890a82aac4ad73d5207 Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Wed, 29 Jun 2016 10:21:27 +0100 Subject: [PATCH] Added NICKNAME to the SaveString function of ContactDataObject --- .../cdo/ContactDataObject-Save.cpp | 94 +++++++++++++++++++ source/contacteditor/cdo/ContactDataObject.h | 4 + source/tests/xestiaab_contactsave.h | 5 + 3 files changed, 103 insertions(+) diff --git a/source/contacteditor/cdo/ContactDataObject-Save.cpp b/source/contacteditor/cdo/ContactDataObject-Save.cpp index aee2638..b422160 100644 --- a/source/contacteditor/cdo/ContactDataObject-Save.cpp +++ b/source/contacteditor/cdo/ContactDataObject-Save.cpp @@ -210,6 +210,21 @@ ContactSaveStatus ContactDataObject::SaveString(wxString *SaveData){ } + // Process NICKNAME. + + SaveNickname(&GeneralNicknamesList, &GeneralNicknamesListAltID, + &GeneralNicknamesListPID, &GeneralNicknamesListType, + &GeneralNicknamesListLanguage, &GeneralNicknamesListPref, + &GeneralNicknamesListTokens, SaveData, ""); + SaveNickname(&HomeNicknamesList, &HomeNicknamesListAltID, + &HomeNicknamesListPID, &HomeNicknamesListType, + &HomeNicknamesListLanguage, &HomeNicknamesListPref, + &HomeNicknamesListTokens, SaveData, "home"); + SaveNickname(&BusinessNicknamesList, &BusinessNicknamesListAltID, + &BusinessNicknamesListPID, &BusinessNicknamesListType, + &BusinessNicknamesListLanguage, &BusinessNicknamesListPref, + &BusinessNicknamesListTokens, SaveData, "work"); + // Process TITLE. SaveTitle(&GeneralTitleList, &GeneralTitleListLanguage, @@ -391,4 +406,83 @@ void ContactDataObject::SaveSource(map *SourceList, map *NicknameList, map *NicknameListAltID, + map *NicknameListPID, map *NicknameListType, + map *NicknameListLanguage, map *NicknameListPref, + map *NicknameListTokens, wxString *SaveData, wxString DataType){ + + wxString ProcessData = ""; + + for (std::map::iterator NicknameIter = NicknameList->begin(); + NicknameIter != NicknameList->end(); NicknameIter++){ + + ProcessData.Append("NICKNAME"); + + // 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 ((*NicknameListAltID)[NicknameIter->first].size() > 0){ + + ProcessData.Append(";ALTID="); + ProcessData.Append((*NicknameListAltID)[NicknameIter->first]); + + } + + // Check if there is a value for MEDIATYPE. + + if ((*NicknameListLanguage)[NicknameIter->first].size() > 0){ + + ProcessData.Append(";LANGUAGE="); + ProcessData.Append((*NicknameListLanguage)[NicknameIter->first]); + + } + + // Check if there is a value for PID. + + if ((*NicknameListPID)[NicknameIter->first].size() > 0){ + + ProcessData.Append(";PID="); + ProcessData.Append((*NicknameListPID)[NicknameIter->first]); + + } + + // Check if there is a value for PREF. + + if ((*NicknameListPref)[NicknameIter->first] > 0){ + + ProcessData.Append(";PREF="); + ProcessData.Append(wxString::Format("%i", (*NicknameListPref)[NicknameIter->first])); + + } + + // Check if there is a value for tokens. + + if ((*NicknameListTokens)[NicknameIter->first].size() > 0){ + + ProcessData.Append(";"); + ProcessData.Append((*NicknameListTokens)[NicknameIter->first]); + + } + + ProcessData.Append(":"); + ProcessData.Append(NicknameIter->second); + ProcessData.Append("\n"); + + ProcessData = OutputText(&ProcessData); + + SaveData->Append(ProcessData); + ProcessData.clear(); + + } + } \ No newline at end of file diff --git a/source/contacteditor/cdo/ContactDataObject.h b/source/contacteditor/cdo/ContactDataObject.h index 5cd36f4..e0df47f 100644 --- a/source/contacteditor/cdo/ContactDataObject.h +++ b/source/contacteditor/cdo/ContactDataObject.h @@ -106,6 +106,10 @@ class ContactDataObject{ map *SourceListPID, map *SourceListType, map *SourceListMediatype, map *SourceListPref, map *SourceListTokens, wxString *SaveData); + void SaveNickname(map *NicknameList, map *NicknameListAltID, + map *NicknameListPID, map *NicknameListType, + map *NicknameListLanguage, map *NicknameListPref, + map *NicknameListTokens, wxString *SaveData, wxString DataType); public: diff --git a/source/tests/xestiaab_contactsave.h b/source/tests/xestiaab_contactsave.h index ee43235..74a9206 100644 --- a/source/tests/xestiaab_contactsave.h +++ b/source/tests/xestiaab_contactsave.h @@ -79,6 +79,11 @@ TEST(ContactSave, ContactSaveTests){ "CLIENTPIDMAP;MEEP=MOO;WOOP=WOO:3;urn;uuid:bbbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbb\n" " bb\n" "FN;TYPE=work;LANGUAGE=kw;ALTID=500;PID=40;PREF=45;EXAMPLE=Baaa:Test Contact\n" + "NICKNAME;ALTID=35;LANGUAGE=kw;PID=50;PREF=40;YAY=Nope;Beep=Boop:Tester\n" + "NICKNAME;TYPE=home;ALTID=17;LANGUAGE=en;PID=39;PREF=78;YAY=Yep;Beep=Boop:Test\n" + " y\n" + "NICKNAME;TYPE=work;ALTID=99;LANGUAGE=en-GB;PID=10;PREF=1;YAY=Maybe;Boop=Boing\n" + " :The Testing One\n" "TITLE;ALTID=20;LANGUAGE=text/plain;PID=21;PREF=22;EEP=LIGHT:Lord of Light\n" "TITLE;TYPE=home;ALTID=30;LANGUAGE=grass/dry;PID=31;PREF=32;EEP=DARK:Lord of D\n" " arkness\n" -- 2.39.2