File indexing completed on 2024-05-12 05:17:13
0001 /* 0002 SPDX-FileCopyrightText: 2020 Daniel Vrátil <dvratil@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "enablejob.h" 0008 0009 #include <KLocalizedString> 0010 0011 #include "job_p.h" 0012 #include "kimap_debug.h" 0013 #include "response_p.h" 0014 #include "session_p.h" 0015 0016 namespace KIMAP 0017 { 0018 class EnableJobPrivate : public JobPrivate 0019 { 0020 public: 0021 using JobPrivate::JobPrivate; 0022 0023 QStringList reqCapabilities; 0024 QStringList enabledCapabilities; 0025 }; 0026 } 0027 0028 using namespace KIMAP; 0029 0030 EnableJob::EnableJob(Session *session) 0031 : Job(*new EnableJobPrivate(session, i18n("Enable"))) 0032 { 0033 } 0034 0035 EnableJob::~EnableJob() = default; 0036 0037 void EnableJob::setCapabilities(const QStringList &capabilities) 0038 { 0039 Q_D(EnableJob); 0040 d->reqCapabilities = capabilities; 0041 } 0042 0043 QStringList EnableJob::enabledCapabilities() const 0044 { 0045 Q_D(const EnableJob); 0046 return d->enabledCapabilities; 0047 } 0048 0049 void EnableJob::doStart() 0050 { 0051 Q_D(EnableJob); 0052 d->tags << d->sessionInternal()->sendCommand("ENABLE", d->reqCapabilities.join(QLatin1Char{' '}).toLatin1()); 0053 } 0054 0055 void EnableJob::handleResponse(const Response &response) 0056 { 0057 Q_D(EnableJob); 0058 0059 if (handleErrorReplies(response) == NotHandled) { 0060 if (response.content.size() >= 2) { 0061 for (int i = 2; i < response.content.size(); ++i) { 0062 d->enabledCapabilities.push_back(QString::fromLatin1(response.content[i].toString())); 0063 } 0064 } else { 0065 qCDebug(KIMAP_LOG) << response.toString(); 0066 } 0067 } 0068 } 0069 0070 #include "moc_enablejob.cpp"