Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Fixed potential crash in frmContactEditorCalAdr in Edit mode.
[xestiaab/.git] / source / contacteditor / cdo / ContactDataObject.cpp
index 7a19c0e..5085409 100644 (file)
@@ -1,6 +1,6 @@
 // ContactDataObject.cpp - Client Data Object.
 //
-// (c) 2012-2015 Xestia Software Development.
+// (c) 2012-2016 Xestia Software Development.
 //
 // This file is part of Xestia Address Book.
 //
@@ -375,13 +375,6 @@ ContactLoadStatus ContactDataObject::LoadFile(wxString Filename){
                        ProcessLogo(PropertySeg1, PropertySeg2, &LogoCount);
                        LogoCount++;
 
-               } else if (Property == wxT("LOGO")) {
-               
-                       // See frmContactEditor-LoadPhoto.cpp
-                       
-                       ProcessLogo(PropertySeg1, PropertySeg2, &LogoCount);
-                       LogoCount++;
-
                } else if (Property == wxT("SOUND")) {
                
                        // See frmContactEditor-LoadSound.cpp
@@ -1167,7 +1160,6 @@ void ContactDataObject::ProcessBirthday(wxString PropertySeg1, wxString Property
        wxString PropertyName;
        wxString PropertyValue;
        wxString PropertyTokens;
-       bool BirthdayText = FALSE;
        int intPrevValue = 6;
 
        SplitValues(&PropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
@@ -1270,7 +1262,6 @@ void ContactDataObject::ProcessAnniversary(wxString PropertySeg1, wxString Prope
        wxString PropertyName;
        wxString PropertyValue;
        wxString PropertyTokens;
-       bool AnniversaryText = FALSE;
        int intPrevValue = 13;
 
        SplitValues(&PropertySeg1, &SplitPoints, &SplitLength, intPrevValue);
@@ -1595,7 +1586,15 @@ void ContactDataObject::ProcessAddress(wxString PropertySeg1, wxString PropertyS
                ProcessNameValue(&PropertyData, &PropertyName, &PropertyValue);
                intPrevValue = intiter->second;
                
-               CaptureString(&PropertyValue, FALSE);
+               if (PropertyName == "GEO"){
+               
+                       CaptureString(&PropertyValue, TRUE); 
+               
+               } else {
+               
+                       CaptureString(&PropertyValue, FALSE);                   
+               
+               }
                
                // Process properties.
                
@@ -1884,7 +1883,8 @@ void ContactDataObject::ProcessIM(wxString PropertySeg1, wxString PropertySeg2,
        std::map<int, wxString> *IMListAltID = NULL;
        std::map<int, wxString> *IMListPID = NULL;
        std::map<int, wxString> *IMListTokens = NULL;
-       std::map<int, wxString> *IMListMediatype = NULL;        
+       std::map<int, wxString> *IMListMediatype = NULL;
+       std::map<int, wxString> *IMListTypeInfo = NULL;
        std::map<int, int> *IMListPref = NULL;
 
        switch(PropType){
@@ -1895,6 +1895,7 @@ void ContactDataObject::ProcessIM(wxString PropertySeg1, wxString PropertySeg2,
                        IMListPID = &GeneralIMListPID;
                        IMListTokens = &GeneralIMListTokens;
                        IMListMediatype = &GeneralIMListMediatype;
+                       IMListTypeInfo = &GeneralIMListTypeInfo;
                        IMListPref = &GeneralIMListPref;        
                        break;
                case PROPERTY_HOME:
@@ -1903,7 +1904,8 @@ void ContactDataObject::ProcessIM(wxString PropertySeg1, wxString PropertySeg2,
                        IMListAltID = &HomeIMListAltID;
                        IMListPID = &HomeIMListPID;
                        IMListTokens = &HomeIMListTokens;
-                       IMListMediatype = &HomeIMListMediatype;         
+                       IMListMediatype = &HomeIMListMediatype; 
+                       IMListTypeInfo = &HomeIMListTypeInfo;   
                        IMListPref = &HomeIMListPref;   
                        break;
                case PROPERTY_WORK:
@@ -1912,7 +1914,8 @@ void ContactDataObject::ProcessIM(wxString PropertySeg1, wxString PropertySeg2,
                        IMListAltID = &BusinessIMListAltID;
                        IMListPID = &BusinessIMListPID;
                        IMListTokens = &BusinessIMListTokens;   
-                       IMListMediatype = &BusinessIMListMediatype;     
+                       IMListMediatype = &BusinessIMListMediatype;
+                       IMListTypeInfo = &BusinessIMListTypeInfo;
                        IMListPref = &BusinessIMListPref;       
                        break;
        }
@@ -1955,7 +1958,19 @@ void ContactDataObject::ProcessIM(wxString PropertySeg1, wxString PropertySeg2,
        
        }
                
-       IMList->insert(std::make_pair(*IMCount, PropertySeg2));
+       wxStringTokenizer IMPPSplitData(PropertySeg2, wxT(":"));
+               
+       if (IMPPSplitData.CountTokens() > 1){
+
+               IMListTypeInfo->insert(std::make_pair(*IMCount, IMPPSplitData.GetNextToken()));
+               IMList->insert(std::make_pair(*IMCount, IMPPSplitData.GetString()));
+       
+       } else {
+       
+               IMList->insert(std::make_pair(*IMCount, PropertySeg2));
+               IMListTypeInfo->insert(std::make_pair(*IMCount, "none"));
+       
+       }
        
        // Add the name token data.
        
@@ -2067,10 +2082,11 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
                        TypeSplitLength.insert(std::make_pair(intSplitsFound, intSplitSize));                                                           
                
                        int intTypeSeek = 0;
+                       bool TypeFound = FALSE;
                
                        for (std::map<int, int>::iterator typeiter = TypeSplitPoints.begin(); 
                        typeiter != TypeSplitPoints.end(); ++typeiter){
-                       
+                                               
                                wxString TypePropertyName;
                                
                                TSLiter = TypeSplitLength.find(typeiter->first);
@@ -2085,18 +2101,23 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
                                        TelTypeUI.Append(wxT(","));                                                     
                                
                                }
-                       
-                               if (TypePropertyName == wxT("home")){
+
+                               if (TypePropertyName == wxT("home") && TypeFound == FALSE){
                                
                                        PropType = PROPERTY_HOME;
+                                       TelTypeUI.Append("home");
+                                       intTypeSeek++;
+                                       TypeFound = TRUE;
                                
-                               } else if (TypePropertyName == wxT("work")){
+                               } else if (TypePropertyName == wxT("work") && TypeFound == FALSE){
                                
                                        PropType = PROPERTY_WORK;
-                                                                       
+                                       TelTypeUI.Append("work");
+                                       intTypeSeek++;
+                                       TypeFound = TRUE;
+                                               
                                }
                                
-                               
                                if (TypePropertyName == wxT("text")){
                                
                                        TelTypeUI.Append(_("text"));
@@ -2114,7 +2135,7 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
                                
                                } else if (TypePropertyName == wxT("cell")){
                                
-                                       TelTypeUI.Append(_("mobile"));
+                                       TelTypeUI.Append(_("cell"));
                                        intTypeSeek++;
                                
                                } else if (TypePropertyName == wxT("video")){
@@ -2145,7 +2166,8 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
        std::map<int, wxString> *TelephoneListAltID = NULL;
        std::map<int, wxString> *TelephoneListPID = NULL;
        std::map<int, wxString> *TelephoneListTokens = NULL;
-       std::map<int, wxString> *TelephoneListTypeInfo = NULL;  
+       std::map<int, wxString> *TelephoneListTypeInfo = NULL;
+       std::map<int, wxString> *TelephoneListDataType = NULL;
        std::map<int, int> *TelephoneListPref = NULL;
 
        switch(PropType){
@@ -2156,6 +2178,7 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
                        TelephoneListPID = &GeneralTelephoneListPID;
                        TelephoneListTokens = &GeneralTelephoneListTokens;
                        TelephoneListTypeInfo = &GeneralTelephoneListTypeInfo;
+                       TelephoneListDataType = &GeneralTelephoneListDataType;
                        TelephoneListPref = &GeneralTelephoneListPref;  
                        break;
                case PROPERTY_HOME:
@@ -2164,7 +2187,8 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
                        TelephoneListAltID = &HomeTelephoneListAltID;
                        TelephoneListPID = &HomeTelephoneListPID;
                        TelephoneListTokens = &HomeTelephoneListTokens;
-                       TelephoneListTypeInfo = &HomeTelephoneListTypeInfo;     
+                       TelephoneListTypeInfo = &HomeTelephoneListTypeInfo;
+                       TelephoneListDataType = &HomeTelephoneListDataType;
                        TelephoneListPref = &HomeTelephoneListPref;     
                        break;
                case PROPERTY_WORK:
@@ -2173,7 +2197,8 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
                        TelephoneListAltID = &BusinessTelephoneListAltID;
                        TelephoneListPID = &BusinessTelephoneListPID;
                        TelephoneListTokens = &BusinessTelephoneListTokens;     
-                       TelephoneListTypeInfo = &BusinessTelephoneListTypeInfo; 
+                       TelephoneListTypeInfo = &BusinessTelephoneListTypeInfo;
+                       TelephoneListDataType = &BusinessTelephoneListDataType;
                        TelephoneListPref = &BusinessTelephoneListPref; 
                        break;
        }
@@ -2219,9 +2244,24 @@ void ContactDataObject::ProcessTelephone(wxString PropertySeg1, wxString Propert
        
        }
                
-       TelephoneList->insert(std::make_pair(*TelephoneCount, PropertySeg2));
-       TelephoneListTypeInfo->insert(std::make_pair(*TelephoneCount, TelTypeUI));
+       // Check for the type information and split it down.
+       
+       wxStringTokenizer TelSplitData(PropertySeg2, wxT(":"));
+               
+       if (TelSplitData.CountTokens() > 1){
+
+               TelephoneListDataType->insert(std::make_pair(*TelephoneCount, TelSplitData.GetNextToken()));                    
+               TelephoneList->insert(std::make_pair(*TelephoneCount, TelSplitData.GetString()));
        
+       } else {
+       
+               TelephoneList->insert(std::make_pair(*TelephoneCount, PropertySeg2));
+               TelephoneListDataType->insert(std::make_pair(*TelephoneCount, "tel"));
+       
+       }
+               
+       TelephoneListTypeInfo->insert(std::make_pair(*TelephoneCount, TelTypeUI));
+               
        // Add the name token data.
        
        if (!PropertyTokens.IsEmpty()){
@@ -2355,6 +2395,7 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper
        std::map<int, wxString> *GeopositionListPID = NULL;
        std::map<int, wxString> *GeopositionListTokens = NULL;
        std::map<int, wxString> *GeopositionListMediatype = NULL;
+       std::map<int, wxString> *GeopositionListDataType = NULL;
        std::map<int, int> *GeopositionListPref = NULL;
 
        switch(PropType){
@@ -2365,6 +2406,7 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper
                        GeopositionListPID = &GeneralGeographyListPID;
                        GeopositionListTokens = &GeneralGeographyListTokens;
                        GeopositionListMediatype = &GeneralGeographyListMediatype;
+                       GeopositionListDataType = &GeneralGeographyListDataType;
                        GeopositionListPref = &GeneralGeographyListPref;        
                        break;
                case PROPERTY_HOME:
@@ -2374,6 +2416,7 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper
                        GeopositionListPID = &HomeGeographyListPID;
                        GeopositionListTokens = &HomeGeographyListTokens;
                        GeopositionListMediatype = &HomeGeographyListMediatype;
+                       GeopositionListDataType = &HomeGeographyListDataType;
                        GeopositionListPref = &HomeGeographyListPref;   
                        break;
                case PROPERTY_WORK:
@@ -2382,7 +2425,8 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper
                        GeopositionListAltID = &BusinessGeographyListAltID;
                        GeopositionListPID = &BusinessGeographyListPID;
                        GeopositionListTokens = &BusinessGeographyListTokens;
-                       GeopositionListMediatype = &BusinessGeographyListMediatype;     
+                       GeopositionListMediatype = &BusinessGeographyListMediatype;
+                       GeopositionListDataType = &BusinessGeographyListDataType;
                        GeopositionListPref = &BusinessGeographyListPref;
                        break;
        }
@@ -2424,9 +2468,21 @@ void ContactDataObject::ProcessGeographic(wxString PropertySeg1, wxString Proper
                ProcessTokens(&PropertyName, &PropertyValue, &PropertyTokens, &FirstToken);
        
        }
+       
+       wxStringTokenizer GeoSplitData(PropertySeg2, wxT(":"));
                
-       GeopositionList->insert(std::make_pair(*GeographicCount, PropertySeg2));
+       if (GeoSplitData.CountTokens() > 1){
+
+               GeopositionListDataType->insert(std::make_pair(*GeographicCount, GeoSplitData.GetNextToken()));                 
+               GeopositionList->insert(std::make_pair(*GeographicCount, GeoSplitData.GetString()));
        
+       } else {
+       
+               GeopositionList->insert(std::make_pair(*GeographicCount, PropertySeg2));
+               GeopositionListDataType->insert(std::make_pair(*GeographicCount, "tel"));
+       
+       }
+               
        // Add the name token data.
        
        if (!PropertyTokens.IsEmpty()){
@@ -3812,7 +3868,7 @@ void ContactDataObject::ProcessLogo(wxString PropertySeg1, wxString PropertySeg2
        }
        
        // Add the data to the General/Home/Work address variables.
-       
+               
        LogosList.insert(std::make_pair(*LogoCount, base64enc));
        LogosListPictureType.insert(std::make_pair(*LogoCount, wxSPhotoMIME));
        LogosListPicEncType.insert(std::make_pair(*LogoCount, wxSPhotoEncoding));
@@ -4529,6 +4585,510 @@ void ContactDataObject::ProcessVendor(wxString PropertySeg1, wxString PropertySe
 
 }
 
+void ContactDataObject::ClearData(){
+
+    NameTitle.clear();
+    NameForename.clear();
+    NameSurname.clear();
+    NameOtherNames.clear();
+    NameSuffix.clear();
+    NameNickname.clear();
+    NameDisplayAs.clear();
+    NameLanguage.clear();
+    NameAltID.clear();
+    NameTokens.clear();
+    
+    Birthday.clear();
+    BirthdayAltID.clear();
+    BirthdayCalScale.clear();
+    BirthdayTokens.clear();
+    Anniversary.clear();
+    AnniversaryAltID.clear();
+    AnniversaryCalScale.clear();
+    AnniversaryTokens.clear();
+    
+    Gender.clear();
+    GenderDetails.clear();
+    GenderTokens.clear();
+    
+    UIDToken.clear();
+    Revision.clear();
+    RevisionTokens.clear();
+    
+    SourceList.clear();
+    SourceListAltID.clear();
+    SourceListPID.clear();
+    SourceListType.clear();
+    SourceListTokens.clear();
+    SourceListMediatype.clear();
+    SourceListPref.clear();
+    
+    XMLList.clear();
+    XMLListAltID.clear();
+    
+    ClientPIDList.clear();
+    ClientPIDListTokens.clear();
+    
+    FullNamesList.clear();    
+    FullNamesListType.clear();
+    FullNamesListLanguage.clear();
+    FullNamesListAltID.clear();
+    FullNamesListPID.clear();
+    FullNamesListTokens.clear();
+    FullNamesListPref.clear();
+    
+    GeneralNicknamesList.clear();
+    GeneralNicknamesListType.clear();
+    GeneralNicknamesListLanguage.clear();
+    GeneralNicknamesListAltID.clear();
+    GeneralNicknamesListPID.clear();
+    GeneralNicknamesListTokens.clear();        
+    GeneralNicknamesListPref.clear();        
+    
+    GeneralAddressList.clear();
+    GeneralAddressListTown.clear();
+    GeneralAddressListCounty.clear();
+    GeneralAddressListPostCode.clear();
+    GeneralAddressListCountry.clear();
+    GeneralAddressListLabel.clear();
+    GeneralAddressListLang.clear();        
+    GeneralAddressListAltID.clear();
+    GeneralAddressListPID.clear();
+    GeneralAddressListTokens.clear();
+    GeneralAddressListGeo.clear();
+    GeneralAddressListTimezone.clear();        
+    GeneralAddressListType.clear();
+    GeneralAddressListMediatype.clear();
+    GeneralAddressListPref.clear();
+    
+    GeneralEmailList.clear();
+    GeneralEmailListAltID.clear();
+    GeneralEmailListPID.clear();
+    GeneralEmailListType.clear();
+    GeneralEmailListTokens.clear();
+    GeneralEmailListPref.clear();
+    
+    GeneralIMList.clear();
+    GeneralIMListAltID.clear();
+    GeneralIMListPID.clear();
+    GeneralIMListType.clear();
+    GeneralIMListTypeInfo.clear();
+    GeneralIMListTokens.clear();
+    GeneralIMListMediatype.clear();
+    GeneralIMListPref.clear();
+    
+    GeneralTelephoneList.clear();
+    GeneralTelephoneListAltID.clear();
+    GeneralTelephoneListPID.clear();
+    GeneralTelephoneListType.clear();
+    GeneralTelephoneListTokens.clear();
+    GeneralTelephoneListTypeInfo.clear();
+    GeneralTelephoneListPref.clear();
+    
+    GeneralLanguageList.clear();
+    GeneralLanguageListAltID.clear();
+    GeneralLanguageListPID.clear();
+    GeneralLanguageListType.clear();
+    GeneralLanguageListTokens.clear();
+    GeneralLanguageListPref.clear();
+    
+    GeneralTZList.clear();
+    GeneralTZListAltID.clear();
+    GeneralTZListPID.clear();
+    GeneralTZListType.clear();
+    GeneralTZListTokens.clear();
+    GeneralTZListMediatype.clear();
+    GeneralTZListPref.clear();
+    
+    GeneralGeographyList.clear();
+    GeneralGeographyListAltID.clear();
+    GeneralGeographyListPID.clear();
+    GeneralGeographyListType.clear();
+    GeneralGeographyListTokens.clear();
+    GeneralGeographyListMediatype.clear();
+    GeneralGeographyListPref.clear();
+    
+    GeneralRelatedList.clear();
+    GeneralRelatedListRelType.clear();
+    GeneralRelatedListLanguage.clear();
+    GeneralRelatedListAltID.clear();
+    GeneralRelatedListPID.clear();
+    GeneralRelatedListType.clear();
+    GeneralRelatedListTokens.clear();
+    GeneralRelatedListPref.clear();
+    
+    GeneralWebsiteList.clear();
+    GeneralWebsiteListAltID.clear();
+    GeneralWebsiteListPID.clear();
+    GeneralWebsiteListType.clear();
+    GeneralWebsiteListTokens.clear();
+    GeneralWebsiteListMediatype.clear();
+    GeneralWebsiteListPref.clear();
+    
+    GeneralTitleList.clear();
+    GeneralTitleListLanguage.clear();        
+    GeneralTitleListAltID.clear();
+    GeneralTitleListPID.clear();
+    GeneralTitleListType.clear();
+    GeneralTitleListTokens.clear();
+    GeneralTitleListPref.clear();
+    
+    GeneralRoleList.clear();
+    GeneralRoleListLanguage.clear();        
+    GeneralRoleListAltID.clear();
+    GeneralRoleListPID.clear();
+    GeneralRoleListType.clear();
+    GeneralRoleListTokens.clear();
+    GeneralRoleListPref.clear();
+    
+    GeneralOrganisationsList.clear();
+    GeneralOrganisationsListLanguage.clear();        
+    GeneralOrganisationsListAltID.clear();
+    GeneralOrganisationsListPID.clear();
+    GeneralOrganisationsListType.clear();
+    GeneralOrganisationsListTokens.clear();
+    GeneralOrganisationsListSortAs.clear();
+    GeneralOrganisationsListPref.clear();
+    
+    GeneralNoteList.clear();
+    GeneralNoteListLanguage.clear();        
+    GeneralNoteListAltID.clear();
+    GeneralNoteListPID.clear();
+    GeneralNoteListType.clear();
+    GeneralNoteListTokens.clear();
+    GeneralNoteListPref.clear();
+    
+    /* Items on Home Tab */        
+    
+    HomeNicknamesList.clear();
+    HomeNicknamesListType.clear();
+    HomeNicknamesListLanguage.clear();
+    HomeNicknamesListAltID.clear();
+    HomeNicknamesListPID.clear();
+    HomeNicknamesListTokens.clear();        
+    HomeNicknamesListPref.clear();        
+    
+    HomeAddressList.clear();
+    HomeAddressListTown.clear();
+    HomeAddressListCounty.clear();
+    HomeAddressListPostCode.clear();
+    HomeAddressListCountry.clear();
+    HomeAddressListLabel.clear();
+    HomeAddressListLang.clear();        
+    HomeAddressListAltID.clear();
+    HomeAddressListPID.clear();
+    HomeAddressListTokens.clear();
+    HomeAddressListGeo.clear();
+    HomeAddressListTimezone.clear();        
+    HomeAddressListType.clear();
+    HomeAddressListMediatype.clear();
+    HomeAddressListPref.clear();
+    
+    HomeEmailList.clear();
+    HomeEmailListAltID.clear();
+    HomeEmailListPID.clear();
+    HomeEmailListType.clear();
+    HomeEmailListTokens.clear();
+    HomeEmailListPref.clear();
+    
+    HomeIMList.clear();
+    HomeIMListAltID.clear();
+    HomeIMListPID.clear();
+    HomeIMListType.clear();
+    HomeIMListTypeInfo.clear();
+    HomeIMListTokens.clear();
+    HomeIMListMediatype.clear();
+    HomeIMListPref.clear();
+    
+    HomeTelephoneList.clear();
+    HomeTelephoneListAltID.clear();
+    HomeTelephoneListPID.clear();
+    HomeTelephoneListType.clear();
+    HomeTelephoneListTokens.clear();
+    HomeTelephoneListTypeInfo.clear();
+    HomeTelephoneListPref.clear();
+    
+    HomeLanguageList.clear();
+    HomeLanguageListAltID.clear();
+    HomeLanguageListPID.clear();
+    HomeLanguageListType.clear();
+    HomeLanguageListTokens.clear();
+    HomeLanguageListPref.clear();
+    
+    HomeTZList.clear();
+    HomeTZListAltID.clear();
+    HomeTZListPID.clear();
+    HomeTZListType.clear();
+    HomeTZListTokens.clear();
+    HomeTZListMediatype.clear();
+    HomeTZListPref.clear();
+    
+    HomeGeographyList.clear();
+    HomeGeographyListAltID.clear();
+    HomeGeographyListPID.clear();
+    HomeGeographyListType.clear();
+    HomeGeographyListTokens.clear();
+    HomeGeographyListMediatype.clear();
+    HomeGeographyListPref.clear();       
+    
+    HomeWebsiteList.clear();
+    HomeWebsiteListAltID.clear();
+    HomeWebsiteListPID.clear();
+    HomeWebsiteListType.clear();
+    HomeWebsiteListTokens.clear();
+    HomeWebsiteListMediatype.clear();
+    HomeWebsiteListPref.clear();
+    
+    HomeTitleList.clear();
+    HomeTitleListLanguage.clear();
+    HomeTitleListAltID.clear();
+    HomeTitleListPID.clear();
+    HomeTitleListType.clear();
+    HomeTitleListTokens.clear();
+    HomeTitleListPref.clear();
+    
+    HomeRoleList.clear();
+    HomeRoleListLanguage.clear();        
+    HomeRoleListAltID.clear();
+    HomeRoleListPID.clear();
+    HomeRoleListType.clear();
+    HomeRoleListTokens.clear();
+    HomeRoleListPref.clear();
+    
+    HomeOrganisationsList.clear();
+    HomeOrganisationsListLanguage.clear();        
+    HomeOrganisationsListAltID.clear();
+    HomeOrganisationsListPID.clear();
+    HomeOrganisationsListType.clear();
+    HomeOrganisationsListTokens.clear();
+    HomeOrganisationsListSortAs.clear();
+    HomeOrganisationsListPref.clear();
+    
+    HomeNoteList.clear();
+    HomeNoteListLanguage.clear();        
+    HomeNoteListAltID.clear();
+    HomeNoteListPID.clear();
+    HomeNoteListType.clear();
+    HomeNoteListTokens.clear();
+    HomeNoteListPref.clear();        
+    
+    /* Items on the Business tab */
+    
+    BusinessNicknamesList.clear();
+    BusinessNicknamesListType.clear();
+    BusinessNicknamesListLanguage.clear();
+    BusinessNicknamesListAltID.clear();
+    BusinessNicknamesListPID.clear();
+    BusinessNicknamesListTokens.clear();        
+    BusinessNicknamesListPref.clear();        
+    
+    BusinessAddressList.clear();
+    BusinessAddressListTown.clear();
+    BusinessAddressListCounty.clear();
+    BusinessAddressListPostCode.clear();
+    BusinessAddressListCountry.clear();
+    BusinessAddressListLabel.clear();
+    BusinessAddressListLang.clear();        
+    BusinessAddressListAltID.clear();
+    BusinessAddressListPID.clear();
+    BusinessAddressListTokens.clear();
+    BusinessAddressListGeo.clear();
+    BusinessAddressListTimezone.clear();        
+    BusinessAddressListType.clear();
+    BusinessAddressListMediatype.clear();
+    BusinessAddressListPref.clear();
+    
+    BusinessEmailList.clear();
+    BusinessEmailListAltID.clear();
+    BusinessEmailListPID.clear();
+    BusinessEmailListType.clear();
+    BusinessEmailListTokens.clear();
+    BusinessEmailListPref.clear();
+    
+    BusinessIMList.clear();
+    BusinessIMListAltID.clear();
+    BusinessIMListPID.clear();
+    BusinessIMListType.clear();
+    BusinessIMListTokens.clear();
+    BusinessIMListMediatype.clear();
+    BusinessIMListPref.clear();
+    
+    BusinessTelephoneList.clear();
+    BusinessTelephoneListAltID.clear();
+    BusinessTelephoneListPID.clear();
+    BusinessTelephoneListType.clear();
+    BusinessTelephoneListTokens.clear();
+    BusinessTelephoneListPref.clear();
+    
+    BusinessLanguageList.clear();
+    BusinessLanguageListAltID.clear();
+    BusinessLanguageListPID.clear();
+    BusinessLanguageListType.clear();
+    BusinessLanguageListTokens.clear();
+    BusinessLanguageListPref.clear();
+    
+    BusinessTZList.clear();
+    BusinessTZListAltID.clear();
+    BusinessTZListPID.clear();
+    BusinessTZListType.clear();
+    BusinessTZListTokens.clear();
+    BusinessTZListMediatype.clear();
+    BusinessTZListPref.clear();
+    
+    BusinessGeographyList.clear();
+    BusinessGeographyListAltID.clear();
+    BusinessGeographyListPID.clear();
+    BusinessGeographyListType.clear();
+    BusinessGeographyListTokens.clear();
+    BusinessGeographyListMediatype.clear();
+    BusinessGeographyListPref.clear();          
+    
+    BusinessWebsiteList.clear();
+    BusinessWebsiteListAltID.clear();
+    BusinessWebsiteListPID.clear();
+    BusinessWebsiteListType.clear();
+    BusinessWebsiteListTokens.clear();
+    BusinessWebsiteListMediatype.clear();
+    BusinessWebsiteListPref.clear();
+    
+    BusinessTitleList.clear();
+    BusinessTitleListLanguage.clear();        
+    BusinessTitleListAltID.clear();
+    BusinessTitleListPID.clear();
+    BusinessTitleListType.clear();
+    BusinessTitleListTokens.clear();
+    BusinessTitleListPref.clear();
+    
+    BusinessRoleList.clear();
+    BusinessRoleListLanguage.clear();        
+    BusinessRoleListAltID.clear();
+    BusinessRoleListPID.clear();
+    BusinessRoleListType.clear();
+    BusinessRoleListTokens.clear();
+    BusinessRoleListPref.clear();
+    
+    BusinessOrganisationsList.clear();
+    BusinessOrganisationsListLanguage.clear();        
+    BusinessOrganisationsListAltID.clear();
+    BusinessOrganisationsListPID.clear();
+    BusinessOrganisationsListType.clear();
+    BusinessOrganisationsListTokens.clear();
+    BusinessOrganisationsListSortAs.clear();        
+    BusinessOrganisationsListPref.clear();
+    
+    BusinessNoteList.clear();
+    BusinessNoteListLanguage.clear();        
+    BusinessNoteListAltID.clear();
+    BusinessNoteListPID.clear();
+    BusinessNoteListType.clear();
+    BusinessNoteListTokens.clear();
+    BusinessNoteListPref.clear();        
+    
+    /* Items on the Categories tab */
+    
+    CategoriesList.clear();
+    CategoriesListAltID.clear();
+    CategoriesListPID.clear();
+    CategoriesListType.clear();
+    CategoriesListTokens.clear();
+    CategoriesListLanguage.clear();
+    CategoriesListPref.clear();    
+    
+    /* Items on the Groups tab */
+    
+    GroupsList.clear();
+    GroupsListAltID.clear();
+    GroupsListPID.clear();
+    GroupsListType.clear();
+    GroupsListMediaType.clear();
+    GroupsListTokens.clear();
+    GroupsListPref.clear();
+    
+    /* Items on the Pictures tab */
+    
+    PicturesList.clear();
+    PicturesListAltID.clear();
+    PicturesListPID.clear();
+    PicturesListType.clear();
+    PicturesListPicEncType.clear();
+    PicturesListPictureType.clear();
+    PicturesListTokens.clear();
+    PicturesListMediatype.clear();        
+    PicturesListPref.clear();
+    
+    /* Items on the Logos tab */
+    
+    LogosList.clear();
+    LogosListAltID.clear();
+    LogosListPID.clear();
+    LogosListType.clear();
+    LogosListPicEncType.clear();        
+    LogosListPictureType.clear();
+    LogosListTokens.clear();
+    LogosListMediatype.clear();        
+    LogosListPref.clear();
+    
+    /* Items on the Sounds tab */
+    
+    SoundsList.clear();
+    SoundsListAltID.clear();
+    SoundsListPID.clear();
+    SoundsListType.clear();
+    SoundsListAudioEncType.clear();        
+    SoundsListAudioType.clear();        
+    SoundsListTokens.clear();
+    SoundsListMediatype.clear();        
+    SoundsListPref.clear();    
+    
+    /* Items on the Calendaring tab */
+    
+    CalendarList.clear();
+    CalendarListAltID.clear();
+    CalendarListPID.clear();
+    CalendarListType.clear();
+    CalendarListTokens.clear();
+    CalendarListMediatype.clear();        
+    CalendarListPref.clear();
+    
+    CalendarRequestList.clear();
+    CalendarRequestListAltID.clear();
+    CalendarRequestListPID.clear();
+    CalendarRequestListType.clear();
+    CalendarRequestListTokens.clear();
+    CalendarRequestListMediatype.clear();        
+    CalendarRequestListPref.clear();        
+    
+    FreeBusyList.clear();
+    FreeBusyListAltID.clear();
+    FreeBusyListPID.clear();
+    FreeBusyListType.clear();
+    FreeBusyListTokens.clear();
+    FreeBusyListMediatype.clear();        
+    FreeBusyListPref.clear();
+    
+    /* Items on the Security tab */
+    
+    KeyList.clear();
+    KeyListAltID.clear();
+    KeyListPID.clear();
+    KeyListKeyType.clear();        
+    KeyListDataType.clear();        
+    KeyListDataEncType.clear();
+    KeyListType.clear();
+    KeyListTokens.clear();
+    KeyListPref.clear();
+    
+    /* Items on the Other tab */
+    
+    VendorList.clear();
+    VendorListPEN.clear();
+    VendorListElement.clear();
+    
+    XTokenList.clear();
+    XTokenListTokens.clear();
+
+}
+
 void ProcessNameValue(wxString *PropertyData, 
        wxString *PropertyName, 
        wxString *PropertyValue){
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy