20 #include "entitydeletedattribute.h"
22 #include "imapparser_p.h"
24 #include <QtCore/QByteArray>
25 #include <QtCore/QString>
27 using namespace Akonadi;
29 class EntityDeletedAttribute::EntityDeletedAttributePrivate
32 EntityDeletedAttributePrivate() {};
34 Collection restoreCollection;
35 QString restoreResource;
41 EntityDeletedAttribute::EntityDeletedAttribute()
42 : d_ptr( new EntityDeletedAttributePrivate() )
47 EntityDeletedAttribute::~EntityDeletedAttribute()
52 void EntityDeletedAttribute::setRestoreCollection(
const Akonadi::Collection &collection )
54 Q_D( EntityDeletedAttribute );
55 if ( !collection.isValid() ) {
56 kWarning() <<
"invalid collection" << collection;
58 Q_ASSERT( collection.isValid() );
59 d->restoreCollection = collection;
60 if ( collection.resource().isEmpty() ) {
61 kWarning() <<
"no resource set";
63 d->restoreResource = collection.resource();
66 Collection EntityDeletedAttribute::restoreCollection()
const
68 Q_D(
const EntityDeletedAttribute );
69 return d->restoreCollection;
72 QString EntityDeletedAttribute::restoreResource()
const
74 Q_D(
const EntityDeletedAttribute );
75 return d->restoreResource;
92 QByteArray EntityDeletedAttribute::serialized()
const
94 const Q_D( EntityDeletedAttribute );
97 l << ImapParser::quote( d->restoreResource.toUtf8() );
98 QList<QByteArray> components;
99 components << QByteArray::number( d->restoreCollection.id() );
101 l <<
'(' + ImapParser::join( components,
" " ) +
')';
102 return '(' + ImapParser::join( l,
" " ) +
')';
105 void EntityDeletedAttribute::deserialize(
const QByteArray &data )
107 Q_D( EntityDeletedAttribute );
110 ImapParser::parseParenthesizedList( data, l );
111 if ( l.size() != 2 ) {
112 kWarning() <<
"invalid size";
115 d->restoreResource = QString::fromUtf8( l[0] );
117 if ( !l[1].isEmpty() ) {
118 QList<QByteArray> componentData;
119 ImapParser::parseParenthesizedList( l[1], componentData );
120 if ( componentData.size() != 1 )
122 QList<int> components;
124 for (
int i = 0; i < 1; ++i ) {
125 components << componentData.at( i ).toInt( &ok );
129 d->restoreCollection = Collection( components.at( 0 ) );