ContactData.Add(wxT("PRODID"), strValue, FALSE);
+ // Process the REV property.
+
+ wxDateTime DateTimeSave;
+ DateTimeSave = DateTimeSave.SetToCurrent();
+ wxString DateTimeSaveValue;
+
+ DateTimeSaveValue += wxString::Format("%04i", DateTimeSave.GetYear());
+ DateTimeSaveValue += wxString::Format("%02i", (DateTimeSave.GetMonth() + 1));
+ DateTimeSaveValue += wxString::Format("%02i", DateTimeSave.GetDay());
+ DateTimeSaveValue += "T";
+ DateTimeSaveValue += wxString::Format("%02i", DateTimeSave.GetHour());
+ DateTimeSaveValue += wxString::Format("%02i", DateTimeSave.GetMinute());
+ DateTimeSaveValue += wxString::Format("%02i", DateTimeSave.GetSecond());
+
+ if (!ContactEditorData.RevisionTokens.IsEmpty()){
+ ContactData.AddRaw("REV;" + ContactEditorData.RevisionTokens, DateTimeSaveValue);
+ } else {
+ ContactData.AddRaw("REV", DateTimeSaveValue);
+ }
+ // Process the XML properties.
+
+ for (std::map<int,wxString>::iterator iter = ContactEditorData.XMLList.begin();
+ iter != ContactEditorData.XMLList.end(); ++iter){
+
+ wxString strOrigValue;
+
+ strOrigValue = ContactEditorData.XMLList.find(iter->first)->second;
+
+ ResetUnusedString(&strOrigValue);
+
+ ProcessSaveData(wxT("XML"), &strValue2, &boolValue2, &boolValue,
+ &iter, &strOrigValue, &ContactData,
+ wxT("ALTID"), &ContactEditorData.XMLListAltID );
+
+ ResetSaveProcessData();
+
+ }
+
+ // Process the CLIENTPIDMAP properties.
+
+ for (std::map<int,wxString>::iterator iter = ContactEditorData.ClientPIDList.begin();
+ iter != ContactEditorData.ClientPIDList.end(); ++iter){
+
+ wxString strOrigValue;
+
+ strOrigValue = ContactEditorData.ClientPIDList.find(iter->first)->second;
+
+ ResetUnusedString(&strOrigValue);
+
+ ProcessSaveData(wxT("CLIENTPIDMAP"), &strValue2, &boolValue2, &boolValue,
+ &iter, &strOrigValue, &ContactData,
+ wxT(""), &ContactEditorData.ClientPIDListTokens );
+
+ ResetSaveProcessData();
+
+ }
+
+ // Process the SOURCE properties.
+
+ for (std::map<int,wxString>::iterator iter = ContactEditorData.SourceList.begin();
+ iter != ContactEditorData.SourceList.end(); ++iter){
+
+ wxString strOrigValue;
+
+ strOrigValue = ContactEditorData.SourceList.find(iter->first)->second;
+
+ ResetUnusedString(&strOrigValue);
+
+ ProcessSaveData(wxT("SOURCE"), &strValue2, &boolValue2, &boolValue,
+ &iter, &strOrigValue, &ContactData,
+ wxT("ALTID"), &ContactEditorData.SourceListAltID,
+ wxT("PID"), &ContactEditorData.SourceListPID,
+ wxT("TYPE"), &ContactEditorData.SourceListType,
+ wxT("PREF"), &ContactEditorData.SourceListPref,
+ wxT("MEDIATYPE"), &ContactEditorData.SourceListMediatype,
+ wxT(""), &ContactEditorData.SourceListTokens );
+
+ ResetSaveProcessData();
+
+ }
+
// Setup the name.
strValue.Clear();
wxString strValueData;
strValueData = iter->second;
- //strValueData.insert(0, wxT("data:") + striter->second + wxT(";") + enciter->second + wxT(","));
- strValueData.insert(0, wxT("data:") + striter->second + wxT(";base64,"));
-
-
- // Add to the vCard.
-
- if (boolValue == TRUE){
-
- ContactData.AddRaw(wxT("KEY;") + strValue2, strValueData);
-
- } else {
-
- ContactData.Add(wxT("KEY"), strValueData, TRUE);
-
- }
+ strValueData.insert(0, wxT("data:") + striter->second + wxT(";base64,"));
+
+ ProcessSaveData(wxT("KEY"), &strValue2, &boolValue2, &boolValue,
+ &iter, &strValueData, &ContactData,
+ wxT("ALTID"), &ContactEditorData.KeyListAltID,
+ wxT("PID"), &ContactEditorData.KeyListPID,
+ wxT("TYPE"), &ContactEditorData.KeyListType,
+ wxT("PREF"), &ContactEditorData.KeyListPref,
+ wxT(""), &ContactEditorData.KeyListTokens );
- ResetSaveProcessData();
+ ResetSaveProcessData();
}