00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "addressattribute.h"
00021
00022 #include <QDataStream>
00023
00024 #include <KDebug>
00025
00026 #include <akonadi/attributefactory.h>
00027
00028 using namespace Akonadi;
00029
00033 class AddressAttribute::Private
00034 {
00035 public:
00036 QString mFrom;
00037 QStringList mTo;
00038 QStringList mCc;
00039 QStringList mBcc;
00040 };
00041
00042 AddressAttribute::AddressAttribute( const QString &from, const QStringList &to,
00043 const QStringList &cc, const QStringList &bcc )
00044 : d( new Private )
00045 {
00046 d->mFrom = from;
00047 d->mTo = to;
00048 d->mCc = cc;
00049 d->mBcc = bcc;
00050 }
00051
00052 AddressAttribute::~AddressAttribute()
00053 {
00054 delete d;
00055 }
00056
00057 AddressAttribute* AddressAttribute::clone() const
00058 {
00059 return new AddressAttribute( d->mFrom, d->mTo, d->mCc, d->mBcc );
00060 }
00061
00062 QByteArray AddressAttribute::type() const
00063 {
00064 static const QByteArray sType( "AddressAttribute" );
00065 return sType;
00066 }
00067
00068 QByteArray AddressAttribute::serialized() const
00069 {
00070 QByteArray serializedData;
00071 QDataStream serializer( &serializedData, QIODevice::WriteOnly );
00072 serializer.setVersion( QDataStream::Qt_4_5 );
00073 serializer << d->mFrom;
00074 serializer << d->mTo;
00075 serializer << d->mCc;
00076 serializer << d->mBcc;
00077 return serializedData;
00078 }
00079
00080 void AddressAttribute::deserialize( const QByteArray &data )
00081 {
00082 QDataStream deserializer( data );
00083 deserializer.setVersion( QDataStream::Qt_4_5 );
00084 deserializer >> d->mFrom;
00085 deserializer >> d->mTo;
00086 deserializer >> d->mCc;
00087 deserializer >> d->mBcc;
00088 }
00089
00090 QString AddressAttribute::from() const
00091 {
00092 return d->mFrom;
00093 }
00094
00095 void AddressAttribute::setFrom( const QString &from )
00096 {
00097 d->mFrom = from;
00098 }
00099
00100 QStringList AddressAttribute::to() const
00101 {
00102 return d->mTo;
00103 }
00104
00105 void AddressAttribute::setTo( const QStringList &to )
00106 {
00107 d->mTo = to;
00108 }
00109
00110 QStringList AddressAttribute::cc() const
00111 {
00112 return d->mCc;
00113 }
00114
00115 void AddressAttribute::setCc( const QStringList &cc )
00116 {
00117 d->mCc = cc;
00118 }
00119
00120 QStringList AddressAttribute::bcc() const
00121 {
00122 return d->mBcc;
00123 }
00124
00125 void AddressAttribute::setBcc( const QStringList &bcc )
00126 {
00127 d->mBcc = bcc;
00128 }
00129
00130
00131 namespace {
00132
00133 bool dummy()
00134 {
00135 using namespace Akonadi;
00136 AttributeFactory::registerAttribute<AddressAttribute>();
00137 return true;
00138 }
00139
00140 const bool registered = dummy();
00141
00142 }