24 #include "imapcommand.h"
25 #include <kimap/rfccodecs.h>
58 using namespace KIMAP;
73 aParameter = parameter;
135 mResultInfo = result;
147 aParameter = parameter;
153 if (parameter().isEmpty())
154 return id() +
' ' + command() +
"\r\n";
156 return id() +
' ' + command() +
' ' + parameter() +
"\r\n";
168 return CommandPtr( clientFetch (uid, uid, fields, nouid) );
175 QString uid = QString::number(fromUid);
177 if (fromUid != toUid)
183 uid += QString::number(toUid);
185 return clientFetch (uid, fields, nouid);
192 return CommandPtr(
new imapCommand (nouid ?
"FETCH" :
"UID FETCH",
193 sequence +
" (" + fields +
')') );
200 return CommandPtr(
new imapCommand (lsub ?
"LSUB" :
"LIST",
201 QString (
"\"") + KIMAP::encodeImapFolderName (reference) +
202 "\" \"" + KIMAP::encodeImapFolderName (path) +
"\"") );
213 QString (
"\"") + KIMAP::encodeImapFolderName (path) +
"\"") );
226 return CommandPtr(
new imapCommand (nouid ?
"COPY" :
"UID COPY",
227 sequence +
" \"" + KIMAP::encodeImapFolderName (box) +
"\"") );
235 if ( !flags.isEmpty() ) {
236 tmp =
'(' + flags +
") ";
238 tmp +=
'{' + QString::number( size ) +
'}';
241 "\"" + KIMAP::encodeImapFolderName (box) +
"\" " + tmp));
248 QString (
"\"") + KIMAP::encodeImapFolderName (path) +
249 "\" (" + parameters +
")") );
256 QString (
"\"") + KIMAP::encodeImapFolderName (path) +
"\"") );
263 QString (
"\"") + KIMAP::encodeImapFolderName (path) +
"\"") );
270 QString (
"\"") + KIMAP::encodeImapFolderName (path) +
"\"") );
277 QString (
"\"") + KIMAP::encodeImapFolderName (path) +
"\"") );
283 return CommandPtr(
new imapCommand (
"EXPUNGE", QString (
"")) );
290 QString (
"\"") + KIMAP::encodeImapFolderName (src) +
291 "\" \"" + KIMAP::encodeImapFolderName (dest) +
"\"") );
297 return CommandPtr(
new imapCommand (nouid ?
"SEARCH" :
"UID SEARCH", search) );
302 const QString & data,
bool nouid)
304 return CommandPtr(
new imapCommand (nouid ?
"STORE" :
"UID STORE",
305 set +
' ' + item +
" (" + data +
')') );
311 return CommandPtr(
new imapCommand (
"LOGOUT",
"") );
317 return CommandPtr(
new imapCommand (
"STARTTLS",
"") );
323 return CommandPtr(
new imapCommand (
"SETACL", QString(
"\"") + KIMAP::encodeImapFolderName (box)
324 +
"\" \"" + KIMAP::encodeImapFolderName (user)
325 +
"\" \"" + KIMAP::encodeImapFolderName (acl) +
"\"") );
331 return CommandPtr(
new imapCommand (
"DELETEACL", QString(
"\"") + KIMAP::encodeImapFolderName (box)
332 +
"\" \"" + KIMAP::encodeImapFolderName (user)
339 return CommandPtr(
new imapCommand (
"GETACL", QString(
"\"") + KIMAP::encodeImapFolderName (box)
346 return CommandPtr(
new imapCommand (
"LISTRIGHTS", QString(
"\"") + KIMAP::encodeImapFolderName (box)
347 +
"\" \"" + KIMAP::encodeImapFolderName (user)
354 return CommandPtr(
new imapCommand (
"MYRIGHTS", QString(
"\"") + KIMAP::encodeImapFolderName (box)
361 QString parameter = QString(
"\"") + KIMAP::encodeImapFolderName (box)
362 +
"\" \"" + KIMAP::encodeImapFolderName (entry)
364 for( QMap<QString,QString>::ConstIterator it = attributes.begin(); it != attributes.end(); ++it ) {
366 parameter += KIMAP::encodeImapFolderName (it.key());
367 parameter +=
"\" \"";
368 parameter += KIMAP::encodeImapFolderName (it.value());
372 parameter[parameter.length()-1] =
')';
374 return CommandPtr(
new imapCommand (
"SETANNOTATION", parameter) );
380 QString parameter = QString(
"\"") + KIMAP::encodeImapFolderName (box)
381 +
"\" \"" + KIMAP::encodeImapFolderName (entry)
383 if ( attributeNames.count() == 1 )
384 parameter +=
"\"" + KIMAP::encodeImapFolderName (attributeNames.first()) +
'"';
387 for( QStringList::ConstIterator it = attributeNames.begin(); it != attributeNames.end(); ++it ) {
388 parameter +=
"\"" + KIMAP::encodeImapFolderName (*it) +
"\" ";
391 parameter[parameter.length()-1] =
')';
393 return CommandPtr(
new imapCommand (
"GETANNOTATION", parameter) );
399 return CommandPtr(
new imapCommand(
"NAMESPACE",
"") );
405 QString parameter = QString(
"\"") + KIMAP::encodeImapFolderName (box) +
'"';
406 return CommandPtr(
new imapCommand (
"GETQUOTAROOT", parameter) );
412 return CommandPtr(
new imapCommand (command, arguments) );