Show
Ignore:
Timestamp:
07/09/07 10:02:18 (2 years ago)
Author:
daboo
Message:

Some 4.1 changes. Mostly vCard/CardDAV and CalDAV scheduling support.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Mulberry/branches/v4.1d1/Sources_Common/Mail/Address/CAdbkAddress.h

    r19 r86  
    6767                eNickName, 
    6868                eEmail, 
     69                eCalendar, 
    6970                eCompany, 
    7071                eAddress, 
     
    105106        }; 
    106107 
    107         CAdbkAddress(); 
     108        typedef multimap<EEmailType, cdstring>  emailmap; 
     109        typedef multimap<EAddressType, cdstring> addrmap; 
     110        typedef multimap<EPhoneType, cdstring> phonemap; 
     111 
     112        CAdbkAddress() 
     113        { 
     114                _init_CAdbkAddress(); 
     115        } 
    108116        CAdbkAddress(const CAddress &copy);                                     // Copy constructor 
    109         CAdbkAddress(const CAdbkAddress &copy);                         // Copy constructor 
     117        CAdbkAddress(const CAdbkAddress &copy) :                        // Copy constructor 
     118                CAddress(copy) 
     119        { 
     120                _copy_CAdbkAddress(copy); 
     121        } 
    110122 
    111123        explicit CAdbkAddress(const char* entry, 
     
    113125                                const char* uname, 
    114126                                const char* uadl = NULL, 
     127                                const char* ucalendar = NULL, 
    115128                                const char* ucompany = NULL, 
    116129                                const char* uaddress = NULL, 
     
    121134                                const char* unotes = NULL);                             // Construct from actual parameters 
    122135 
    123         CAdbkAddress& operator=(const CAdbkAddress& copy);      // Assignment with same type 
    124136        ~CAdbkAddress(); 
     137 
     138        CAdbkAddress& operator=(const CAdbkAddress& copy)       // Assignment with same type 
     139        { 
     140                if (this != &copy) 
     141                { 
     142                        CAddress::operator=(copy); 
     143                        _copy_CAdbkAddress(copy); 
     144                } 
     145 
     146                return *this; 
     147        } 
    125148 
    126149        int operator==(const CAdbkAddress& addr) const;                                 // Compare with another 
     
    135158                { return mEntry; } 
    136159 
    137         void AddMailAddressToList(cdstrvect& list, bool full) const;    // Add email addresses to list 
    138  
    139         cdstrmultimap& GetEmails()                                                                              // Get email map 
     160        void AddMailAddressToList(cdstrvect& list, bool full) const;            // Add email addresses to list 
     161        void AddCalendarAddressToList(cdstrvect& list, bool full) const;        // Add calendar addresses to list 
     162 
     163        emailmap& GetEmails()                                                                                           // Get email map 
    140164                { return mEmails; } 
    141         const cdstrmultimap& GetEmails() const                                                  // Get email map 
     165        const emailmap& GetEmails() const                                                                       // Get email map 
    142166                { return mEmails; } 
    143167 
     
    145169        const cdstring& GetEmail(EEmailType type) const;                                                                        // Get email 
    146170 
     171        void SetPreferredEmail(EEmailType type)                                                         // Set preferred email type 
     172        { 
     173                mPreferredEmail = type; 
     174        } 
     175        EEmailType      GetPreferredEmail() const                                                               // Get preferred email type 
     176        { 
     177                return mPreferredEmail; 
     178        } 
     179 
     180        void SetCalendar(const char* theCalendar)                                               // Set calendar 
     181                { mCalendar = theCalendar; } 
     182        const cdstring& GetCalendar() const                                                             // Get calendar 
     183                { return mCalendar; } 
     184         
    147185        void SetCompany(const char* theCompany)                                                 // Set company 
    148186                { mCompany = theCompany; } 
     
    150188                { return mCompany; } 
    151189 
    152         cdstrmultimap& GetAddresses()                                                                   // Get addresse map 
     190        addrmap& GetAddresses()                                                                                 // Get address map 
    153191                { return mAddresses; } 
    154         const cdstrmultimap& GetAddresses() const                                               // Get addresse map 
     192        const addrmap& GetAddresses() const                                                             // Get address map 
    155193                { return mAddresses; } 
    156194 
     
    158196        const cdstring& GetAddress(EAddressType type) const;                                                                    // Get address 
    159197 
    160         cdstrmultimap& GetPhones()                                                                              // Get phone number map 
     198        void SetPreferredAddress(EAddressType type)                                                             // Set preferred address type 
     199        { 
     200                mPreferredAddress = type; 
     201        } 
     202        EAddressType    GetPreferredAddress() const                                                             // Get preferred address type 
     203        { 
     204                return mPreferredAddress; 
     205        } 
     206 
     207        phonemap& GetPhones()                                                                                   // Get phone number map 
    161208                { return mPhones; } 
    162         const cdstrmultimap& GetPhones() const                                                  // Get phone number map 
     209        const phonemap& GetPhones() const                                                               // Get phone number map 
    163210                { return mPhones; } 
    164211 
    165212        void SetPhone(const char* thePhone, EPhoneType type, bool append = false);                      // Set phone 
    166213        const cdstring& GetPhone(EPhoneType type) const;                                                                        // Get phone 
     214 
     215        void SetPreferredPhone(EPhoneType type)                                                         // Set preferred phone type 
     216        { 
     217                mPreferredPhone = type; 
     218        } 
     219        EPhoneType      GetPreferredPhone() const                                                               // Get preferred phone type 
     220        { 
     221                return mPreferredPhone; 
     222        } 
    167223 
    168224        void SetURL(const char* theURL)                                                                 // Set URL 
     
    180236private: 
    181237        cdstring                        mEntry;                                                 // Entry name 
    182         cdstrmultimap           mEmails;                                                // Multiple email types 
     238        emailmap                        mEmails;                                                // Multiple email types 
     239        EEmailType                      mPreferredEmail;                                // Preferred email type 
     240        cdstring                        mCalendar;                                              // Calendar name 
    183241        cdstring                        mCompany;                                               // Company name 
    184         cdstrmultimap           mAddresses;                                             // Multiple address types 
    185         cdstrmultimap           mPhones;                                                // Multiple phone types 
     242        addrmap                         mAddresses;                                             // Multiple address types 
     243        EAddressType            mPreferredAddress;                              // Preferred address type 
     244        phonemap                        mPhones;                                                // Multiple phone types 
     245        EPhoneType                      mPreferredPhone;                                // Preferred phone type 
    186246        cdstring                        mURL;                                                   // URL 
    187247        cdstring                        mNotes;                                                 // Notes 
    188248 
    189         static bool                     sInited;                                                // Done init 
    190         static cdstrvect        sEmailTypeLabels;                               // Labels for types of email 
    191         static cdstrvect        sAddressTypeLabels;                             // Labels for types of addresses 
    192         static cdstrvect        sPhoneTypeLabels;                               // Labels for types of phones 
    193  
    194         static void                                     InitLabels(); 
    195         static const cdstring&          GetEmailTypeLabel(EEmailType type); 
    196         static const cdstring&          GetAddressTypeLabel(EAddressType type); 
    197         static const cdstring&          GetPhoneTypeLabel(EPhoneType type); 
     249        void _init_CAdbkAddress(); 
     250        void _copy_CAdbkAddress(const CAdbkAddress& copy); 
    198251}; 
    199252