X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fvcard%2Fvcard34conv-v3conv.cpp;h=362ed8568a6bbc4e84d668ed3ac1791aa60bd473;hb=f69e09d827e06435ea94bb73aa71ab5f9d5c035b;hp=3efef901846b597ee06219c8bad2c163b20441f8;hpb=5f1ea077458c5df909d4fac85b5f786ff96dcc5e;p=xestiaab%2F.git diff --git a/source/vcard/vcard34conv-v3conv.cpp b/source/vcard/vcard34conv-v3conv.cpp index 3efef90..362ed85 100644 --- a/source/vcard/vcard34conv-v3conv.cpp +++ b/source/vcard/vcard34conv-v3conv.cpp @@ -40,8 +40,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ vCard ContactDatav3; - //wxSContactFilename = Filename; - // Check if we are using wxWidgets version 2.8 or less and // execute the required command accordingly. @@ -80,12 +78,9 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ bool QuoteMode = FALSE; bool PropertyFind = TRUE; - bool HasExtraNicknames = FALSE; - bool IgnoreGender = FALSE; bool ExtraLineSeek = TRUE; bool BirthdayProcessed = FALSE; bool AnniversaryProcessed = FALSE; - bool FNProcessed = FALSE; bool GenderProcessed = FALSE; bool NameProcessed = FALSE; bool KindProcessed = FALSE; @@ -95,46 +90,17 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ bool OrganisationFirst = FALSE; bool NoteFirst = FALSE; bool PhotoFirst = FALSE; - bool LogoFirst = FALSE; - int intExtraNickname = 0; wxString wxSProperty; wxString wxSPropertySeg1; wxString wxSPropertySeg2; wxString wxSPropertyNextLine; size_t ContactLineLen = 0; int QuoteBreakPoint = 0; - int FNCount = 0; - int NameCount = 0; - int NicknameCount = 0; - int ADRCount = 0; - int EmailCount = 0; - int IMPPCount = 0; - int TelCount = 0; - int LangCount = 0; - int TZCount = 0; - int GeoCount = 0; - int URLCount = 0; - int RelatedCount = 0; - int TitleCount = 0; - int RoleCount = 0; - int OrgCount = 0; - int NoteCount = 0; - int CategoryCount = 0; - int PhotoCount = 0; - int LogoCount = 0; - int SoundCount = 0; - int CalAdrCount = 0; - int CalReqAdrCount = 0; - int FreeBusyCount = 0; - int KeyCount = 0; - 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)); @@ -171,8 +137,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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 { @@ -243,8 +207,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ wxString PropertyValue; wxString PropertyTokens; int intPrevValue = 4; - - //SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue); intPrevValue = 3; @@ -314,9 +276,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ wxString PropertyName; wxString PropertyValue; wxString PropertyTokens; - int intPrevValue = 5; - - intPrevValue = 4; ContactDatav3.AddRaw(wxT("X-ADDRESSBOOKSERVER-KIND"), wxSPropertySeg2); @@ -333,9 +292,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ wxString PropertyName; wxString PropertyValue; wxString PropertyTokens; - int intPrevValue = 7; - - intPrevValue = 6; ContactDatav3.AddRaw(wxT("X-ADDRESSBOOKSERVER-MEMBER"), wxSPropertySeg2); @@ -674,23 +630,23 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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")){ @@ -726,7 +682,7 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ } - ItemSeek++; + ItemSeek++; } else if (wxSProperty == wxT("TEL")){ @@ -753,7 +709,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ int intSplitsFound = 0; int intSplitSize = 0; int intPrevValue = 5; - int intType = 0; int intSplitPoint = 0; intPrevValue = 4; @@ -852,16 +807,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ TelTypeUI.Append(wxT(",")); } - - if (TypePropertyName == wxT("home")){ - - intType = 1; - - } else if (TypePropertyName == wxT("work")){ - - intType = 2; - - } if (TypePropertyName == wxT("text")){ @@ -913,8 +858,6 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ } else if (TypePropertyName == wxT("textphone")){ - //if (!TelTypeOut.IsEmpty()){ TelTypeOut.Append(wxT(";")); } - if (!FinalFriendlyString.IsEmpty()){ FinalFriendlyString.Append(_(", Textphone")); } else { FinalFriendlyString.Append(_("Textphone")); } TelTypeOut.Append(wxT(";")); @@ -976,15 +919,15 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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")){ @@ -1019,15 +962,15 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ } - 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")){ @@ -1376,15 +1319,15 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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")) { @@ -1609,15 +1552,15 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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")){ @@ -1632,15 +1575,15 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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")){ @@ -1655,15 +1598,15 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ 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")){ @@ -1689,30 +1632,84 @@ bool vCard34Conv::ConvertToV3(wxString Filename, wxString *wxSData){ } - 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.