20 #include "collectioncreatejob.h"
21 #include "imapparser_p.h"
22 #include "protocolhelper_p.h"
28 using namespace Akonadi;
30 class Akonadi::CollectionCreateJobPrivate :
public JobPrivate
42 :
Job( new CollectionCreateJobPrivate( this ), parent )
56 if ( d->mCollection.parentCollection().id() < 0 && d->mCollection.parentCollection().remoteId().isEmpty() ) {
58 setErrorText( i18n(
"Invalid parent" ) );
63 QByteArray command = d->newTag();
64 if ( d->mCollection.parentCollection().id() < 0 )
66 command +=
" CREATE " + ImapParser::quote( d->mCollection.name().toUtf8() ) +
' ';
67 if ( d->mCollection.parentCollection().id() >= 0 )
68 command += QByteArray::number( d->mCollection.parentCollection().id() );
70 command += ImapParser::quote( d->mCollection.parentCollection().remoteId().toUtf8() );
72 if ( !d->mCollection.contentMimeTypes().isEmpty() )
74 QList<QByteArray> cList;
75 foreach (
const QString &s, d->mCollection.contentMimeTypes() ) cList << s.toLatin1();
76 command +=
"MIMETYPE (" + ImapParser::join( cList, QByteArray(
" ") ) +
')';
78 command +=
" REMOTEID " + ImapParser::quote( d->mCollection.remoteId().toUtf8() );
79 command +=
" REMOTEREVISION " + ImapParser::quote( d->mCollection.remoteRevision().toUtf8() );
80 foreach (
Attribute* attr, d->mCollection.attributes() )
81 command +=
' ' + attr->
type() +
' ' + ImapParser::quote( attr->
serialized() );
84 d->writeData( command );
92 return d->mCollection;
106 col.
setName( d->mCollection.name() );
109 d->mCollection = col;
115 #include "collectioncreatejob.moc"