summaryrefslogtreecommitdiff
blob: a1c63e3a3a1dd97d361df656f00c203586786509 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
From a64d80e523edce7d3d59c26834973418fae042f6 Mon Sep 17 00:00:00 2001
From: Laurent Montel <montel@kde.org>
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<MailTransport::Transport::EnumAuthenticationType>
 static const int authenticationTypeEnumSize = sizeof(authenticationTypeEnum) / sizeof(*authenticationTypeEnum);
 
 template<typename T>
-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