diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /kresources/kolab/kabc/contact.h | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kresources/kolab/kabc/contact.h')
-rw-r--r-- | kresources/kolab/kabc/contact.h | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/kresources/kolab/kabc/contact.h b/kresources/kolab/kabc/contact.h new file mode 100644 index 000000000..0c06dfb8a --- /dev/null +++ b/kresources/kolab/kabc/contact.h @@ -0,0 +1,287 @@ +/* + This file is part of libkabc and/or kaddressbook. + Copyright (c) 2002 - 2004 Klarälvdalens Datakonsult AB + <info@klaralvdalens-datakonsult.se> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + In addition, as a special exception, the copyright holders give + permission to link the code of this program with any edition of + the Qt library by Trolltech AS, Norway (or with modified versions + of Qt that use the same license as Qt), and distribute linked + combinations including the two. You must obey the GNU General + Public License in all respects for all of the code used other than + Qt. If you modify this file, you may extend this exception to + your version of the file, but you are not obligated to do so. If + you do not wish to do so, delete this exception statement from + your version. +*/ + +#ifndef KOLABCONTACT_H +#define KOLABCONTACT_H + +#include <kolabbase.h> +#include <qimage.h> + +namespace KABC { + class Addressee; + class ResourceKolab; + class Picture; + class Sound; +} + +namespace Kolab { + +class Contact : public KolabBase { +public: + struct PhoneNumber { + public: + QString type; + QString number; + }; + + struct Address { + public: + Address() : kdeAddressType( -1 ) + { + } + int kdeAddressType; // KABC::Address::Type + QString type; // kolab-compliant address type: home, work or other + QString street; + QString pobox; + QString locality; + QString region; + QString postalCode; + QString country; + }; + + explicit Contact( const KABC::Addressee* address ); + Contact( const QString& xml, KABC::ResourceKolab* resource, const QString& subResource, Q_UINT32 sernum ); + ~Contact(); + + void saveTo( KABC::Addressee* address ); + + QString type() const { return "Contact"; } + + void setGivenName( const QString& name ); + QString givenName() const; + + void setMiddleNames( const QString& names ); + QString middleNames() const; + + void setLastName( const QString& name ); + QString lastName() const; + + void setFullName( const QString& name ); + QString fullName() const; + + void setInitials( const QString& initials ); + QString initials() const; + + void setPrefix( const QString& prefix ); + QString prefix() const; + + void setSuffix( const QString& suffix ); + QString suffix() const; + + void setRole( const QString& role ); + QString role() const; + + void setFreeBusyUrl( const QString& fbUrl ); + QString freeBusyUrl() const; + + void setOrganization( const QString& organization ); + QString organization() const; + + void setWebPage( const QString& url ); + QString webPage() const; + + void setIMAddress( const QString& imAddress ); + QString imAddress() const; + + void setDepartment( const QString& department ); + QString department() const; + + void setOfficeLocation( const QString& location ); + QString officeLocation() const; + + void setProfession( const QString& profession ); + QString profession() const; + + // not shown in the kaddressbook GUI + //void setJobTitle( const QString& title ); + //QString jobTitle() const; + + void setManagerName( const QString& name ); + QString managerName() const; + + void setAssistant( const QString& name ); + QString assistant() const; + + void setNickName( const QString& name ); + QString nickName() const; + + void setSpouseName( const QString& name ); + QString spouseName() const; + + void setBirthday( const QDate& date ); + QDate birthday() const; + + void setAnniversary( const QDate& date ); + QDate anniversary() const; + + void setPicture( const QImage& image) { mPicture = image; } + QString pictureAttachmentName() const { return mPictureAttachmentName; } + QImage picture() const { return mPicture; } + + void setLogo( const QImage& image ) { mLogo = image; } + QString logoAttachmentName() const { return mLogoAttachmentName; } + QImage logo() const { return mLogo; } + + void setSound( const QByteArray& sound ) { mSound = sound; } + QString soundAttachmentName() const { return mSoundAttachmentName; } + QByteArray sound() const { return mSound; } + + void setChildren( const QString& children ); + QString children() const; + + void setGender( const QString& gender ); + QString gender() const; + + void setLanguage( const QString& language ); + QString language() const; + + void addPhoneNumber( const PhoneNumber& number ); + QValueList<PhoneNumber>& phoneNumbers(); + const QValueList<PhoneNumber>& phoneNumbers() const; + + void addEmail( const Email& email ); + QValueList<Email>& emails(); + const QValueList<Email>& emails() const; + + void addAddress( const Address& address ); + QValueList<Address>& addresses(); + const QValueList<Address>& addresses() const; + + // which address is preferred: home or business or other + void setPreferredAddress( const QString& address ); + QString preferredAddress() const; + + float latitude() const { return mLatitude; } + void setLatitude( float latitude ) { mLatitude = latitude; } + + float longitude() const { return mLongitude; } + void setLongitude( float longitude ) { mLongitude = longitude; } + + // Load the attributes of this class + bool loadAttribute( QDomElement& ); + + // Save the attributes of this class + bool saveAttributes( QDomElement& ) const; + + // Load this note by reading the XML file + bool loadXML( const QDomDocument& xml ); + + // Serialize this note to an XML string + QString saveXML() const; + + // Return true if this contact is a distr list + bool isDistributionList() const { return mIsDistributionList; } + +protected: + void setFields( const KABC::Addressee* ); + +private: + bool loadNameAttribute( QDomElement& element ); + void saveNameAttribute( QDomElement& element ) const; + + bool loadPhoneAttribute( QDomElement& element ); + void savePhoneAttributes( QDomElement& element ) const; + + void saveEmailAttributes( QDomElement& element ) const; + + bool loadAddressAttribute( QDomElement& element ); + void saveAddressAttributes( QDomElement& element ) const; + + void loadCustomAttributes( QDomElement& element ); + void saveCustomAttributes( QDomElement& element ) const; + + void loadDistrListMember( const QDomElement& element ); + void saveDistrListMembers( QDomElement& element ) const; + + QImage loadPictureFromKMail( const QString& attachmentName, KABC::ResourceKolab* resource, const QString& subResource, Q_UINT32 sernum ); + QImage loadPictureFromAddressee( const KABC::Picture& picture ); + + QByteArray loadDataFromKMail( const QString& attachmentName, KABC::ResourceKolab* resource, const QString& subResource, Q_UINT32 sernum ); + QByteArray loadSoundFromAddressee( const KABC::Sound& sound ); + + QString productID() const; + + QString mGivenName; + QString mMiddleNames; + QString mLastName; + QString mFullName; + QString mInitials; + QString mPrefix; + QString mSuffix; + QString mRole; + QString mFreeBusyUrl; + QString mOrganization; + QString mWebPage; + QString mIMAddress; + QString mDepartment; + QString mOfficeLocation; + QString mProfession; + //QString mJobTitle; + QString mManagerName; + QString mAssistant; + QString mNickName; + QString mSpouseName; + QDate mBirthday; + QDate mAnniversary; + QImage mPicture; + QImage mLogo; + QByteArray mSound; + QString mPictureAttachmentName; + QString mLogoAttachmentName; + QString mSoundAttachmentName; + QString mChildren; + QString mGender; + QString mLanguage; + QValueList<PhoneNumber> mPhoneNumbers; + QValueList<Email> mEmails; + QValueList<Address> mAddresses; + QString mPreferredAddress; + float mLatitude; + float mLongitude; + bool mHasGeo; + bool mIsDistributionList; + struct Custom { + QString app; + QString name; + QString value; + }; + QValueList<Custom> mCustomList; + struct Member { + QString displayName; + QString email; + }; + QValueList<Member> mDistrListMembers; +}; + +} + +#endif // KOLABCONTACT_H |