vCard ContactDatav3;
- //wxSContactFilename = Filename;
-
// Check if we are using wxWidgets version 2.8 or less and
// execute the required command accordingly.
int VendorCount = 0;
int XTokenCount = 0;
int ItemSeek = 1;
- //int intValueSeek = 1;
wxString strVer;
- // Setup the version string.
+ // Setup the version string.
strVer.Append(wxT("-//Xestia//Address Book Version "));
strVer.Append(wxT(XSDAB_VERSION));
if (wxSPropertyNextLine.Mid(0, 1) == wxT(" ") || wxSPropertyNextLine.Mid(0, 1) == wxT("\t")){
wxSPropertyNextLine.Remove(0, 1);
- //wxSPropertyNextLine.Trim(FALSE);
- //ContactLine.Trim();
ContactLine.Append(wxSPropertyNextLine);
} else {
wxString PropertyValue;
wxString PropertyTokens;
int intPrevValue = 4;
-
- //SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
intPrevValue = 3;
intPrevValue = 6;
- // TODO: Check in value for X-ABLabel and use it if it is there.
+ // TODO: Check in value for X-ABLabel and use it if it is there.
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".EMAIL"), wxSPropertySeg2);
- ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-ABLabel"), _("E-mail Address"));
- ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-VCARD4-EMAIL"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".EMAIL"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-ABLabel"), _("E-mail Address"));
+ ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-VCARD4-EMAIL"), wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".EMAIL"), wxSPropertySeg2);
- ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-ABLabel"), _("E-mail Address"));
- ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-VCARD4-EMAIL;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".EMAIL"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-ABLabel"), _("E-mail Address"));
+ ContactDatav3.AddRaw(wxT("item") + wxString::Format(wxT("%i"), ItemSeek) + wxT(".X-VCARD4-EMAIL;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
- ItemSeek++;
+ ItemSeek++;
} else if (wxSProperty == wxT("IMPP")){
}
- ItemSeek++;
+ ItemSeek++;
} else if (wxSProperty == wxT("TEL")){
} else if (TypePropertyName == wxT("textphone")){
- //if (!TelTypeOut.IsEmpty()){ TelTypeOut.Append(wxT(";")); }
-
if (!FinalFriendlyString.IsEmpty()){ FinalFriendlyString.Append(_(", Textphone")); } else { FinalFriendlyString.Append(_("Textphone")); }
TelTypeOut.Append(wxT(";"));
intPrevValue = 5;
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-LANG"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-LANG"), wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-LANG;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-LANG;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty == wxT("GEO")){
}
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-GEO;X-GEOTYPE=") + strFinalType, wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-GEO;X-GEOTYPE=") + strFinalType, wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-GEO;X-GEOTYPE=") + strFinalType + wxT(";") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-GEO;X-GEOTYPE=") + strFinalType + wxT(";") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty == wxT("RELATED")){
intPrevValue = 11;
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-CATEGORIES"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-CATEGORIES"), wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-CATEGORIES;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-CATEGORIES;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty == wxT("PHOTO")) {
intPrevValue = 10;
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-CALADRURI"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-CALADRURI"), wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-CALADRURI;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-CALADRURI;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty == wxT("FBURL")){
intPrevValue = 6;
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-FBURL"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-FBURL"), wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-FBURL;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-FBURL;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty == wxT("KEY")){
intPrevValue = 4;
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-KEY"), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-KEY"), wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-KEY;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-KEY;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty == wxT("UID")){
}
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxT("X-VCARD4-") + wxSProperty, wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-") + wxSProperty, wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxT("X-VCARD4-") + wxSProperty + wxT(";") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxT("X-VCARD4-") + wxSProperty + wxT(";") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
} else if (wxSProperty.Mid(0, 2) == wxT("X-")){
size_t intPrevValue = (wxSProperty.Len() + 1);
- if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
- ContactDatav3.AddRaw(wxSProperty, wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxSProperty, wxSPropertySeg2);
- } else {
+ } else {
- ContactDatav3.AddRaw(wxSProperty + wxT(";") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+ ContactDatav3.AddRaw(wxSProperty + wxT(";") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
- }
+ }
+
+ } else if (wxSProperty.Mid(0, 12) == wxT("CLIENTPIDMAP")){
+
+ // Process the Client PID maps.
+
+ int intPrevValue = 14;
+
+ intPrevValue = 12;
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+
+ ContactDatav3.AddRaw(wxT("X-VCARD4-CLIENTPIDMAP"), wxSPropertySeg2);
+
+ } else {
+
+ ContactDatav3.AddRaw(wxT("X-VCARD4-CLIENTPIDMAP;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+
+ }
+
+ } else if (wxSProperty.Mid(0, 3) == wxT("XML")){
+
+ // Process the XML values.
+
+ int intPrevValue = 5;
+
+ intPrevValue = 3;
+
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+
+ ContactDatav3.AddRaw(wxT("X-VCARD4-XML"), wxSPropertySeg2);
+
+ } else {
+
+ ContactDatav3.AddRaw(wxT("X-VCARD4-XML;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+
+ }
+
+ } else if (wxSProperty.Mid(0, 6) == wxT("SOURCE")){
+
+ // Process the source links.
+
+ int intPrevValue = 8;
+
+ intPrevValue = 6;
+
+ if (((QuoteBreakPoint + 1) - intPrevValue) <= 0){
+
+ ContactDatav3.AddRaw(wxT("X-VCARD4-SOURCE"), wxSPropertySeg2);
+
+ } else {
+
+ ContactDatav3.AddRaw(wxT("X-VCARD4-SOURCE;") + ContactLine.Mid(intPrevValue, ((QuoteBreakPoint + 1) - (intPrevValue + 1))), wxSPropertySeg2);
+
+ }
+
}
// Reset the variables.