From a64d80e523edce7d3d59c26834973418fae042f6 Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Tue, 28 Jul 2020 13:52:19 +0200 Subject: [PATCH] Show info about encryption/authentication settings CCBUG: 423426 --- src/transport.cpp | 18 +++++++++++++++--- src/transport.h | 2 ++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/transport.cpp b/src/transport.cpp index 567df31..26344ef 100644 --- a/src/transport.cpp +++ b/src/transport.cpp @@ -53,14 +53,16 @@ static const StringValueTable static const int authenticationTypeEnumSize = sizeof(authenticationTypeEnum) / sizeof(*authenticationTypeEnum); template -static typename T::value_type stringToValue(const T *table, const int tableSize, const QString &string) +static typename T::value_type stringToValue(const T *table, const int tableSize, const QString &string, bool &valid) { const QString ref = string.toLower(); for (int i = 0; i < tableSize; ++i) { if (ref == QLatin1String(table[i].name)) { + valid = true; return table[i].value; } } + valid = false; return table[0].value; // TODO: error handling } @@ -98,6 +100,7 @@ void Transport::create() mt->setAuthenticationType(m_auth); m_transportId = mt->id(); mt->save(); + Q_EMIT info(i18n("Mail transport uses '%1' encryption and '%2' authentication.", m_encrStr, m_authStr)); MailTransport::TransportManager::self()->addTransport(mt); MailTransport::TransportManager::self()->setDefaultTransport(mt->id()); if (m_editMode) { @@ -154,12 +157,21 @@ void Transport::setPassword(const QString &password) void Transport::setEncryption(const QString &encryption) { - m_encr = stringToValue(encryptionEnum, encryptionEnumSize, encryption); + bool valid; + m_encr = stringToValue(encryptionEnum, encryptionEnumSize, encryption, valid); + if (valid) { + m_encrStr = encryption; + } } void Transport::setAuthenticationType(const QString &authType) { - m_auth = stringToValue(authenticationTypeEnum, authenticationTypeEnumSize, authType); + bool valid; + m_auth = stringToValue(authenticationTypeEnum, authenticationTypeEnumSize, authType, valid); + if (valid) { + m_authStr = authType; + } + } int Transport::transportId() const diff --git a/src/transport.h b/src/transport.h index 3773b04..6415bf9 100644 --- a/src/transport.h +++ b/src/transport.h @@ -53,6 +53,8 @@ private: QString m_password; MailTransport::Transport::EnumEncryption::type m_encr; MailTransport::Transport::EnumAuthenticationType::type m_auth; + QString m_encrStr; + QString m_authStr; bool m_editMode; }; -- GitLab