// Add the data into the contact editor depending on what it is.
if (wxSProperty == wxT("KIND") && KindProcessed == FALSE){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- if (wxSPropertySeg2 == wxT("individual")){
-
- cmbType->SetSelection(1);
-
- } else if (wxSPropertySeg2 == wxT("group")){
-
- cmbType->SetSelection(2);
- IsGroup = TRUE;
-
- } else if (wxSPropertySeg2 == wxT("org")){
-
- cmbType->SetSelection(3);
-
- } else if (wxSPropertySeg2 == wxT("location")){
-
- cmbType->SetSelection(4);
-
- } else {
-
- cmbType->SetSelection(0);
-
- }
-
- wxCommandEvent nullevent;
-
- UpdateMembersTab(nullevent);
+ // See frmContactEditor-LoadGroup.cpp
+
+ LoadKind(wxSPropertySeg2);
} else if (wxSProperty == wxT("MEMBER")){
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
-
- // Go through the list of contacts for the account and find the matching UID.
- // If contact with UID doesn't match then say (unknown contact).
-
- wxString AccountDirFinal = GetAccountDir(wxSContactAccount, FALSE);
+ // See frmContactEditor-LoadGroup.cpp
- //wxString vcardfilenamewxs;
- wxString vCardFilename;
- wxString vCardFilenameFull;
- wxString vCardDataString;
- //wxStringTokenizer vcardfileline;
- wxString lwxs;
- wxString setname, setvalue;
- //vCardNames = new std::map<wxString, wxString, std::greater<wxString>>;
- std::multimap<wxString, wxString, std::greater<wxString>> vCardNamesAsc;
- std::multimap<wxString, wxString, std::less<wxString>> vCardNamesDsc;
-
- wxDir vcardaccdir(AccountDirFinal);
-
- bool ProcFiles = vcardaccdir.GetFirst(&vCardFilename, wxEmptyString, wxDIR_FILES);
- while(ProcFiles){
-
- if (vCardFilename.Right(4) == wxT(".vcf") ||
- vCardFilename.Right(4) == wxT(".VCF") ||
- vCardFilename.Right(5) == wxT(".vcard") ||
- vCardFilename.Right(5) == wxT(".VCARD")){
-
- vCard Person;
+ LoadMember(wxSPropertySeg2, &GroupCount);
- vCardFilenameFull.Append(AccountDirFinal);
- vCardFilenameFull.Append(wxT("/"));
- vCardFilenameFull.Append(vCardFilename);
+ } else if (wxSProperty == wxT("FN")){
- Person.LoadFile(vCardFilenameFull);
+ // See frmContactEditor-LoadName.cpp
- if (wxSPropertySeg2.Left(9) == wxT("urn:uuid:")){
+ LoadFN(wxSPropertySeg1, wxSPropertySeg2, &FNCount, &FNProcessed, &ContactData);
- wxString NewPropValue;
- NewPropValue = wxSPropertySeg2.Mid(9, wxString::npos);
- wxSPropertySeg2 = NewPropValue;
-
- }
+ } else if (wxSProperty == wxT("N") && NameProcessed == FALSE){
- if (Person.MeetBaseSpecification()){
-
- wxString KindStatus = Person.Get(wxT("KIND"));
+ // See frmContactEditor-LoadName.cpp
- if (KindStatus == wxT("group")){
+ LoadN(wxSPropertySeg1, wxSPropertySeg2, &NameProcessed, &ContactData);
- vCardFilename.Clear();
- vCardFilenameFull.Clear();
- vCardDataString.Clear();
- ProcFiles = vcardaccdir.GetNext(&vCardFilename);
- continue;
+ } else if (wxSProperty == wxT("NICKNAME")){
+
+ // See frmContactEditor-LoadNickname.cpp
+
+ LoadNickname(wxSPropertySeg1, wxSPropertySeg2, &NicknameCount, &ContactData);
+
+ } else if (wxSProperty == wxT("GENDER") && GenderProcessed == FALSE){
- }
+ // See frmContactEditor-LoadGender.cpp
- wxString PersonName = Person.Get(wxT("N"));
- wxString PersonUID = Person.Get(wxT("UID"));
- wxString PersonFilename = vCardFilenameFull;
-
- if (PersonUID != wxSPropertySeg2){
-
- vCardFilename.Clear();
- vCardFilenameFull.Clear();
- vCardDataString.Clear();
- ProcFiles = vcardaccdir.GetNext(&vCardFilename);
- continue;
-
- }
+ LoadGender(wxSPropertySeg1, wxSPropertySeg2, &GenderProcessed, &ContactData);
- //ContactsNames.insert(std::make_pair(PersonName, ContactIndex));
- //ContactsUIDs.insert(std::make_pair(ContactIndex, PersonUID));
-
- if (XVMData.SortMode == 1){
+ } else if (wxSProperty == wxT("BDAY") && BirthdayProcessed == FALSE){
- // Split the name into sections.
-
- vCardDataString = Person.Get(wxT("N"));
+ // See frmContactEditor-LoadBADays.cpp
- vCardName NameData = Person.GetName();
-
- vCardDataString = NameData.Forename + wxT(" ") + NameData.Surname;
-
- } else if (XVMData.SortMode == 2){
-
- // Split the name into sections.
-
- vCardName NameData = Person.GetName();
-
- vCardDataString = NameData.Surname + wxT(", ") + NameData.Forename;
-
- } else if (XVMData.SortMode == 3){
-
- // Check and make sure that the top most nickname is used.
-
- vCardDataString = Person.Get(wxT("NICKNAME"));
-
- if (vCardDataString.IsEmpty()){
-
- vCardDataString = wxT("(no nickname)");
-
- }
-
- } else if (XVMData.SortMode == 4){
-
- vCardDataString = Person.Get(wxT("FN"));
-
- }
-
- if (XVMData.AscendingMode == TRUE){
- vCardNamesAsc.insert(std::make_pair(vCardDataString, PersonUID));
- } else {
- vCardNamesDsc.insert(std::make_pair(vCardDataString, PersonUID));
- }
+ LoadBDay(wxSPropertySeg1, wxSPropertySeg2, &BirthdayProcessed);
- } else {
-
- }
-
-
-
- }
-
- vCardFilename.Clear();
- vCardFilenameFull.Clear();
- vCardDataString.Clear();
- ProcFiles = vcardaccdir.GetNext(&vCardFilename);
-
- }
-
- if (XVMData.AscendingMode == TRUE){
-
- for (std::map<wxString,wxString>::iterator iter = vCardNamesAsc.begin();
- iter != vCardNamesAsc.end(); ++iter){
-
- wxListItem ItemData;
-
- ItemData.SetId(0);
- ItemData.SetText(iter->first);
+ } else if (wxSProperty == wxT("ANNIVERSARY") && AnniversaryProcessed == FALSE){
- lboGroups->InsertItem(ItemData);
-
- GroupsList.insert(std::make_pair(intValueSeek, iter->second));
+ // See frmContactEditor-LoadBADays.cpp
- }
+ LoadAnniversary(wxSPropertySeg1, wxSPropertySeg2, &AnniversaryProcessed);
+ } else if (wxSProperty == wxT("TZ")){
- } else {
+ // See frmContactEditor-LoadTimeZone.cpp
- for (std::map<wxString,wxString>::iterator iter = vCardNamesDsc.begin();
- iter != vCardNamesDsc.end(); ++iter){
-
- wxListItem ItemData;
-
- ItemData.SetId(0);
- ItemData.SetText(iter->first);
-
- lboGroups->InsertItem(ItemData);
-
- GroupsList.insert(std::make_pair(intValueSeek, iter->second));
-
- }
-
- }
+ LoadTimeZone(wxSPropertySeg1, wxSPropertySeg2, &TZCount);
+
+ } else if (wxSProperty == wxT("ADR")){
- GroupCount++;
- intValueSeek++;
+ // See frmContactEditor-LoadAddress.cpp
- } else if (wxSProperty == wxT("FN")){
+ LoadADR(wxSPropertySeg1, wxSPropertySeg2, &ADRCount);
- /*
+ } else if (wxSProperty == wxT("EMAIL")){
- NameDisplayAs = wxSPropertySeg2;
- cmbDisplayAs->SetValue(ContactData.Convert(wxSPropertySeg2, TRUE));
-
- */
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 4;
- int intPref = 0;
- int intType = 0;
+ // See frmContactEditor-LoadEmail.cpp
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 3;
+ LoadEmail(wxSPropertySeg1, wxSPropertySeg2, &EmailCount);
+
+ } else if (wxSProperty == wxT("IMPP")){
+
+ // See frmContactEditor-LoadIM.cpp
+
+ LoadIM(wxSPropertySeg1, wxSPropertySeg2, &IMPPCount);
+
+ } else if (wxSProperty == wxT("TEL")){
+
+ // See frmContactEditor-LoadTelephone.cpp
+
+ LoadTelephone(wxSPropertySeg1, wxSPropertySeg2, &TelCount);
+
+ } else if (wxSProperty == wxT("LANG")){
+
+ // See frmContactEditor-LoadLanguage.cpp
- // Look for type before continuing.
+ LoadLanguage(wxSPropertySeg1, wxSPropertySeg2, &LangCount);
+
+ } else if (wxSProperty == wxT("GEO")){
+
+ // See frmContactEditor-LoadGeo.cpp
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
+ LoadGeo(wxSPropertySeg1, wxSPropertySeg2, &GeoCount);
+
+ } else if (wxSProperty == wxT("RELATED")){
- SLiter = SplitLength.find(intiter->first);
+ // See fromContactEditor-LoadRelated.cpp
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
+ LoadRelated(wxSPropertySeg1, wxSPropertySeg2, &RelatedCount);
+
+ } else if (wxSProperty == wxT("URL")){
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
+ // See frmContactEditor-LoadURL.cpp
+
+ LoadURL(wxSPropertySeg1, wxSPropertySeg2, &URLCount);
+
+ } else if (wxSProperty == wxT("TITLE")) {
+
+ // See frmContactEditor-LoadTitle.cpp
- }
+ LoadTitle(wxSPropertySeg1, wxSPropertySeg2, &TitleCount);
- // Setup blank lines for later on.
+ } else if (wxSProperty == wxT("ROLE")) {
- FullNamesList.insert(std::make_pair(intValueSeek, wxT("")));
- FullNamesListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- FullNamesListPID.insert(std::make_pair(intValueSeek, wxT("")));
- FullNamesListPref.insert(std::make_pair(intValueSeek, 0));
- FullNamesListType.insert(std::make_pair(intValueSeek, wxT("")));
- FullNamesListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
- FullNamesListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 3;
+ // See frmContactEditor-LoadRole.cpp
+
+ LoadRole(wxSPropertySeg1, wxSPropertySeg2, &RoleCount);
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
+ } else if (wxSProperty == wxT("ORG")) {
+
+ // See frmContactEditor-LoadOrg.cpp
- SLiter = SplitLength.find(intiter->first);
+ LoadOrg(wxSPropertySeg1, wxSPropertySeg2, &OrgCount);
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- ProcessCaptureStrings(&PropertyValue);
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- if (PropertyName == wxT("ALTID")){
-
- FullNamesListAltID.erase(intValueSeek); FullNamesListAltID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PID")){
+ } else if (wxSProperty == wxT("NOTE")) {
- FullNamesListPID.erase(intValueSeek); FullNamesListPID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- FullNamesListPref.erase(intValueSeek); FullNamesListPref.insert(std::make_pair(intValueSeek, intPref));
-
- }
-
- } else if (PropertyName == wxT("LANG")){
+ // See frmContactEditor-LoadNote.cpp
- FullNamesListLanguage.erase(intValueSeek); FullNamesListLanguage.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
+ LoadNote(wxSPropertySeg1, wxSPropertySeg2, &NoteCount);
- for (int i = 0; i <= intPropertyLen; i++){
+ } else if (wxSProperty == wxT("CATEGORIES")) {
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(":") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 1){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- }
-
- intSplitSize = 0;
-
- }
+ // See frmContactEditor-LoadCategory.cpp
- }
-
- // Add the data to the General/Home/Work address variables.
-
- /*
+ LoadCategory(wxSPropertySeg1, wxSPropertySeg2, &CategoryCount);
- wxListItem coldata;
+ } else if (wxSProperty == wxT("PHOTO")) {
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(IMPPType);
-
- */
-
- //ProcessCaptureStrings(wxsPropertySeg2);
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- FullNamesList.erase(intValueSeek);
- FullNamesListType.erase(intValueSeek);
- FullNamesListTokens.erase(intValueSeek);
- FullNamesList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- FullNamesListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- if (intType == 0){
-
- FullNamesListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- FullNamesListType.insert(std::make_pair(intValueSeek, wxT("home")));
-
- } else if (intType == 2){
-
- FullNamesListType.insert(std::make_pair(intValueSeek, wxT("work")));
-
- }
-
- if (FNProcessed == FALSE){
-
- NameDisplayAs = wxSPropertySeg2;
- cmbDisplayAs->SetValue(ContactData.Convert(wxSPropertySeg2, TRUE));
- FNProcessed = TRUE;
-
- }
+ // See frmContactEditor-LoadPhoto.cpp
- /*if (intType == 0){
-
- ListCtrlIndex = lboIM->InsertItem(coldata);
-
- lboIM->SetItem(ListCtrlIndex, 1, IMPPAddress);
-
- if (intPref > 0 && intPref < 101){
-
- lboIM->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralIMList.erase(intValueSeek);
- GeneralIMListType.erase(intValueSeek);
- GeneralIMListTokens.erase(intValueSeek);
- GeneralIMList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralIMListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralIMListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeIM->InsertItem(coldata);
-
- lboHomeIM->SetItem(ListCtrlIndex, 1, IMPPAddress);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeIM->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeIMList.erase(intValueSeek);
- HomeIMListType.erase(intValueSeek);
- HomeIMListTokens.erase(intValueSeek);
- HomeIMList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeIMListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeIMListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessIM->InsertItem(coldata);
+ LoadPhoto(wxSPropertySeg1, wxSPropertySeg2, &PhotoCount);
- lboBusinessIM->SetItem(ListCtrlIndex, 1, IMPPAddress);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessIM->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessIMList.erase(intValueSeek);
- BusinessIMListType.erase(intValueSeek);
- BusinessIMListTokens.erase(intValueSeek);
- BusinessIMList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessIMListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessIMListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }*/
-
- FNCount++;
- intValueSeek++;
+ } else if (wxSProperty == wxT("LOGO")) {
- } else if (wxSProperty == wxT("N") && NameProcessed == FALSE){
+ // See frmContactEditor-LoadLogo.cpp
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 3;
- int intSplitSeek = 0;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- // Look for type before continuing.
-
- intPrevValue = 2;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- }
-
- intPrevValue = 2;
+ LoadLogo(wxSPropertySeg1, wxSPropertySeg2, &LogoCount);
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
+ } else if (wxSProperty == wxT("SOUND")) {
+
+ // See frmContactEditor-LoadSound.cpp
- SLiter = SplitLength.find(intiter->first);
+ LoadSound(wxSPropertySeg1, wxSPropertySeg2, &SoundCount);
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- ProcessCaptureStrings(&PropertyValue);
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- if (PropertyName == wxT("ALTID")){
-
- NameAltID = PropertyValue;
-
- } else if (PropertyName == wxT("LANG")){
+ } else if (wxSProperty == wxT("CALURI")){
- NameLanguage = PropertyValue;
-
- } else if (PropertyName == wxT("SORT-AS")){
-
- NameDisplayAs = PropertyValue;
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
+ // See frmContactEditor-LoadCalendar.cpp
- }
-
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitSeek = 0;
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
+ LoadCalURI(wxSPropertySeg1, wxSPropertySeg2, &CalAdrCount);
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(";") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 4){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- } else {
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- }
-
- intSplitSize = 0;
+ } else if (wxSProperty == wxT("CALADRURI")){
+
+ // See frmContactEditor-LoadCalendar.cpp
- }
+ LoadCalAdrURI(wxSPropertySeg1, wxSPropertySeg2, &CalReqAdrCount);
- }
-
- // Split the data into several parts.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- if (intiter->first == 1){
-
- // Deal with family name.
-
- SLiter = SplitLength.find(1);
-
- txtSurname->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(0, SLiter->second), TRUE));
-
- intPrevValue = intiter->second;
- NameSurname = wxSPropertySeg2.Mid(0, SLiter->second);
-
- } else if (intiter->first == 2){
-
- // Deal with given names.
-
- SLiter = SplitLength.find(2);
-
- txtForename->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
- NameForename = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
-
- } else if (intiter->first == 3){
-
- // Deal with additional names.
-
- SLiter = SplitLength.find(3);
-
- txtOtherNames->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
- NameOtherNames = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
-
- } else if (intiter->first == 4){
-
- // Deal with honorifix prefixes and suffixes.
+ } else if (wxSProperty == wxT("FBURL")){
- SLiter = SplitLength.find(4);
-
- txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
- NameTitle = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
-
- txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue), TRUE));
- NameSuffix = wxSPropertySeg2.Mid(intPrevValue);
-
- }
-
- }
-
- NameTokens = PropertyTokens;
- NameProcessed = TRUE;
+ // See frmContactEditor-LoadCalendar.cpp
+
+ LoadCalFreeBusy(wxSPropertySeg1, wxSPropertySeg2, &FreeBusyCount);
+
+ } else if (wxSProperty == wxT("KEY")){
- } else if (wxSProperty == wxT("NICKNAME")){
+ // See frmContactEditor-LoadKey.cpp
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 10;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 9;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralNicknamesList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNicknamesListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNicknamesListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNicknamesListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralNicknamesListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNicknamesListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeNicknamesList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNicknamesListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNicknamesListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNicknamesListPref.insert(std::make_pair(intValueSeek, 0));
- HomeNicknamesListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNicknamesListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessNicknamesList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNicknamesListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNicknamesListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNicknamesListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessNicknamesListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNicknamesListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 9;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, SLiter->second);
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- ProcessCaptureStrings(&PropertyValue);
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralNicknamesListAltID.erase(intValueSeek); GeneralNicknamesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeNicknamesListAltID.erase(intValueSeek); HomeNicknamesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessNicknamesListAltID.erase(intValueSeek); BusinessNicknamesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralNicknamesListPID.erase(intValueSeek); GeneralNicknamesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeNicknamesListPID.erase(intValueSeek); HomeNicknamesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessNicknamesListPID.erase(intValueSeek); BusinessNicknamesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralNicknamesListPref.erase(intValueSeek); GeneralNicknamesListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeNicknamesListPref.erase(intValueSeek); HomeNicknamesListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessNicknamesListPref.erase(intValueSeek); BusinessNicknamesListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- if (intType == 0){ GeneralNicknamesListLanguage.erase(intValueSeek); GeneralNicknamesListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeNicknamesListLanguage.erase(intValueSeek); HomeNicknamesListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessNicknamesListLanguage.erase(intValueSeek); BusinessNicknamesListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboNicknames->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboNicknames->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralNicknamesList.erase(intValueSeek);
- GeneralNicknamesListType.erase(intValueSeek);
- GeneralNicknamesListTokens.erase(intValueSeek);
- GeneralNicknamesList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralNicknamesListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNicknamesListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeNicknames->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeNicknames->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeNicknamesList.erase(intValueSeek);
- HomeNicknamesListType.erase(intValueSeek);
- HomeNicknamesListTokens.erase(intValueSeek);
- HomeNicknamesList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeNicknamesListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeNicknamesListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessNicknames->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessNicknames->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessNicknamesList.erase(intValueSeek);
- BusinessNicknamesListType.erase(intValueSeek);
- BusinessNicknamesListTokens.erase(intValueSeek);
- BusinessNicknamesList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessNicknamesListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessNicknamesListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- NicknameCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("GENDER") && GenderProcessed == FALSE){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;;
- int intPrevValue = 8;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 7;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- wxStringTokenizer GenderDetails (wxSPropertySeg2, wxT(";"));
-
- wxString GenderComponent;
- wxString GenderIdentity;
-
- if (GenderDetails.CountTokens() >= 2){
-
- GenderComponent = GenderDetails.GetNextToken();
- GenderIdentity = GenderDetails.GetString();
-
- ProcessCaptureStrings(&GenderIdentity);
-
- txtGenderDescription->SetValue(ContactData.Convert(GenderIdentity, TRUE));
-
- } else {
-
- GenderComponent = GenderDetails.GetNextToken();
-
- }
-
- if (GenderComponent == wxT("M")){
-
- // Gender is Male.
-
- cmbGender->SetSelection(1);
-
- } else if (GenderComponent == wxT("F")){
-
- // Gender is Female.
-
- cmbGender->SetSelection(2);
-
- } else if (GenderComponent == wxT("O")){
-
- // Gender is Other.
-
- cmbGender->SetSelection(3);
-
- } else if (GenderComponent == wxT("N")){
-
- // Gender is None/Not Applicable.
-
- cmbGender->SetSelection(4);
-
- } else if (GenderComponent == wxT("U")){
-
- // Gender is Unknown.
-
- cmbGender->SetSelection(5);
-
- }
-
- GenderTokens = PropertyTokens;
- GenderProcessed = TRUE;
-
- } else if (wxSProperty == wxT("BDAY") && BirthdayProcessed == FALSE){
-
- // Process date. Preserve the remainder in the string.
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool BirthdayText = FALSE;
- int intPrevValue = 6;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 5;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, SLiter->second);
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("VALUE") && PropertyValue == wxT("text") && BirthdayText == FALSE){
-
- ProcessCaptureStrings(&wxSPropertySeg2);
- txtBirthday->SetValue(wxSPropertySeg2);
- Birthday = wxSPropertySeg2;
- BirthdayText = TRUE;
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- intPrevValue = 5;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, SLiter->second);
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- ProcessCaptureStrings(&PropertyValue);
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (PropertyName == wxT("ALTID")){
-
- BirthdayAltID = PropertyValue;
-
- } else if (PropertyName == wxT("CALSCALE")){
-
- BirthdayCalScale = PropertyValue;
-
- } else if (PropertyName != wxT("VALUE")) {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- // Add the data to the variables and form.
-
- if (BirthdayText == FALSE){
-
- Birthday = wxSPropertySeg2;
- int DateYear = 0;
- wxDateTime::Month DateMonth;
- unsigned int DateDay;
-
- wxString wxSData;
-
- if (Birthday.Mid(0, 2) == wxT("--")){
-
- // Skip year.
-
- } else {
-
- DateYear = wxAtoi(Birthday.Mid(0,4));
-
- }
-
- DateMonth = (wxDateTime::Month)(wxAtoi(Birthday.Mid(4,2)) - 1);
- DateDay = wxAtoi(Birthday.Mid(6,2));
-
- wxDateTime BDayDate(DateDay,DateMonth,DateYear);
-
- /*BDayDate.SetDay(DateDay);
- BDayDate.SetMonth(wxDateTime::Month::Jan);
- BDayDate.SetYear(DateYear);*/
-
- dapBirthday->SetValue(BDayDate);
-
- }
-
- BirthdayTokens = PropertyTokens;
-
- BirthdayProcessed = TRUE;
-
- } else if (wxSProperty == wxT("ANNIVERSARY") && AnniversaryProcessed == FALSE){
-
- // Process date. Preserve the remainder in the string.
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool AnniversaryText = FALSE;
- int intPrevValue = 13;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 12;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, SLiter->second);
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("VALUE") && PropertyValue == wxT("text") && AnniversaryText == FALSE){
-
- ProcessCaptureStrings(&wxSPropertySeg2);
- txtAnniversary->SetValue(wxSPropertySeg2);
- Anniversary = wxSPropertySeg2;
- AnniversaryText = TRUE;
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- intPrevValue = 12;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, SLiter->second);
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- AnniversaryAltID = PropertyValue;
-
- } else if (PropertyName == wxT("CALSCALE")){
-
- AnniversaryCalScale = PropertyValue;
-
- } else if (PropertyName != wxT("VALUE")) {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- // Add the data to the variables and form.
-
- if (AnniversaryText == FALSE){
-
- Anniversary = wxSPropertySeg2;
- int DateYear = 0;
- wxDateTime::Month DateMonth;
- int DateDay;
-
- wxString wxSData;
-
- if (Anniversary.Mid(0, 2) == wxT("--")){
-
- // Skip year.
-
- } else {
-
- DateYear = wxAtoi(Anniversary.Mid(0,4));
-
- }
-
- DateMonth = (wxDateTime::Month)(wxAtoi(Anniversary.Mid(4,2)) - 1);
- DateDay = wxAtoi(Anniversary.Mid(6,2));
-
- wxDateTime ADayDate(DateDay,DateMonth,DateYear);
-
- dapAnniversary->SetValue(ADayDate);
-
- }
-
- AnniversaryTokens = PropertyTokens;
-
- AnniversaryProcessed = TRUE;
-
- } else if (wxSProperty == wxT("TZ")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 4;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 3;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralTZList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTZListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTZListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTZListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralTZListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTZListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeTZList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTZListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTZListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTZListPref.insert(std::make_pair(intValueSeek, 0));
- HomeTZListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTZListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessTZList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTZListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTZListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTZListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessTZListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTZListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 3;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- // Process properties.
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralTZListAltID.erase(intValueSeek); GeneralTZListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTZListAltID.erase(intValueSeek); HomeTZListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTZListAltID.erase(intValueSeek); BusinessTZListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralTZListPID.erase(intValueSeek); GeneralTZListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTZListPID.erase(intValueSeek); HomeTZListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTZListPID.erase(intValueSeek); BusinessTZListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ GeneralTZListMediatype.erase(intValueSeek); GeneralTZListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTZListMediatype.erase(intValueSeek); HomeTZListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTZListMediatype.erase(intValueSeek); BusinessTZListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- if (intType == 0){ GeneralTZListPref.erase(intValueSeek); GeneralTZListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeTZListPref.erase(intValueSeek); HomeTZListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessTZListPref.erase(intValueSeek); BusinessTZListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(";") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 6){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- } else {
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboTimezones->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboTimezones->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralTZList.erase(intValueSeek);
- GeneralTZListType.erase(intValueSeek);
- GeneralTZListTokens.erase(intValueSeek);
- GeneralTZList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralTZListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTZListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeTimezones->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeTimezones->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeTZList.erase(intValueSeek);
- HomeTZListType.erase(intValueSeek);
- HomeTZListTokens.erase(intValueSeek);
- HomeTZList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeTZListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeTZListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessTimezones->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessTimezones->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessTZList.erase(intValueSeek);
- BusinessTZListType.erase(intValueSeek);
- BusinessTZListTokens.erase(intValueSeek);
- BusinessTZList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessTZListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessTZListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- TZCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("ADR")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString AddressLabel;
- wxString AddressLang;
- wxString AddressAltID;
- wxString AddressPID;
- wxString AddressTokens;
- wxString AddressGeo;
- wxString AddressTimezone;
- wxString AddressType;
- wxString AddressMediatype;
- wxString AddressPOBox;
- wxString AddressExtended;
- wxString AddressStreet;
- wxString AddressLocality;
- wxString AddressCity;
- wxString AddressRegion;
- wxString AddressPostalCode;
- wxString AddressCountry;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 5;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 4;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralAddressList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListTown.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListCounty.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListPostCode.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListCountry.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListLabel.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListLang.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListGeo.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListTimezone.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralAddressListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeAddressList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListTown.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListCounty.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListPostCode.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListCountry.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListLabel.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListLang.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListGeo.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListTimezone.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
- HomeAddressListPref.insert(std::make_pair(intValueSeek, 0));
- HomeAddressListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessAddressList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListTown.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListCounty.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListPostCode.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListCountry.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListLabel.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListLang.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListGeo.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListTimezone.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessAddressListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessAddressListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 4;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- ProcessCaptureStrings(&PropertyValue);
-
- // Process properties.
-
- if (PropertyName == wxT("LABEL")){
-
- if (intType == 0){ GeneralAddressListLabel.erase(intValueSeek); GeneralAddressListLabel.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListLabel.erase(intValueSeek); HomeAddressListLabel.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListLabel.erase(intValueSeek); BusinessAddressListLabel.insert(std::make_pair(intValueSeek, PropertyValue));}
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- if (intType == 0){ GeneralAddressListLang.erase(intValueSeek); GeneralAddressListLang.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListLang.erase(intValueSeek); HomeAddressListLang.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListLang.erase(intValueSeek); BusinessAddressListLang.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralAddressListAltID.erase(intValueSeek); GeneralAddressListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListAltID.erase(intValueSeek); HomeAddressListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListAltID.erase(intValueSeek); BusinessAddressListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralAddressListPID.erase(intValueSeek); GeneralAddressListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListPID.erase(intValueSeek); HomeAddressListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListPID.erase(intValueSeek); BusinessAddressListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("GEO")){
-
- if (intType == 0){ GeneralAddressListGeo.erase(intValueSeek); GeneralAddressListGeo.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListGeo.erase(intValueSeek); HomeAddressListGeo.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListGeo.erase(intValueSeek); BusinessAddressListGeo.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("TZ")){
-
- if (intType == 0){ GeneralAddressListTimezone.erase(intValueSeek); GeneralAddressListTimezone.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListTimezone.erase(intValueSeek); HomeAddressListTimezone.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListTimezone.erase(intValueSeek); BusinessAddressListTimezone.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ GeneralAddressListMediatype.erase(intValueSeek); GeneralAddressListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeAddressListMediatype.erase(intValueSeek); HomeAddressListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessAddressListMediatype.erase(intValueSeek); BusinessAddressListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- if (intType == 0){ GeneralAddressListPref.erase(intValueSeek); GeneralAddressListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeAddressListPref.erase(intValueSeek); HomeAddressListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessAddressListPref.erase(intValueSeek); BusinessAddressListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- }
-
- } else {
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(";") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 6){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- } else {
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- // Split the data into several parts.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- if (intiter->first == 1){
-
- // Deal with PO Box.
-
- SLiter = SplitLength.find(1);
-
- //txtSurname->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(0, SLiter->second), TRUE));
- AddressPOBox = wxSPropertySeg2.Mid(0, SLiter->second);
- intPrevValue = intiter->second;
-
- } else if (intiter->first == 2){
-
- // Deal with extended address.
-
- SLiter = SplitLength.find(2);
-
- AddressExtended = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
- //txtForename->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
-
- } else if (intiter->first == 3){
-
- // Deal with street address.
-
- SLiter = SplitLength.find(3);
-
- AddressStreet = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
- //txtOtherNames->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
-
- } else if (intiter->first == 4){
-
- // Deal with locality
-
- SLiter = SplitLength.find(4);
-
- AddressLocality = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
- //txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
-
- //txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue), TRUE));
-
- } else if (intiter->first == 5){
-
- // Deal with region.
-
- SLiter = SplitLength.find(5);
-
- AddressRegion = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
- //txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
-
- //txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue), TRUE));
-
- } else if (intiter->first == 6){
-
- // Deal with post code.
-
- SLiter = SplitLength.find(6);
-
- AddressPostalCode = wxSPropertySeg2.Mid(intPrevValue, SLiter->second);
- //txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
- intPrevValue = intiter->second;
-
- // Deal with country.
-
- AddressCountry = wxSPropertySeg2.Mid(intPrevValue);
- //txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue), TRUE));
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&AddressStreet, &AddressLocality, &AddressRegion, &AddressPostalCode, &AddressCountry);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(AddressStreet);
-
- if (intType == 0){
-
- ListCtrlIndex = lboAddresses->InsertItem(coldata);
- lboAddresses->SetItem(ListCtrlIndex, 1, AddressLocality);
- lboAddresses->SetItem(ListCtrlIndex, 2, AddressRegion);
- lboAddresses->SetItem(ListCtrlIndex, 3, AddressPostalCode);
-
- if (intPref > 0 && intPref < 101){
-
- lboAddresses->SetItem(ListCtrlIndex, 4, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralAddressList.erase(intValueSeek);
- GeneralAddressListTown.erase(intValueSeek);
- GeneralAddressListCounty.erase(intValueSeek);
- GeneralAddressListPostCode.erase(intValueSeek);
- GeneralAddressListCountry.erase(intValueSeek);
- GeneralAddressListType.erase(intValueSeek);
- GeneralAddressListTokens.erase(intValueSeek);
- GeneralAddressList.insert(std::make_pair(intValueSeek, AddressStreet));
- GeneralAddressListTown.insert(std::make_pair(intValueSeek, AddressLocality));
- GeneralAddressListCounty.insert(std::make_pair(intValueSeek, AddressRegion));
- GeneralAddressListPostCode.insert(std::make_pair(intValueSeek, AddressPostalCode));
- GeneralAddressListCountry.insert(std::make_pair(intValueSeek, AddressCountry));
- GeneralAddressListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralAddressListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeAddresses->InsertItem(coldata);
- lboHomeAddresses->SetItem(ListCtrlIndex, 1, AddressLocality);
- lboHomeAddresses->SetItem(ListCtrlIndex, 2, AddressRegion);
- lboHomeAddresses->SetItem(ListCtrlIndex, 3, AddressPostalCode);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeAddresses->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeAddressList.erase(intValueSeek);
- HomeAddressListTown.erase(intValueSeek);
- HomeAddressListCounty.erase(intValueSeek);
- HomeAddressListPostCode.erase(intValueSeek);
- HomeAddressListCountry.erase(intValueSeek);
- HomeAddressListType.erase(intValueSeek);
- HomeAddressListTokens.erase(intValueSeek);
- HomeAddressList.insert(std::make_pair(intValueSeek, AddressStreet));
- HomeAddressListTown.insert(std::make_pair(intValueSeek, AddressLocality));
- HomeAddressListCounty.insert(std::make_pair(intValueSeek, AddressRegion));
- HomeAddressListPostCode.insert(std::make_pair(intValueSeek, AddressPostalCode));
- HomeAddressListCountry.insert(std::make_pair(intValueSeek, AddressCountry));
- HomeAddressListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeAddressListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessAddresses->InsertItem(coldata);
- lboBusinessAddresses->SetItem(ListCtrlIndex, 1, AddressLocality);
- lboBusinessAddresses->SetItem(ListCtrlIndex, 2, AddressRegion);
- lboBusinessAddresses->SetItem(ListCtrlIndex, 3, AddressPostalCode);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessAddresses->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessAddressList.erase(intValueSeek);
- BusinessAddressListTown.erase(intValueSeek);
- BusinessAddressListCounty.erase(intValueSeek);
- BusinessAddressListPostCode.erase(intValueSeek);
- BusinessAddressListCountry.erase(intValueSeek);
- BusinessAddressListType.erase(intValueSeek);
- BusinessAddressListTokens.erase(intValueSeek);
- BusinessAddressList.insert(std::make_pair(intValueSeek, AddressStreet));
- BusinessAddressListTown.insert(std::make_pair(intValueSeek, AddressLocality));
- BusinessAddressListCounty.insert(std::make_pair(intValueSeek, AddressRegion));
- BusinessAddressListPostCode.insert(std::make_pair(intValueSeek, AddressPostalCode));
- BusinessAddressListCountry.insert(std::make_pair(intValueSeek, AddressCountry));
- BusinessAddressListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessAddressListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- ADRCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("EMAIL")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- std::map<int, int>::iterator SPoint;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString AddressLabel;
- wxString AddressLang;
- wxString AddressAltID;
- wxString AddressPID;
- wxString AddressTokens;
- wxString AddressGeo;
- wxString AddressTimezone;
- wxString AddressType;
- wxString AddressMediatype;
- wxString AddressPOBox;
- wxString AddressExtended;
- wxString AddressStreet;
- wxString AddressLocality;
- wxString AddressCity;
- wxString AddressRegion;
- wxString AddressPostalCode;
- wxString AddressCountry;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 7;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 6;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralEmailList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralEmailListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralEmailListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralEmailListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralEmailListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeEmailList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeEmailListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeEmailListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeEmailListPref.insert(std::make_pair(intValueSeek, 0));
- HomeEmailListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessEmailList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessEmailListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessEmailListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessEmailListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessEmailListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 6;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- ProcessCaptureStrings(&PropertyValue);
-
- // Process properties.
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralEmailListAltID.erase(intValueSeek); GeneralEmailListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeEmailListAltID.erase(intValueSeek); HomeEmailListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessEmailListAltID.erase(intValueSeek); BusinessEmailListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralEmailListPID.erase(intValueSeek); GeneralEmailListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeEmailListPID.erase(intValueSeek); HomeEmailListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessEmailListPID.erase(intValueSeek); BusinessEmailListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- if (intType == 0){ GeneralEmailListPref.erase(intValueSeek); GeneralEmailListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeEmailListPref.erase(intValueSeek); HomeEmailListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessEmailListPref.erase(intValueSeek); BusinessEmailListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- // Add the data to the General/Home/Work email variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
-
-
- ListCtrlIndex = lboEmails->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboEmails->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralEmailList.erase(intValueSeek);
- GeneralEmailListType.erase(intValueSeek);
- GeneralEmailListTokens.erase(intValueSeek);
- GeneralEmailList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralEmailListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralEmailListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeEmails->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeEmails->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeEmailList.erase(intValueSeek);
- HomeEmailListType.erase(intValueSeek);
- HomeEmailListTokens.erase(intValueSeek);
- HomeEmailList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeEmailListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeEmailListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessEmail->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessEmail->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessEmailList.erase(intValueSeek);
- BusinessEmailListType.erase(intValueSeek);
- BusinessEmailListTokens.erase(intValueSeek);
- BusinessEmailList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessEmailListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessEmailListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- EmailCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("IMPP")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- std::map<int, int>::iterator SPoint;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString IMPPType;
- wxString IMPPAddress;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 6;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 5;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralIMList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralIMListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralIMListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralIMListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralIMListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralIMListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeIMList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeIMListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeIMListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeIMListPref.insert(std::make_pair(intValueSeek, 0));
- HomeIMListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- HomeIMListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessIMList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessIMListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessIMListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessIMListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessIMListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessIMListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 5;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- ProcessCaptureStrings(&PropertyValue);
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralIMListAltID.erase(intValueSeek); GeneralIMListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeIMListAltID.erase(intValueSeek); HomeIMListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessIMListAltID.erase(intValueSeek); BusinessIMListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralIMListPID.erase(intValueSeek); GeneralIMListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeIMListPID.erase(intValueSeek); HomeIMListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessIMListPID.erase(intValueSeek); BusinessIMListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- if (intType == 0){ GeneralIMListPref.erase(intValueSeek); GeneralIMListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeIMListPref.erase(intValueSeek); HomeIMListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessIMListPref.erase(intValueSeek); BusinessIMListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ GeneralIMListMediatype.erase(intValueSeek); GeneralIMListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeIMListMediatype.erase(intValueSeek); HomeIMListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessIMListMediatype.erase(intValueSeek); BusinessIMListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(":") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 1){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- // Split the data into several parts.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- if (intiter->first == 1){
-
- // Deal with PO Box.
-
- SLiter = SplitLength.find(1);
-
- //txtSurname->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(0, SLiter->second), TRUE));
- IMPPType = wxSPropertySeg2.Mid(0, SLiter->second);
- intPrevValue = intiter->second;
-
- IMPPAddress = wxSPropertySeg2.Mid(intPrevValue);
-
- }
-
- }
-
- // Check what IM type it is.
-
- if (IMPPType == wxT("aim")){
-
- IMPPType = wxT("AIM");
-
- } else if (IMPPType == wxT("gg")){
-
- IMPPType = wxT("Gadu-Gadu");
-
- } else if (IMPPType == wxT("icq")){
-
- IMPPType = wxT("ICQ");
-
- } else if (IMPPType == wxT("skype")){
-
- IMPPType = wxT("Skype");
-
- } else if (IMPPType == wxT("xmpp")){
-
- IMPPType = wxT("XMPP");
-
- } else if (IMPPType == wxT("yahoo")){
-
- IMPPType = wxT("Yahoo");
-
- } else {
-
- // Do nothing.
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(IMPPType);
-
- if (intType == 0){
-
- ListCtrlIndex = lboIM->InsertItem(coldata);
-
- lboIM->SetItem(ListCtrlIndex, 1, IMPPAddress);
-
- if (intPref > 0 && intPref < 101){
-
- lboIM->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralIMList.erase(intValueSeek);
- GeneralIMListType.erase(intValueSeek);
- GeneralIMListTokens.erase(intValueSeek);
- GeneralIMList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralIMListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralIMListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeIM->InsertItem(coldata);
-
- lboHomeIM->SetItem(ListCtrlIndex, 1, IMPPAddress);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeIM->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeIMList.erase(intValueSeek);
- HomeIMListType.erase(intValueSeek);
- HomeIMListTokens.erase(intValueSeek);
- HomeIMList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeIMListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeIMListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessIM->InsertItem(coldata);
-
- lboBusinessIM->SetItem(ListCtrlIndex, 1, IMPPAddress);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessIM->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessIMList.erase(intValueSeek);
- BusinessIMListType.erase(intValueSeek);
- BusinessIMListTokens.erase(intValueSeek);
- BusinessIMList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessIMListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessIMListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- IMPPCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("TEL")){
-
- // Check TEL and make sure it is functioning properly.
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int> TypeSplitPoints;
- std::map<int, int> TypeSplitLength;
- std::map<int, int>::iterator SLiter;
- std::map<int, int>::iterator SPoint;
- std::map<int, int>::iterator TSLiter;
- std::map<int, int>::iterator TSPoint;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString TelType;
- wxString TelNumber;
- wxString TelTypeUI;
- wxString TelTypeDetail;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 5;
- int intPref = 0;
- int intType = 0;
- int intSplitPoint = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 4;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- // Process each value in type and translate each
- // part.
-
- // Strip out the quotes if they are there.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- TelTypeDetail = PropertyValue;
-
- intSplitSize = 0;
- intSplitsFound = 0;
- intSplitPoint = 0;
-
- for (int i = 0; i <= intPropertyValueLen; i++){
-
- intSplitSize++;
-
- if (PropertyValue.Mid(i, 1) == wxT(",") && PropertyValue.Mid((i - 1), 1) != wxT("\\")){
-
- if (intSplitsFound == 0){
-
- TypeSplitPoints.insert(std::make_pair(intSplitsFound, intSplitPoint));
- TypeSplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- } else {
-
- TypeSplitPoints.insert(std::make_pair(intSplitsFound, intSplitPoint));
- TypeSplitLength.insert(std::make_pair(intSplitsFound, intSplitSize));
-
- }
-
- intSplitsFound++;
- i++;
- intSplitPoint = i;
- intSplitSize = 0;
-
- }
-
- }
-
- TypeSplitPoints.insert(std::make_pair(intSplitsFound, intSplitPoint));
- TypeSplitLength.insert(std::make_pair(intSplitsFound, intSplitSize));
-
- int intTypeSeek = 0;
-
- for (std::map<int, int>::iterator typeiter = TypeSplitPoints.begin();
- typeiter != TypeSplitPoints.end(); ++typeiter){
-
- wxString TypePropertyName;
-
- TSLiter = TypeSplitLength.find(typeiter->first);
-
- TypePropertyName = PropertyValue.Mid(typeiter->second, TSLiter->second);
-
- if (intTypeSeek == 0){
-
-
- } else {
-
- TelTypeUI.Append(wxT(","));
-
- }
-
- if (TypePropertyName == wxT("home")){
-
- intType = 1;
-
- } else if (TypePropertyName == wxT("work")){
-
- intType = 2;
-
- }
-
-
- if (TypePropertyName == wxT("text")){
-
- TelTypeUI.Append(_("text"));
- intTypeSeek++;
-
- } else if (TypePropertyName == wxT("voice")){
-
- TelTypeUI.Append(_("voice"));
- intTypeSeek++;
-
- } else if (TypePropertyName == wxT("fax")){
-
- TelTypeUI.Append(_("fax"));
- intTypeSeek++;
-
- } else if (TypePropertyName == wxT("cell")){
-
- TelTypeUI.Append(_("mobile"));
- intTypeSeek++;
-
- } else if (TypePropertyName == wxT("video")){
-
- TelTypeUI.Append(_("video"));
- intTypeSeek++;
-
- } else if (TypePropertyName == wxT("pager")){
-
- TelTypeUI.Append(_("pager"));
- intTypeSeek++;
-
- } else if (TypePropertyName == wxT("textphone")){
-
- TelTypeUI.Append(_("textphone"));
- intTypeSeek++;
-
- }
-
- }
-
- }
-
-
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralTelephoneList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTelephoneListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTelephoneListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTelephoneListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralTelephoneListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeTelephoneList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTelephoneListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTelephoneListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTelephoneListPref.insert(std::make_pair(intValueSeek, 0));
- HomeTelephoneListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessTelephoneList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTelephoneListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTelephoneListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTelephoneListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessTelephoneListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 4;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- // Process properties.
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralTelephoneListAltID.erase(intValueSeek); GeneralTelephoneListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTelephoneListAltID.erase(intValueSeek); HomeTelephoneListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTelephoneListAltID.erase(intValueSeek); BusinessTelephoneListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralTelephoneListPID.erase(intValueSeek); GeneralTelephoneListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTelephoneListPID.erase(intValueSeek); HomeTelephoneListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTelephoneListPID.erase(intValueSeek); BusinessTelephoneListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- if (intType == 0){ GeneralTelephoneListPref.erase(intValueSeek); GeneralTelephoneListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeTelephoneListPref.erase(intValueSeek); HomeTelephoneListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessTelephoneListPref.erase(intValueSeek); BusinessTelephoneListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(":") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 1){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- // Split the data into several parts.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- if (intiter->first == 1){
-
- // Deal with PO Box.
-
- SLiter = SplitLength.find(1);
-
- //txtSurname->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(0, SLiter->second), TRUE));
- TelType = wxSPropertySeg2.Mid(0, SLiter->second);
- intPrevValue = intiter->second;
-
- TelNumber = wxSPropertySeg2.Mid(intPrevValue);
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&PropertyValue);
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(TelNumber);
-
- if (intType == 0){
-
- ListCtrlIndex = lboTelephone->InsertItem(coldata);
-
- lboTelephone->SetItem(ListCtrlIndex, 1, TelTypeUI);
-
- if (intPref > 0 && intPref < 101){
-
- lboTelephone->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralTelephoneList.erase(intValueSeek);
- GeneralTelephoneListType.erase(intValueSeek);
- GeneralTelephoneListTokens.erase(intValueSeek);
- GeneralTelephoneList.insert(std::make_pair(intValueSeek, TelNumber));
- GeneralTelephoneListType.insert(std::make_pair(intValueSeek, TelTypeDetail));
- GeneralTelephoneListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeTelephone->InsertItem(coldata);
-
- lboHomeTelephone->SetItem(ListCtrlIndex, 1, TelTypeUI);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeTelephone->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeTelephoneList.erase(intValueSeek);
- HomeTelephoneListType.erase(intValueSeek);
- HomeTelephoneListTokens.erase(intValueSeek);
- HomeTelephoneList.insert(std::make_pair(intValueSeek, TelNumber));
- HomeTelephoneListType.insert(std::make_pair(intValueSeek, TelTypeDetail));
- HomeTelephoneListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessTelephone->InsertItem(coldata);
-
- lboBusinessTelephone->SetItem(ListCtrlIndex, 1, TelTypeUI);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessTelephone->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessTelephoneList.erase(intValueSeek);
- BusinessTelephoneListType.erase(intValueSeek);
- BusinessTelephoneListTokens.erase(intValueSeek);
- BusinessTelephoneList.insert(std::make_pair(intValueSeek, TelNumber));
- BusinessTelephoneListType.insert(std::make_pair(intValueSeek, TelTypeDetail));
- BusinessTelephoneListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- TelCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("LANG")){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 6;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 5;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralLanguageList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralLanguageListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralLanguageListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralLanguageListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralLanguageListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeLanguageList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeLanguageListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeLanguageListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeLanguageListPref.insert(std::make_pair(intValueSeek, 0));
- HomeLanguageListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessLanguageList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessLanguageListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessLanguageListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessLanguageListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessLanguageListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 5;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralLanguageListAltID.erase(intValueSeek); GeneralLanguageListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeLanguageListAltID.erase(intValueSeek); HomeLanguageListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessLanguageListAltID.erase(intValueSeek); BusinessLanguageListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralLanguageListPID.erase(intValueSeek); GeneralLanguageListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeLanguageListPID.erase(intValueSeek); HomeLanguageListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessLanguageListPID.erase(intValueSeek); BusinessLanguageListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralLanguageListPref.erase(intValueSeek); GeneralLanguageListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeLanguageListPref.erase(intValueSeek); HomeLanguageListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessLanguageListPref.erase(intValueSeek); BusinessLanguageListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboLanguages->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboLanguages->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralLanguageList.erase(intValueSeek);
- GeneralLanguageListType.erase(intValueSeek);
- GeneralLanguageListTokens.erase(intValueSeek);
- GeneralLanguageList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralLanguageListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralLanguageListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeLanguages->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeLanguages->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeLanguageList.erase(intValueSeek);
- HomeLanguageListType.erase(intValueSeek);
- HomeLanguageListTokens.erase(intValueSeek);
- HomeLanguageList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeLanguageListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeLanguageListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessLanguages->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessLanguages->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessLanguageList.erase(intValueSeek);
- BusinessLanguageListType.erase(intValueSeek);
- BusinessLanguageListTokens.erase(intValueSeek);
- BusinessLanguageList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessLanguageListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessLanguageListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- LangCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("GEO")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString GeoType;
- wxString GeoData;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 5;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 4;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralGeographyList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralGeographyListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralGeographyListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralGeographyListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralGeographyListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeGeographyList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeGeographyListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeGeographyListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeGeographyListPref.insert(std::make_pair(intValueSeek, 0));
- HomeGeographyListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessGeographyList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessGeographyListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessGeographyListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessGeographyListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessGeographyListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 4;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralGeographyListAltID.erase(intValueSeek); GeneralGeographyListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeGeographyListAltID.erase(intValueSeek); HomeGeographyListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessGeographyListAltID.erase(intValueSeek); BusinessGeographyListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralGeographyListPID.erase(intValueSeek); GeneralGeographyListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeGeographyListPID.erase(intValueSeek); HomeGeographyListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessGeographyListPID.erase(intValueSeek); BusinessGeographyListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ GeneralGeographyListMediatype.erase(intValueSeek); GeneralGeographyListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeGeographyListMediatype.erase(intValueSeek); HomeGeographyListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessGeographyListMediatype.erase(intValueSeek); BusinessGeographyListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- if (intType == 0){ GeneralGeographyListPref.erase(intValueSeek); GeneralGeographyListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeGeographyListPref.erase(intValueSeek); HomeGeographyListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessGeographyListPref.erase(intValueSeek); BusinessGeographyListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(":") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 1){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- if (intiter->first == 1){
-
- // Deal with PO Box.
-
- SLiter = SplitLength.find(1);
-
- //txtSurname->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(0, SLiter->second), TRUE));
- GeoType = wxSPropertySeg2.Mid(0, SLiter->second);
- intPrevValue = intiter->second;
-
- GeoData = wxSPropertySeg2.Mid(intPrevValue);
-
- }
-
- }
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
-
-
- if (intType == 0){
-
- /*
-
- ListCtrlIndex = lboTimezones->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboTimezones->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- */
- /*
- txtGeopositioning->SetValue(GeoData);
- */
-
- GeneralGeographyList.erase(intValueSeek);
- GeneralGeographyListType.erase(intValueSeek);
- GeneralGeographyListTokens.erase(intValueSeek);
- GeneralGeographyList.insert(std::make_pair(intValueSeek, GeoData));
- GeneralGeographyListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralGeographyListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CaptureString(&GeoData, FALSE);
- coldata.SetText(GeoData);
- ListCtrlIndex = lboGeoposition->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboGeoposition->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- } else if (intType == 1){
-
- /*
-
- ListCtrlIndex = lboHomeTimezones->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeTimezones->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- */
-
- /*
- txtHomeGeopositioning->SetValue(GeoData);
- */
-
- HomeGeographyList.erase(intValueSeek);
- HomeGeographyListType.erase(intValueSeek);
- HomeGeographyListTokens.erase(intValueSeek);
- HomeGeographyList.insert(std::make_pair(intValueSeek, GeoData));
- HomeGeographyListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeGeographyListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CaptureString(&GeoData, FALSE);
- coldata.SetText(GeoData);
- ListCtrlIndex = lboHomeGeoposition->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeGeoposition->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessGeoposition->InsertItem(coldata);
-
- /*
-
- ListCtrlIndex = lboBusinessTimezones->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessTimezones->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- */
-
- /*
- txtBusinessGeopositioning->SetValue(GeoData);
- */
-
- BusinessGeographyList.erase(intValueSeek);
- BusinessGeographyListType.erase(intValueSeek);
- BusinessGeographyListTokens.erase(intValueSeek);
- BusinessGeographyList.insert(std::make_pair(intValueSeek, GeoData));
- BusinessGeographyListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessGeographyListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CaptureString(&GeoData, FALSE);
- coldata.SetText(GeoData);
- ListCtrlIndex = lboBusinessGeoposition->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessGeoposition->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- }
-
- GeoCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("RELATED")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString RelatedType;
- wxString RelatedTypeOriginal;
- wxString RelatedName;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 9;
- int intPref = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 8;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process these.
-
- RelatedTypeOriginal = PropertyValue;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("contact")){
-
- RelatedType = _("Contact");
-
- } else if (PropertyValue == wxT("acquaintance")){
-
- RelatedType = _("Acquaintance");
-
- } else if (PropertyValue == wxT("friend")){
-
- RelatedType = _("Friend");
-
- } else if (PropertyValue == wxT("met")){
-
- RelatedType = _("Met");
-
- } else if (PropertyValue == wxT("co-worker")){
-
- RelatedType = _("Co-worker");
-
- } else if (PropertyValue == wxT("colleague")){
-
- RelatedType = _("Colleague");
-
- } else if (PropertyValue == wxT("co-resident")){
-
- RelatedType = _("Co-resident");
-
- } else if (PropertyValue == wxT("neighbor")){
-
- RelatedType = _("Neighbour");
-
- } else if (PropertyValue == wxT("child")){
-
- RelatedType = _("Child");
-
- } else if (PropertyValue == wxT("parent")){
-
- RelatedType = _("Parent");
-
- } else if (PropertyValue == wxT("sibling")){
-
- RelatedType = _("Sibling");
-
- } else if (PropertyValue == wxT("spouse")){
-
- RelatedType = _("Spouse");
-
- } else if (PropertyValue == wxT("kin")){
-
- RelatedType = _("Kin");
-
- } else if (PropertyValue == wxT("muse")){
-
- RelatedType = _("Muse");
-
- } else if (PropertyValue == wxT("crush")){
-
- RelatedType = _("Crush");
-
- } else if (PropertyValue == wxT("date")){
-
- RelatedType = _("Date");
-
- } else if (PropertyValue == wxT("sweetheart")){
-
- RelatedType = _("Sweetheart");
-
- } else if (PropertyValue == wxT("me")){
-
- RelatedType = _("Me");
-
- } else if (PropertyValue == wxT("agent")){
-
- RelatedType = _("Agent");
-
- } else if (PropertyValue == wxT("emergency")){
-
- RelatedType = _("Emergency");
-
- } else {
-
- RelatedType = PropertyValue;
-
- }
-
- }
-
- }
-
- intPrevValue = 8;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- GeneralRelatedListAltID.erase(intValueSeek);
- GeneralRelatedListAltID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PID")){
-
- GeneralRelatedListPID.erase(intValueSeek);
- GeneralRelatedListPID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intPref > 0 && intPref < 101){
-
- GeneralRelatedListPref.erase(intValueSeek);
- GeneralRelatedListPref.insert(std::make_pair(intValueSeek, intPref));
-
-
- }
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- GeneralRelatedListLanguage.erase(intValueSeek);
- GeneralRelatedListLanguage.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Split the address.
-
- //std::map<int, int>::iterator SLiter;
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(RelatedType);
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- ListCtrlIndex = lboRelated->InsertItem(coldata);
-
- lboRelated->SetItem(ListCtrlIndex, 1, wxSPropertySeg2);
-
- if (intPref > 0 && intPref < 101){
-
- lboRelated->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralRelatedList.erase(intValueSeek);
- GeneralRelatedListRelType.erase(intValueSeek);
- GeneralRelatedListType.erase(intValueSeek);
- GeneralRelatedListTokens.erase(intValueSeek);
- GeneralRelatedList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralRelatedListRelType.insert(std::make_pair(intValueSeek, RelatedTypeOriginal));
- GeneralRelatedListType.insert(std::make_pair(intValueSeek, RelatedTypeOriginal));
- GeneralRelatedListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- RelatedCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("URL")){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 5;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 4;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralWebsiteList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralWebsiteListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralWebsiteListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralWebsiteListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralWebsiteListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeWebsiteList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeWebsiteListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeWebsiteListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeWebsiteListPref.insert(std::make_pair(intValueSeek, 0));
- HomeWebsiteListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessWebsiteList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessWebsiteListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessWebsiteListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessWebsiteListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessWebsiteListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 4;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralWebsiteListAltID.erase(intValueSeek); GeneralWebsiteListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeWebsiteListAltID.erase(intValueSeek); HomeWebsiteListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessWebsiteListAltID.erase(intValueSeek); BusinessWebsiteListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralWebsiteListPID.erase(intValueSeek); GeneralWebsiteListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeWebsiteListPID.erase(intValueSeek); HomeWebsiteListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessWebsiteListPID.erase(intValueSeek); BusinessWebsiteListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralWebsiteListPref.erase(intValueSeek); GeneralWebsiteListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeWebsiteListPref.erase(intValueSeek); HomeWebsiteListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessWebsiteListPref.erase(intValueSeek); BusinessWebsiteListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ GeneralWebsiteListMediatype.erase(intValueSeek); GeneralWebsiteListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeWebsiteListMediatype.erase(intValueSeek); HomeWebsiteListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessWebsiteListMediatype.erase(intValueSeek); BusinessWebsiteListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboWebsites->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboWebsites->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralWebsiteList.erase(intValueSeek);
- GeneralWebsiteListType.erase(intValueSeek);
- GeneralWebsiteListTokens.erase(intValueSeek);
- GeneralWebsiteList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralWebsiteListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralWebsiteListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeWebsites->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeWebsites->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeWebsiteList.erase(intValueSeek);
- HomeWebsiteListType.erase(intValueSeek);
- HomeWebsiteListTokens.erase(intValueSeek);
- HomeWebsiteList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeWebsiteListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeWebsiteListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessWebsites->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessWebsites->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessWebsiteList.erase(intValueSeek);
- BusinessWebsiteListType.erase(intValueSeek);
- BusinessWebsiteListTokens.erase(intValueSeek);
- BusinessWebsiteList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessWebsiteListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessWebsiteListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- URLCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("TITLE")) {
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 7;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 6;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralTitleList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTitleListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTitleListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTitleListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralTitleListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTitleListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeTitleList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTitleListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTitleListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTitleListPref.insert(std::make_pair(intValueSeek, 0));
- HomeTitleListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- HomeTitleListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessTitleList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTitleListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTitleListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTitleListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessTitleListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessTitleListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 6;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralTitleListAltID.erase(intValueSeek); GeneralTitleListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTitleListAltID.erase(intValueSeek); HomeTitleListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTitleListAltID.erase(intValueSeek); BusinessTitleListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralTitleListPID.erase(intValueSeek); GeneralTitleListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTitleListPID.erase(intValueSeek); HomeTitleListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTitleListPID.erase(intValueSeek); BusinessTitleListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralTitleListPref.erase(intValueSeek); GeneralTitleListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeTitleListPref.erase(intValueSeek); HomeTitleListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessTitleListPref.erase(intValueSeek); BusinessTitleListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- if (intType == 0){ GeneralTitleListLanguage.erase(intValueSeek); GeneralTitleListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeTitleListLanguage.erase(intValueSeek); HomeTitleListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessTitleListLanguage.erase(intValueSeek); BusinessTitleListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboTitles->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboTitles->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralTitleList.erase(intValueSeek);
- GeneralTitleListType.erase(intValueSeek);
- GeneralTitleListTokens.erase(intValueSeek);
- GeneralTitleList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralTitleListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralTitleListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeTitles->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeTitles->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeTitleList.erase(intValueSeek);
- HomeTitleListType.erase(intValueSeek);
- HomeTitleListTokens.erase(intValueSeek);
- HomeTitleList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeTitleListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeTitleListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessTitles->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessTitles->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessTitleList.erase(intValueSeek);
- BusinessTitleListType.erase(intValueSeek);
- BusinessTitleListTokens.erase(intValueSeek);
- BusinessTitleList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessTitleListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessTitleListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- TitleCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("ROLE")) {
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 6;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 5;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralRoleList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralRoleListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralRoleListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralRoleListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralRoleListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralRoleListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeRoleList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeRoleListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeRoleListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeRoleListPref.insert(std::make_pair(intValueSeek, 0));
- HomeRoleListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- HomeRoleListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessRoleList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessRoleListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessRoleListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessRoleListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessRoleListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessRoleListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 5;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralRoleListAltID.erase(intValueSeek); GeneralRoleListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeRoleListAltID.erase(intValueSeek); HomeRoleListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessRoleListAltID.erase(intValueSeek); BusinessRoleListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralRoleListPID.erase(intValueSeek); GeneralRoleListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeRoleListPID.erase(intValueSeek); HomeRoleListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessRoleListPID.erase(intValueSeek); BusinessRoleListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralRoleListPref.erase(intValueSeek); GeneralRoleListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeRoleListPref.erase(intValueSeek); HomeRoleListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessRoleListPref.erase(intValueSeek); BusinessRoleListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- if (intType == 0){ GeneralRoleListLanguage.erase(intValueSeek); GeneralRoleListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeRoleListLanguage.erase(intValueSeek); HomeRoleListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessRoleListLanguage.erase(intValueSeek); BusinessRoleListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboRoles->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboRoles->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralRoleList.erase(intValueSeek);
- GeneralRoleListType.erase(intValueSeek);
- GeneralRoleListTokens.erase(intValueSeek);
- GeneralRoleList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralRoleListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralRoleListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeRoles->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeRoles->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeRoleList.erase(intValueSeek);
- HomeRoleListType.erase(intValueSeek);
- HomeRoleListTokens.erase(intValueSeek);
- HomeRoleList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeRoleListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeRoleListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessRoles->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessRoles->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessRoleList.erase(intValueSeek);
- BusinessRoleListType.erase(intValueSeek);
- BusinessRoleListTokens.erase(intValueSeek);
- BusinessRoleList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessRoleListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessRoleListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- RoleCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("ORG")) {
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 5;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 4;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralOrganisationsList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralOrganisationsListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralOrganisationsListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralOrganisationsListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralOrganisationsListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralOrganisationsListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralOrganisationsListSortAs.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeOrganisationsList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeOrganisationsListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeOrganisationsListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeOrganisationsListPref.insert(std::make_pair(intValueSeek, 0));
- HomeOrganisationsListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- HomeOrganisationsListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
- HomeOrganisationsListSortAs.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessOrganisationsList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessOrganisationsListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessOrganisationsListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessOrganisationsListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessOrganisationsListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessOrganisationsListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessOrganisationsListSortAs.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 4;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralOrganisationsListAltID.erase(intValueSeek); GeneralOrganisationsListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeOrganisationsListAltID.erase(intValueSeek); HomeOrganisationsListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessOrganisationsListAltID.erase(intValueSeek); BusinessOrganisationsListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralOrganisationsListPID.erase(intValueSeek); GeneralOrganisationsListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeOrganisationsListPID.erase(intValueSeek); HomeOrganisationsListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessOrganisationsListPID.erase(intValueSeek); BusinessOrganisationsListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralOrganisationsListPref.erase(intValueSeek); GeneralOrganisationsListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeOrganisationsListPref.erase(intValueSeek); HomeOrganisationsListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessOrganisationsListPref.erase(intValueSeek); BusinessOrganisationsListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- if (intType == 0){ GeneralOrganisationsListLanguage.erase(intValueSeek); GeneralOrganisationsListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeOrganisationsListLanguage.erase(intValueSeek); HomeOrganisationsListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessOrganisationsListLanguage.erase(intValueSeek); BusinessOrganisationsListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("SORT-AS")){
-
- if (intType == 0){ GeneralOrganisationsListSortAs.erase(intValueSeek); GeneralOrganisationsListSortAs.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeOrganisationsListSortAs.erase(intValueSeek); HomeOrganisationsListSortAs.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessOrganisationsListSortAs.erase(intValueSeek); BusinessOrganisationsListSortAs.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- if (intType == 0){
-
- ListCtrlIndex = lboOrganisations->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboOrganisations->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- GeneralOrganisationsList.erase(intValueSeek);
- GeneralOrganisationsListType.erase(intValueSeek);
- GeneralOrganisationsListTokens.erase(intValueSeek);
- GeneralOrganisationsList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralOrganisationsListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralOrganisationsListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 1){
-
- ListCtrlIndex = lboHomeOrganisations->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeOrganisations->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- HomeOrganisationsList.erase(intValueSeek);
- HomeOrganisationsListType.erase(intValueSeek);
- HomeOrganisationsListTokens.erase(intValueSeek);
- HomeOrganisationsList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeOrganisationsListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeOrganisationsListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- } else if (intType == 2){
-
- ListCtrlIndex = lboBusinessOrganisations->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessOrganisations->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- BusinessOrganisationsList.erase(intValueSeek);
- BusinessOrganisationsListType.erase(intValueSeek);
- BusinessOrganisationsListTokens.erase(intValueSeek);
- BusinessOrganisationsList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessOrganisationsListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessOrganisationsListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- }
-
- OrgCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("NOTE")) {
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 6;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 5;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- if (intType == 0){
-
- GeneralNoteList.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNoteListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNoteListPID.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNoteListPref.insert(std::make_pair(intValueSeek, 0));
- GeneralNoteListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNoteListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- HomeNoteList.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNoteListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNoteListPID.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNoteListPref.insert(std::make_pair(intValueSeek, 0));
- HomeNoteListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- HomeNoteListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 2){
-
- BusinessNoteList.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNoteListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNoteListPID.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNoteListPref.insert(std::make_pair(intValueSeek, 0));
- BusinessNoteListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- BusinessNoteListLanguage.insert(std::make_pair(intValueSeek, wxT("")));
-
- }
-
- intPrevValue = 5;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, SLiter->second);
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ GeneralNoteListAltID.erase(intValueSeek); GeneralNoteListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeNoteListAltID.erase(intValueSeek); HomeNoteListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessNoteListAltID.erase(intValueSeek); BusinessNoteListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ GeneralNoteListPID.erase(intValueSeek); GeneralNoteListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeNoteListPID.erase(intValueSeek); HomeNoteListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessNoteListPID.erase(intValueSeek); BusinessNoteListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ GeneralNoteListPref.erase(intValueSeek); GeneralNoteListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ HomeNoteListPref.erase(intValueSeek); HomeNoteListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ BusinessNoteListPref.erase(intValueSeek); BusinessNoteListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("LANGUAGE")){
-
- if (intType == 0){ GeneralNoteListLanguage.erase(intValueSeek); GeneralNoteListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ HomeNoteListLanguage.erase(intValueSeek); HomeNoteListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ BusinessNoteListLanguage.erase(intValueSeek); BusinessNoteListLanguage.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
-
- if (intType == 0){
-
- GeneralNoteList.erase(intValueSeek);
- GeneralNoteListType.erase(intValueSeek);
- GeneralNoteListTokens.erase(intValueSeek);
- GeneralNoteList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- GeneralNoteListType.insert(std::make_pair(intValueSeek, wxT("")));
- GeneralNoteListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- //CaptureString(&wxSPropertySeg2, FALSE);
-
- coldata.SetText(wxSPropertySeg2);
-
- ListCtrlIndex = lboNotes->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboNotes->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- } else if (intType == 1){
-
- HomeNoteList.erase(intValueSeek);
- HomeNoteListType.erase(intValueSeek);
- HomeNoteListTokens.erase(intValueSeek);
- HomeNoteList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- HomeNoteListType.insert(std::make_pair(intValueSeek, wxT("home")));
- HomeNoteListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CaptureString(&wxSPropertySeg2, FALSE);
-
- coldata.SetText(wxSPropertySeg2);
-
- ListCtrlIndex = lboHomeNotes->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboHomeNotes->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- } else if (intType == 2){
-
- BusinessNoteList.erase(intValueSeek);
- BusinessNoteListType.erase(intValueSeek);
- BusinessNoteListTokens.erase(intValueSeek);
- BusinessNoteList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
- BusinessNoteListType.insert(std::make_pair(intValueSeek, wxT("work")));
- BusinessNoteListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CaptureString(&wxSPropertySeg2, FALSE);
-
- coldata.SetText(wxSPropertySeg2);
-
- ListCtrlIndex = lboBusinessNotes->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboBusinessNotes->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- }
-
- NoteCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("CATEGORIES")) {
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- wxString PropertyType;
- bool AfterFirstToken = FALSE;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 12;
- int intPref = 0;
- int intType = 0;
- int intSplitSeek = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 11;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
- PropertyType = wxT("work");
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
- PropertyType = wxT("home");
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- CategoriesList.insert(std::make_pair(intValueSeek, wxT("")));
- CategoriesListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- CategoriesListPID.insert(std::make_pair(intValueSeek, wxT("")));
- CategoriesListPref.insert(std::make_pair(intValueSeek, 0));
- CategoriesListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 11;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ CategoriesListAltID.erase(intValueSeek); CategoriesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ CategoriesListAltID.erase(intValueSeek); CategoriesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ CategoriesListAltID.erase(intValueSeek); CategoriesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ CategoriesListPID.erase(intValueSeek); CategoriesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ CategoriesListPID.erase(intValueSeek); CategoriesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ CategoriesListPID.erase(intValueSeek); CategoriesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ CategoriesListPref.erase(intValueSeek); CategoriesListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ CategoriesListPref.erase(intValueSeek); CategoriesListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ CategoriesListPref.erase(intValueSeek); CategoriesListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Deal with multiple categories.
-
- SplitPoints.clear();
- SplitLength.clear();
- intSplitSize = 0;
- intSplitsFound = 0;
- intSplitSeek = 0;
- intPrevValue = 0;
- intPropertyLen = wxSPropertySeg2.Len();
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- if (intSplitSize == 0 && wxSPropertySeg2.Mid(i, 1) == wxT(" ")){
-
- continue;
-
- }
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(",") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- if (AfterFirstToken == TRUE){
-
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
- SplitLength.insert(std::make_pair(intSplitsFound, intSplitSize));
-
- } else {
-
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- AfterFirstToken = TRUE;
-
- }
-
- intSplitsFound++;
- intSplitSeek = i;
- intSplitSize = 0;
-
- }
-
- }
-
- SplitPoints.insert(std::make_pair(intSplitsFound, (intSplitSeek + 1)));
- SplitLength.insert(std::make_pair(intSplitsFound, intSplitSize));
-
- intPrevValue = 0;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg2.Mid(intPrevValue, (SLiter->second + 1));
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- /*
-
- int intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- */
-
- // Add the data to the General/Home/Work address variables.
-
- // Trim any whitespace from the start and end.
-
- PropertyData = PropertyData.Trim(FALSE);
- PropertyData = PropertyData.Trim(TRUE);
-
- ProcessCaptureStrings(&PropertyData);
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(PropertyData);
-
- ListCtrlIndex = lboCategories->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboCategories->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
- CategoriesList.erase(intValueSeek);
- CategoriesListType.erase(intValueSeek);
- CategoriesListTokens.erase(intValueSeek);
- CategoriesList.insert(std::make_pair(intValueSeek, PropertyData));
- CategoriesListType.insert(std::make_pair(intValueSeek, PropertyType));
- CategoriesListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CategoryCount++;
- intValueSeek++;
-
- }
-
- } else if (wxSProperty == wxT("PHOTO")) {
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 7;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 6;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- PicturesList.insert(std::make_pair(intValueSeek, ""));
- PicturesListType.insert(std::make_pair(intValueSeek, wxT("")));
- PicturesListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- PicturesListPID.insert(std::make_pair(intValueSeek, wxT("")));
- PicturesListPref.insert(std::make_pair(intValueSeek, 0));
- PicturesListPicEncType.insert(std::make_pair(intValueSeek, wxT("")));
- PicturesListPictureType.insert(std::make_pair(intValueSeek, wxT("")));
- PicturesListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- PicturesListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 6;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ PicturesListAltID.erase(intValueSeek); PicturesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ PicturesListAltID.erase(intValueSeek); PicturesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ PicturesListAltID.erase(intValueSeek); PicturesListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ PicturesListPID.erase(intValueSeek); PicturesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ PicturesListPID.erase(intValueSeek); PicturesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ PicturesListPID.erase(intValueSeek); PicturesListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ PicturesListPref.erase(intValueSeek); PicturesListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ PicturesListPref.erase(intValueSeek); PicturesListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ PicturesListPref.erase(intValueSeek); PicturesListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ PicturesListMediatype.erase(intValueSeek); PicturesListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ PicturesListMediatype.erase(intValueSeek); PicturesListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ PicturesListMediatype.erase(intValueSeek); PicturesListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(";")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 6){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- } else {
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- wxString wxSPhotoURI;
- wxString wxSPhotoMIME;
- wxString wxSPhotoEncoding;
- wxString wxSPhotoData;
- std::string base64enc;
-
- if (intSplitsFound == 0){
-
- } else {
-
- std::map<int, int>::iterator striter;
-
- striter = SplitLength.find(1);
-
- wxStringTokenizer wSTDataType(wxSPropertySeg2.Mid(0, striter->second), wxT(":"));
-
- while (wSTDataType.HasMoreTokens() == TRUE){
-
- wxSPhotoURI = wSTDataType.GetNextToken();
- wxSPhotoMIME = wSTDataType.GetNextToken();
- break;
-
- }
-
- wxStringTokenizer wSTDataInfo(wxSPropertySeg2.Mid((striter->second + 1)), wxT(","));
-
- while (wSTDataInfo.HasMoreTokens() == TRUE){
-
- wxSPhotoEncoding = wSTDataInfo.GetNextToken();
- wxSPhotoData = wSTDataInfo.GetNextToken();
- base64enc = wxSPhotoData.mb_str();
- break;
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(_("Picture"));
-
- ListCtrlIndex = lboPictures->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboPictures->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- PicturesList.erase(intValueSeek);
- PicturesListType.erase(intValueSeek);
- PicturesListTokens.erase(intValueSeek);
- PicturesListPictureType.erase(intValueSeek);
- PicturesListPicEncType.erase(intValueSeek);
- PicturesList.insert(std::make_pair(intValueSeek, base64enc));
- PicturesListPictureType.insert(std::make_pair(intValueSeek, wxSPhotoMIME));
- PicturesListPicEncType.insert(std::make_pair(intValueSeek, wxSPhotoEncoding));
-
- if (intType == 0){
-
- PicturesListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- PicturesListType.insert(std::make_pair(intValueSeek, wxT("home")));
- lboPictures->SetItem(ListCtrlIndex, 1, _("Home"));
-
- } else if (intType == 2){
-
- PicturesListType.insert(std::make_pair(intValueSeek, wxT("work")));
- lboPictures->SetItem(ListCtrlIndex, 1, _("Work"));
-
- }
-
- PicturesListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- PhotoCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("LOGO")) {
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 6;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 5;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- LogosList.insert(std::make_pair(intValueSeek, ""));
- LogosListType.insert(std::make_pair(intValueSeek, wxT("")));
- LogosListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- LogosListPID.insert(std::make_pair(intValueSeek, wxT("")));
- LogosListPref.insert(std::make_pair(intValueSeek, 0));
- LogosListPicEncType.insert(std::make_pair(intValueSeek, wxT("")));
- LogosListPictureType.insert(std::make_pair(intValueSeek, wxT("")));
- LogosListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- LogosListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 5;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ LogosListAltID.erase(intValueSeek); LogosListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ LogosListAltID.erase(intValueSeek); LogosListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ LogosListAltID.erase(intValueSeek); LogosListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ LogosListPID.erase(intValueSeek); LogosListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ LogosListPID.erase(intValueSeek); LogosListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ LogosListPID.erase(intValueSeek); LogosListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ LogosListPref.erase(intValueSeek); LogosListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ LogosListPref.erase(intValueSeek); LogosListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ LogosListPref.erase(intValueSeek); LogosListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ LogosListMediatype.erase(intValueSeek); LogosListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ LogosListMediatype.erase(intValueSeek); LogosListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ LogosListMediatype.erase(intValueSeek); LogosListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- wxString wxSPhotoURI;
- wxString wxSPhotoMIME;
- wxString wxSPhotoEncoding;
- wxString wxSPhotoData;
- std::string base64enc;
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- if (intSplitsFound == 0){
-
- } else {
-
- std::map<int, int>::iterator striter;
-
- striter = SplitLength.find(1);
-
- wxStringTokenizer wSTDataType(wxSPropertySeg2.Mid(0, striter->second), wxT(":"));
-
- while (wSTDataType.HasMoreTokens() == TRUE){
-
- wxSPhotoURI = wSTDataType.GetNextToken();
- wxSPhotoMIME = wSTDataType.GetNextToken();
- break;
-
- }
-
- wxStringTokenizer wSTDataInfo(wxSPropertySeg2.Mid((striter->second + 1)), wxT(","));
-
- while (wSTDataInfo.HasMoreTokens() == TRUE){
-
- wxSPhotoEncoding = wSTDataInfo.GetNextToken();
- wxSPhotoData = wSTDataInfo.GetNextToken();
- base64enc = wxSPhotoData.mb_str();
- break;
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(_("Picture"));
-
- ListCtrlIndex = lboLogos->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboLogos->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- LogosList.erase(intValueSeek);
- LogosListType.erase(intValueSeek);
- LogosListTokens.erase(intValueSeek);
- LogosListPictureType.erase(intValueSeek);
- LogosListPicEncType.erase(intValueSeek);
- LogosList.insert(std::make_pair(intValueSeek, base64enc));
- LogosListPictureType.insert(std::make_pair(intValueSeek, wxSPhotoMIME));
- LogosListPicEncType.insert(std::make_pair(intValueSeek, wxSPhotoEncoding));
-
- if (intType == 0){
-
- LogosListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- LogosListType.insert(std::make_pair(intValueSeek, wxT("home")));
- lboLogos->SetItem(ListCtrlIndex, 1, _("Home"));
-
- } else if (intType == 2){
-
- LogosListType.insert(std::make_pair(intValueSeek, wxT("work")));
- lboLogos->SetItem(ListCtrlIndex, 1, _("Work"));
-
- }
-
- LogosListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- LogoCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("SOUND")) {
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 7;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 6;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- SoundsList.insert(std::make_pair(intValueSeek, ""));
- SoundsListType.insert(std::make_pair(intValueSeek, wxT("")));
- SoundsListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- SoundsListPID.insert(std::make_pair(intValueSeek, wxT("")));
- SoundsListPref.insert(std::make_pair(intValueSeek, 0));
- SoundsListAudioEncType.insert(std::make_pair(intValueSeek, wxT("")));
- SoundsListAudioType.insert(std::make_pair(intValueSeek, wxT("")));
- SoundsListTokens.insert(std::make_pair(intValueSeek, wxT("")));
- SoundsListMediatype.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 6;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- ProcessCaptureStrings(&PropertyValue);
-
- if (PropertyName == wxT("ALTID")){
-
- if (intType == 0){ SoundsListAltID.erase(intValueSeek); SoundsListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ SoundsListAltID.erase(intValueSeek); SoundsListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ SoundsListAltID.erase(intValueSeek); SoundsListAltID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PID")){
-
- if (intType == 0){ SoundsListPID.erase(intValueSeek); SoundsListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ SoundsListPID.erase(intValueSeek); SoundsListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ SoundsListPID.erase(intValueSeek); SoundsListPID.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- if (intType == 0){ SoundsListPref.erase(intValueSeek); SoundsListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 1){ SoundsListPref.erase(intValueSeek); SoundsListPref.insert(std::make_pair(intValueSeek, intPref)); }
- else if (intType == 2){ SoundsListPref.erase(intValueSeek); SoundsListPref.insert(std::make_pair(intValueSeek, intPref)); }
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- if (intType == 0){ SoundsListMediatype.erase(intValueSeek); SoundsListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 1){ SoundsListMediatype.erase(intValueSeek); SoundsListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
- else if (intType == 2){ SoundsListMediatype.erase(intValueSeek); SoundsListMediatype.insert(std::make_pair(intValueSeek, PropertyValue)); }
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- ProcessCaptureStrings(&wxSPropertySeg2);
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(";")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 6){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- } else {
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- wxString wxSSoundURI;
- wxString wxSSoundMIME;
- wxString wxSSoundEncoding;
- wxString wxSSoundData;
- std::string base64enc;
-
- if (intSplitsFound == 0){
-
- } else {
-
- std::map<int, int>::iterator striter;
-
- striter = SplitLength.find(1);
-
- wxStringTokenizer wSTDataType(wxSPropertySeg2.Mid(0, striter->second), wxT(":"));
-
- while (wSTDataType.HasMoreTokens() == TRUE){
-
- wxSSoundURI = wSTDataType.GetNextToken();
- wxSSoundMIME = wSTDataType.GetNextToken();
- break;
-
- }
-
- wxStringTokenizer wSTDataInfo(wxSPropertySeg2.Mid((striter->second + 1)), wxT(","));
-
- while (wSTDataInfo.HasMoreTokens() == TRUE){
-
- wxSSoundEncoding = wSTDataInfo.GetNextToken();
- wxSSoundData = wSTDataInfo.GetNextToken();
- base64enc = wxSSoundData.mb_str();
- break;
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(_("Sound"));
-
- ListCtrlIndex = lboSounds->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboSounds->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- SoundsList.erase(intValueSeek);
- SoundsListType.erase(intValueSeek);
- SoundsListTokens.erase(intValueSeek);
- SoundsListAudioType.erase(intValueSeek);
- SoundsListAudioEncType.erase(intValueSeek);
- SoundsList.insert(std::make_pair(intValueSeek, base64enc));
- SoundsListAudioType.insert(std::make_pair(intValueSeek, wxSSoundMIME));
- SoundsListAudioEncType.insert(std::make_pair(intValueSeek, wxSSoundEncoding));
-
- if (intType == 0){
-
- SoundsListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- SoundsListType.insert(std::make_pair(intValueSeek, wxT("home")));
- lboLogos->SetItem(ListCtrlIndex, 1, _("Home"));
-
- } else if (intType == 2){
-
- SoundsListType.insert(std::make_pair(intValueSeek, wxT("work")));
- lboLogos->SetItem(ListCtrlIndex, 1, _("Work"));
-
- }
-
- SoundsListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- SoundCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("CALURI")){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 8;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 7;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- CalendarList.insert(std::make_pair(intValueSeek, wxT("")));
- CalendarListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- CalendarListPID.insert(std::make_pair(intValueSeek, wxT("")));
- CalendarListPref.insert(std::make_pair(intValueSeek, 0));
- CalendarListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 6;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (PropertyName == wxT("ALTID")){
-
- CalendarListAltID.erase(intValueSeek); CalendarListAltID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PID")){
-
- CalendarListPID.erase(intValueSeek); CalendarListPID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- CalendarListPref.erase(intValueSeek); CalendarListPref.insert(std::make_pair(intValueSeek, intPref));
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- CalendarListMediatype.erase(intValueSeek); CalendarListMediatype.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- ListCtrlIndex = lboCalendarAddresses->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboCalendarAddresses->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- CaptureString(&wxSPropertySeg2, FALSE);
-
- CalendarList.erase(intValueSeek);
- CalendarListType.erase(intValueSeek);
- CalendarListTokens.erase(intValueSeek);
- CalendarList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
-
- if (intType == 0){
-
- CalendarListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- CalendarListType.insert(std::make_pair(intValueSeek, wxT("home")));
- lboCalendarAddresses->SetItem(ListCtrlIndex, 1, _("Home"), intPref);
-
- } else if (intType == 2){
-
- CalendarListType.insert(std::make_pair(intValueSeek, wxT("work")));
- lboCalendarAddresses->SetItem(ListCtrlIndex, 1, _("Work"), intPref);
-
- }
-
- CalendarListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CalAdrCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("CALADRURI")){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 11;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 10;
-
- // Look for type before continuing.
-
-
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- CalendarRequestList.insert(std::make_pair(intValueSeek, wxT("")));
- CalendarRequestListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- CalendarRequestListPID.insert(std::make_pair(intValueSeek, wxT("")));
- CalendarRequestListPref.insert(std::make_pair(intValueSeek, 0));
- CalendarRequestListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 10;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (PropertyName == wxT("ALTID")){
-
- CalendarRequestListAltID.erase(intValueSeek); CalendarRequestListAltID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PID")){
-
- CalendarRequestListPID.erase(intValueSeek); CalendarRequestListPID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- CalendarRequestListPref.erase(intValueSeek); CalendarRequestListPref.insert(std::make_pair(intValueSeek, intPref));
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- CalendarRequestListMediatype.erase(intValueSeek); CalendarRequestListMediatype.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- ListCtrlIndex = lboCalendarRequestAddress->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboCalendarRequestAddress->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- CaptureString(&wxSPropertySeg2, FALSE);
-
- CalendarRequestList.erase(intValueSeek);
- CalendarRequestListType.erase(intValueSeek);
- CalendarRequestListTokens.erase(intValueSeek);
- CalendarRequestList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
-
- if (intType == 0){
-
- CalendarRequestListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- CalendarRequestListType.insert(std::make_pair(intValueSeek, wxT("home")));
- lboCalendarRequestAddress->SetItem(ListCtrlIndex, 1, _("Home"), intPref);
-
- } else if (intType == 2){
-
- CalendarRequestListType.insert(std::make_pair(intValueSeek, wxT("work")));
- lboCalendarRequestAddress->SetItem(ListCtrlIndex, 1, _("Work"), intPref);
-
- }
-
- CalendarRequestListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- CalReqAdrCount++;
- intValueSeek++;
-
- } else if (wxSProperty == wxT("FBURL")){
-
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intPrevValue = 7;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 6;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- FreeBusyList.insert(std::make_pair(intValueSeek, wxT("")));
- FreeBusyListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- FreeBusyListPID.insert(std::make_pair(intValueSeek, wxT("")));
- FreeBusyListPref.insert(std::make_pair(intValueSeek, 0));
- FreeBusyListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 6;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (PropertyName == wxT("ALTID")){
-
- FreeBusyListAltID.erase(intValueSeek); FreeBusyListAltID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PID")){
-
- FreeBusyListPID.erase(intValueSeek); FreeBusyListPID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- FreeBusyListPref.erase(intValueSeek); FreeBusyListPref.insert(std::make_pair(intValueSeek, intPref));
-
- } else if (PropertyName == wxT("MEDIATYPE")){
-
- FreeBusyListMediatype.erase(intValueSeek); FreeBusyListMediatype.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
- coldata.SetText(wxSPropertySeg2);
-
- ListCtrlIndex = lboFreeBusyAddresses->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboFreeBusyAddresses->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), intPref));
-
- }
-
- CaptureString(&wxSPropertySeg2, FALSE);
-
- FreeBusyList.erase(intValueSeek);
- FreeBusyListType.erase(intValueSeek);
- FreeBusyListTokens.erase(intValueSeek);
- FreeBusyList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
-
- if (intType == 0){
-
- FreeBusyListType.insert(std::make_pair(intValueSeek, wxT("")));
-
- } else if (intType == 1){
-
- FreeBusyListType.insert(std::make_pair(intValueSeek, wxT("home")));
- lboFreeBusyAddresses->SetItem(ListCtrlIndex, 1, _("Home"), intPref);
-
- } else if (intType == 2){
-
- FreeBusyListType.insert(std::make_pair(intValueSeek, wxT("work")));
- lboFreeBusyAddresses->SetItem(ListCtrlIndex, 1, _("Work"), intPref);
-
- }
-
- FreeBusyListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- FreeBusyCount++;
- intValueSeek++;
- } else if (wxSProperty == wxT("KEY")){
-
- size_t intPropertyLen = wxSPropertySeg1.Len();
- std::map<int, int> SplitPoints;
- std::map<int, int> SplitLength;
- std::map<int, int>::iterator SLiter;
- wxString PropertyData;
- wxString PropertyName;
- wxString PropertyValue;
- wxString PropertyTokens;
- bool FirstToken = TRUE;
- int intSplitsFound = 0;
- int intSplitSize = 0;
- int intPrevValue = 5;
- int intPref = 0;
- int intType = 0;
- long ListCtrlIndex;
-
- SplitValues(&wxSPropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
-
- intPrevValue = 4;
-
- // Look for type before continuing.
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- if (PropertyName == wxT("TYPE")){
-
- if (PropertyValue == wxT("work")){
-
- intType = 2;
-
- } else if (PropertyValue == wxT("home")){
-
- intType = 1;
-
- } else {
-
- intType = 0;
-
- }
-
- }
-
- }
-
- // Setup blank lines for later on.
-
- KeyList.insert(std::make_pair(intValueSeek, wxT("")));
- KeyListAltID.insert(std::make_pair(intValueSeek, wxT("")));
- KeyListPID.insert(std::make_pair(intValueSeek, wxT("")));
- KeyListPref.insert(std::make_pair(intValueSeek, 0));
- KeyListKeyType.insert(std::make_pair(intValueSeek, FALSE));
- KeyListDataType.insert(std::make_pair(intValueSeek, wxT("")));
- KeyListDataEncType.insert(std::make_pair(intValueSeek, wxT("")));
- KeyListTokens.insert(std::make_pair(intValueSeek, wxT("")));
-
- intPrevValue = 4;
-
- for (std::map<int, int>::iterator intiter = SplitPoints.begin();
- intiter != SplitPoints.end(); ++intiter){
-
- SLiter = SplitLength.find(intiter->first);
-
- PropertyData = wxSPropertySeg1.Mid(intPrevValue, (SLiter->second));
-
- wxStringTokenizer PropertyElement (PropertyData, wxT("="));
- PropertyName = PropertyElement.GetNextToken();
- PropertyValue = PropertyElement.GetNextToken();
-
- intPrevValue = intiter->second;
-
- // Process properties.
-
- size_t intPropertyValueLen = PropertyValue.Len();
-
- if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){
-
- PropertyValue.Trim();
- PropertyValue.RemoveLast();
-
- }
-
- if (PropertyValue.Mid(0, 1) == wxT("\"")){
-
- PropertyValue.Remove(0, 1);
-
- }
-
- if (PropertyName == wxT("ALTID")){
-
- KeyListAltID.erase(intValueSeek); KeyListAltID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PID")){
-
- KeyListPID.erase(intValueSeek); KeyListPID.insert(std::make_pair(intValueSeek, PropertyValue));
-
- } else if (PropertyName == wxT("PREF")){
-
- intPref = wxAtoi(PropertyValue);
-
- KeyListPref.erase(intValueSeek); KeyListPref.insert(std::make_pair(intValueSeek, intPref));
-
- } else {
-
- // Something else we don't know about so append
- // to the tokens variable.
-
- if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){
-
- if (FirstToken == TRUE){
-
- PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
- FirstToken = FALSE;
-
- } else {
-
- PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
-
- }
-
- }
-
- }
-
- }
-
- intPropertyLen = wxSPropertySeg2.Len();
- SplitPoints.clear();
- SplitLength.clear();
- intSplitsFound = 0;
- intSplitSize = 0;
- intPrevValue = 0;
-
- for (int i = 0; i <= intPropertyLen; i++){
-
- intSplitSize++;
-
- if (wxSPropertySeg2.Mid(i, 1) == wxT(";") && wxSPropertySeg2.Mid((i - 1), 1) != wxT("\\")){
-
- intSplitsFound++;
- SplitPoints.insert(std::make_pair(intSplitsFound, (i + 1)));
-
- if (intSplitsFound == 6){
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
- break;
-
- } else {
-
- SplitLength.insert(std::make_pair(intSplitsFound, (intSplitSize - 1)));
-
- }
-
- intSplitSize = 0;
-
- }
-
- }
-
- wxString wxSKeyURI;
- wxString wxSKeyMIME;
- wxString wxSKeyEncoding;
- wxString wxSKeyData;
- std::string base64enc;
-
- if (intSplitsFound == 0){
-
- } else {
-
- std::map<int, int>::iterator striter;
-
- striter = SplitLength.find(1);
-
- wxStringTokenizer wSTDataType(wxSPropertySeg2.Mid(0, striter->second), wxT(":"));
-
- while (wSTDataType.HasMoreTokens() == TRUE){
-
- wxSKeyURI = wSTDataType.GetNextToken();
- wxSKeyMIME = wSTDataType.GetNextToken();
- break;
-
- }
-
- if (wxSKeyURI == wxT("data")){
-
- wxStringTokenizer wSTDataInfo(wxSPropertySeg2.Mid((striter->second + 2)), wxT(","));
-
- while (wSTDataInfo.HasMoreTokens() == TRUE){
-
- wxSKeyEncoding = wSTDataInfo.GetNextToken();
- wxSKeyData = wSTDataInfo.GetNextToken();
- break;
-
- }
-
- }
-
- }
-
- // Add the data to the General/Home/Work address variables.
-
- wxListItem coldata;
-
- coldata.SetId(intValueSeek);
- coldata.SetData(intValueSeek);
-
- if (wxSKeyURI == wxT("data")){
-
- if (wxSKeyMIME == wxT("application/pgp-keys")){
-
- coldata.SetText(_("PGP Key"));
-
- } else {
-
- coldata.SetText(_("Key"));
-
- }
-
- KeyListDataEncType.erase(intValueSeek);
- KeyListKeyType.erase(intValueSeek);
- KeyListDataEncType.insert(std::make_pair(intValueSeek, wxSKeyEncoding));
- KeyListKeyType.insert(std::make_pair(intValueSeek, TRUE));
-
- KeyList.erase(intValueSeek);
- KeyList.insert(std::make_pair(intValueSeek, wxSKeyData));
-
- } else {
-
- coldata.SetText(wxSPropertySeg2);
-
- KeyList.erase(intValueSeek);
- KeyList.insert(std::make_pair(intValueSeek, wxSPropertySeg2));
-
- }
-
- ListCtrlIndex = lboKeys->InsertItem(coldata);
-
- if (intPref > 0 && intPref < 101){
-
- lboKeys->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), intPref));
-
- }
-
-
- KeyListType.erase(intValueSeek);
- KeyListTokens.erase(intValueSeek);
- KeyListDataType.erase(intValueSeek);
-
- KeyListDataType.insert(std::make_pair(intValueSeek, wxSKeyMIME));
-
- switch (intType){
- case 0: KeyListType.insert(std::make_pair(intValueSeek, wxT("")));
- case 1: KeyListType.insert(std::make_pair(intValueSeek, wxT("home")));
- case 2: KeyListType.insert(std::make_pair(intValueSeek, wxT("work")));
- }
-
- KeyListTokens.insert(std::make_pair(intValueSeek, PropertyTokens));
-
- KeyCount++;
- intValueSeek++;
+ LoadKey(wxSPropertySeg1, wxSPropertySeg2, &KeyCount);
} else if (wxSProperty == wxT("UID") && UIDProcessed == FALSE){