[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim-addons] sieveeditor/imapfoldercompletion: Allow to create folder
From: Montel Laurent <null () kde ! org>
Date: 2017-02-28 20:20:45
Message-ID: E1cioGL-0003WV-3u () code ! kde ! org
[Download RAW message or body]
Git commit b84a26047956fb174edbcc05b09886fc57147ed8 by Montel Laurent.
Committed on 28/02/2017 at 20:20.
Pushed by mlaurent into branch 'master'.
Allow to create folder
M +37 -11 sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.cpp
M +3 -1 sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.h
M +2 -2 sieveeditor/imapfoldercompletion/selectimapfoldermodel.cpp
M +1 -3 sieveeditor/imapfoldercompletion/selectimapfoldermodel.h
https://commits.kde.org/kdepim-addons/b84a26047956fb174edbcc05b09886fc57147ed8
diff --git a/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.cpp \
b/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.cpp index \
3851c882..f91e417b 100644
--- a/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.cpp
+++ b/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.cpp
@@ -23,6 +23,7 @@
#include "sessionuiproxy.h"
#include <KIMAP/CreateJob>
#include <KIMAP/Session>
+#include <KIMAP/LoginJob>
SelectImapCreateFolderJob::SelectImapCreateFolderJob(QObject *parent)
: QObject(parent),
@@ -42,23 +43,45 @@ void SelectImapCreateFolderJob::start()
mSession = new KIMAP::Session(mSieveImapAccount.serverName(), \
mSieveImapAccount.port(), this); mSession->setUiProxy(SessionUiProxy::Ptr(new \
SessionUiProxy));
-#if 1
- KIMAP::CreateJob *job = new KIMAP::CreateJob(mSession);
- job->setMailBox(mNewFolderName);
-
- connect(job, &KIMAP::CreateJob::result, this, \
&SelectImapCreateFolderJob::slotCreateFolderDone); + KIMAP::LoginJob *login = \
new KIMAP::LoginJob(mSession); + \
login->setUserName(mSieveImapAccount.userName()); + \
login->setPassword(mSieveImapAccount.password()); + \
login->setAuthenticationMode(static_cast<KIMAP::LoginJob::AuthenticationMode>(mSieveImapAccount.authenticationType()));
+ login->setEncryptionMode(static_cast<KIMAP::LoginJob::EncryptionMode>(mSieveImapAccount.encryptionMode()));
+ connect(login, &KIMAP::LoginJob::result, this, \
&SelectImapCreateFolderJob::slotLoginDone); + login->start();
+ } else {
+ Q_EMIT finished(mSieveImapAccount, false);
+ deleteLater();
+ }
+}
- job->start();
-#else
- deleteLater();
-#endif
- //TODO
+void SelectImapCreateFolderJob::slotLoginDone(KJob *job)
+{
+ if (!job->error()) {
+ createFolderRequested();
} else {
- Q_EMIT finished(false);
+ Q_EMIT finished(mSieveImapAccount, false);
deleteLater();
}
}
+void SelectImapCreateFolderJob::createFolderRequested()
+{
+ if (!mSession
+ || mSession->state() != KIMAP::Session::Authenticated) {
+ qCWarning(IMAPFOLDERCOMPLETIONPLUGIN_LOG) << "SelectImapCreateFolderJob - \
got no connection"; + Q_EMIT finished(mSieveImapAccount, false);
+ deleteLater();
+ return;
+ }
+
+ KIMAP::CreateJob *job = new KIMAP::CreateJob(mSession);
+ job->setMailBox(mNewFolderName);
+ connect(job, &KIMAP::CreateJob::result, this, \
&SelectImapCreateFolderJob::slotCreateFolderDone); + job->start();
+}
+
void SelectImapCreateFolderJob::setSieveImapAccountSettings(const \
KSieveUi::SieveImapAccountSettings &account) {
#if 0
@@ -80,6 +103,9 @@ void SelectImapCreateFolderJob::slotCreateFolderDone(KJob *job)
{
if (job->error()) {
qCWarning(IMAPFOLDERCOMPLETIONPLUGIN_LOG) << "Failed to create folder on \
server: " << job->errorString(); + Q_EMIT finished(mSieveImapAccount, false);
+ } else {
+ Q_EMIT finished(mSieveImapAccount, true);
}
deleteLater();
}
diff --git a/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.h \
b/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.h index \
d8fde11e..dfe7ca7b 100644
--- a/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.h
+++ b/sieveeditor/imapfoldercompletion/selectimapcreatefolderjob.h
@@ -39,10 +39,12 @@ public:
void setNewFolderName(const QString &newFolderName);
Q_SIGNALS:
- void finished(bool success);
+ void finished(const KSieveUi::SieveImapAccountSettings &account, bool success);
private:
+ void createFolderRequested();
void slotCreateFolderDone(KJob *job);
+ void slotLoginDone(KJob *job);
KIMAP::Session *mSession;
KSieveUi::SieveImapAccountSettings mSieveImapAccount;
QString mNewFolderName;
diff --git a/sieveeditor/imapfoldercompletion/selectimapfoldermodel.cpp \
b/sieveeditor/imapfoldercompletion/selectimapfoldermodel.cpp index 336664fe..4e7b6b7b \
100644
--- a/sieveeditor/imapfoldercompletion/selectimapfoldermodel.cpp
+++ b/sieveeditor/imapfoldercompletion/selectimapfoldermodel.cpp
@@ -49,10 +49,10 @@ void SelectImapFolderModel::createNewFolder(const \
KSieveUi::SieveImapAccountSett job->start();
}
-void SelectImapFolderModel::slotCreateFolderDone(bool success)
+void SelectImapFolderModel::slotCreateFolderDone(const \
KSieveUi::SieveImapAccountSettings &account, bool success) {
if (success) {
- Q_EMIT reloadFolders();
+ reloadFolderModel(account);
} else {
qCDebug(IMAPFOLDERCOMPLETIONPLUGIN_LOG) << "Unable to create folder";
}
diff --git a/sieveeditor/imapfoldercompletion/selectimapfoldermodel.h \
b/sieveeditor/imapfoldercompletion/selectimapfoldermodel.h index 05112efc..1b9850bc \
100644
--- a/sieveeditor/imapfoldercompletion/selectimapfoldermodel.h
+++ b/sieveeditor/imapfoldercompletion/selectimapfoldermodel.h
@@ -41,12 +41,10 @@ public:
void reloadFolderModel(const KSieveUi::SieveImapAccountSettings &account);
void createNewFolder(const KSieveUi::SieveImapAccountSettings &account, const \
QString &folderName);
-Q_SIGNALS:
- void reloadFolders();
private Q_SLOTS:
void slotLoaded(bool success);
- void slotCreateFolderDone(bool success);
+ void slotCreateFolderDone(const KSieveUi::SieveImapAccountSettings &account, \
bool success);
private:
void fillModel(const KSieveUi::SieveImapAccountSettings &account, \
QStandardItemModel *model);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic