X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FContactDataObject.h;h=9c421a42d18abb67a20e60c9aed5667dfa27f6a5;hb=a23e50effb7909d2217c6364b31f258bb9c55ff2;hp=2c6b394a758eec5ab5dc671e0ff0e8585cedff9b;hpb=cdd1530fcf2b19be9187604deb6aa78fba091366;p=xestiaab%2F.git diff --git a/source/contacteditor/ContactDataObject.h b/source/contacteditor/ContactDataObject.h index 2c6b394..9c421a4 100644 --- a/source/contacteditor/ContactDataObject.h +++ b/source/contacteditor/ContactDataObject.h @@ -22,20 +22,62 @@ #include #include #include +#include + #include "../vcard/vcard.h" +#include "../common/textprocessing.h" enum ContactLoadStatus{ CONTACTLOAD_UNITTESTFAIL = -1, + CONTACTLOAD_OK, CONTACTLOAD_FILEMISSING, CONTACTLOAD_FILEERROR, CONTACTLOAD_FILEINVALIDFORMAT, CONTACTLOAD_FILEBASESPECFAIL }; +enum ContactKindType{ + CONTACTKIND_NONE, + CONTACTKIND_INDIVIDUAL, + CONTACTKIND_GROUP, + CONTACTKIND_ORGANISATION, + CONTACTKIND_LOCATION +}; + +enum PropertyType{ + PROPERTY_NONE, + PROPERTY_HOME, + PROPERTY_WORK +}; + class ContactDataObject{ + private: + + void ProcessKind(wxString KindData); + void ProcessMember(wxString PropertySeg1, wxString PropertySeg2, int *GroupCount); + void ProcessFN(wxString PropertySeg1, wxString PropertySeg2, int *FNCount); + void ProcessN(wxString PropertySeg1, wxString PropertySeg2); + void ProcessNickname(wxString PropertySeg1, wxString PropertySeg2, int *NicknameCount); + void ProcessGender(wxString PropertySeg1, wxString PropertySeg2); + void ProcessBirthday(wxString PropertySeg1, wxString PropertySeg2); + void ProcessAnniversary(wxString PropertySeg1, wxString PropertySeg2); + void ProcessTimeZone(wxString PropertySeg1, wxString PropertySeg2, int *TimeZoneCount); + void ProcessAddress(wxString PropertySeg1, wxString PropertySeg2, int *AddressCount); + void ProcessEmail(wxString PropertySeg1, wxString PropertySeg2, int *EmailCount); + void ProcessIM(wxString PropertySeg1, wxString PropertySeg2, int *IMCount); + void ProcessTelephone(wxString PropertySeg1, wxString PropertySeg2, int *TelephoneCount); + void ProcessLanguage(wxString PropertySeg1, wxString PropertySeg2, int *LanguageCount); + void ProcessGeographic(wxString PropertySeg1, wxString PropertySeg2, int *GeographicCount); + void ProcessRelated(wxString PropertySeg1, wxString PropertySeg2, int *RelatedCount); + void ProcessURL(wxString PropertySeg1, wxString PropertySeg2, int *URLCount); + void ProcessTitle(wxString PropertySeg1, wxString PropertySeg2, int *TitleCount); + void ProcessRole(wxString PropertySeg1, wxString PropertySeg2, int *RoleCount); + public: + ContactKindType ContactKind = CONTACTKIND_NONE; + /* Items on General Tab */ wxString NameTitle; @@ -122,6 +164,7 @@ class ContactDataObject{ std::map GeneralTelephoneListPID; std::map GeneralTelephoneListType; std::map GeneralTelephoneListTokens; + std::map GeneralTelephoneListTypeInfo; std::map GeneralTelephoneListPref; std::map GeneralLanguageList; @@ -243,6 +286,7 @@ class ContactDataObject{ std::map HomeTelephoneListPID; std::map HomeTelephoneListType; std::map HomeTelephoneListTokens; + std::map HomeTelephoneListTypeInfo; std::map HomeTelephoneListPref; std::map HomeLanguageList; @@ -268,15 +312,6 @@ class ContactDataObject{ std::map HomeGeographyListMediatype; std::map HomeGeographyListPref; - std::map HomeRelatedList; - std::map HomeRelatedListRelType; - std::map HomeRelatedListLanguage; - std::map HomeRelatedListAltID; - std::map HomeRelatedListPID; - std::map HomeRelatedListType; - std::map HomeRelatedListTokens; - std::map HomeRelatedListPref; - std::map HomeWebsiteList; std::map HomeWebsiteListAltID; std::map HomeWebsiteListPID; @@ -363,6 +398,7 @@ class ContactDataObject{ std::map BusinessTelephoneListAltID; std::map BusinessTelephoneListPID; std::map BusinessTelephoneListType; + std::map BusinessTelephoneListTypeInfo; std::map BusinessTelephoneListTokens; std::map BusinessTelephoneListPref; @@ -387,16 +423,7 @@ class ContactDataObject{ std::map BusinessGeographyListType; std::map BusinessGeographyListTokens; std::map BusinessGeographyListMediatype; - std::map BusinessGeographyListPref; - - std::map BusinessRelatedList; - std::map BusinessRelatedListRelType; - std::map BusinessRelatedListLanguage; - std::map BusinessRelatedListAltID; - std::map BusinessRelatedListPID; - std::map BusinessRelatedListType; - std::map BusinessRelatedListTokens; - std::map BusinessRelatedListPref; + std::map BusinessGeographyListPref; std::map BusinessWebsiteList; std::map BusinessWebsiteListAltID; @@ -454,6 +481,7 @@ class ContactDataObject{ std::map GroupsListAltID; std::map GroupsListPID; std::map GroupsListType; + std::map GroupsListMediaType; std::map GroupsListTokens; std::map GroupsListPref; @@ -546,4 +574,15 @@ class ContactDataObject{ }; +void SplitValues(wxString *PropertyLine, + std::map *SplitPoints, + std::map *SplitLength, + int intSize); + +void CheckType(wxString *PropertySeg1, + std::map *SplitPoints, + std::map *SplitLength, + int *intPrevValue, + PropertyType *intType); + #endif \ No newline at end of file