KIMAP2
23 #include "message_p.h"
25 #include "session_p.h"
27 static const int _kimap_mailBoxDescriptorId = qRegisterMetaType<KIMAP2::MailBoxDescriptor>();
31 class ListJobPrivate :
public JobPrivate
34 ListJobPrivate(ListJob *job, Session *session,
const QString &name) : JobPrivate(session,
name), q(job), option(ListJob::NoOption) { }
39 ListJob::Option option;
45 using namespace KIMAP2;
47 ListJob::ListJob(Session *session)
48 : Job(*new ListJobPrivate(this, session,
"List"))
56 void ListJob::setOption(Option option)
62 ListJob::Option ListJob::option()
const
71 d->namespaces = namespaces;
80 void ListJob::doStart()
86 case IncludeUnsubscribed:
89 case IncludeFolderRoleFlags:
97 if (d->namespaces.isEmpty()) {
98 d->sendCommand(d->command,
"\"\" *");
100 foreach (
const MailBoxDescriptor &descriptor, d->namespaces) {
101 QString parameters = QStringLiteral(
"\"\" \"%1\"");
103 if (descriptor.name.endsWith(descriptor.separator)) {
106 d->sendCommand(d->command,
110 d->sendCommand(d->command,
116 void ListJob::handleResponse(
const Message &response)
120 if (handleErrorReplies(response) == NotHandled) {
121 if (response.content.size() >= 5 && response.content[1].toString() == d->command) {
126 QByteArray separator = response.content[3].toString();
133 Q_ASSERT(separator.
size() == 1);
135 for (
int i = 4; i < response.content.size(); i++) {
136 fullName += response.content[i].toString() +
' ';
142 MailBoxDescriptor mailBoxDescriptor;
143 mailBoxDescriptor.separator =
QLatin1Char(separator[0]);
145 convertInboxName(mailBoxDescriptor);
147 emit resultReceived(mailBoxDescriptor, flags);
152 void ListJob::convertInboxName(KIMAP2::MailBoxDescriptor &descriptor)
155 QStringList pathParts = descriptor.name.split(descriptor.separator);
159 descriptor.name = QStringLiteral(
"INBOX");
161 descriptor.name += descriptor.separator + pathParts.
join(descriptor.separator);
165 #include "moc_listjob.cpp"
QString fromUtf8(const char *str, int size)
QByteArray toUtf8() const const
bool isEmpty() const const
QString join(const QString &separator) const const
bool isEmpty() const const
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
QString name(StandardShortcut id)
KIMAP_EXPORT QByteArray decodeImapFolderName(const QByteArray &inSrc)
Converts an UTF-7 encoded IMAP mailbox to a QByteArray.
Provides handlers for various RFC/MIME encodings.
QString fullName(const PartType &type)
KIMAP_EXPORT QByteArray encodeImapFolderName(const QByteArray &src)
Converts an Unicode IMAP mailbox to a QByteArray which can be used in IMAP communication.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Feb 5 2023 04:11:00 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.