Merge ~radonapps/dekko:fix-1341547 into dekko:master

Proposed by Daniyaal Rasheed
Status: Approved
Approved by: Dan Chapman 
Approved revision: 240d9603c7e6a5297bc0487fe46c8230433367d2
Proposed branch: ~radonapps/dekko:fix-1341547
Merge into: dekko:master
Diff against target: 379 lines (+110/-14)
13 files modified
qml/Settings/user/NewIdentityPage.qml (+27/-10)
qml/Settings/user/SenderIdentityInput.qml (+9/-0)
qml/SetupWizard/IdentityInput.qml (+15/-2)
qml/SetupWizard/ManualSetup.qml (+11/-0)
qml/SetupWizard/SetupWizard.qml (+4/-0)
src/3rdParty/trojita/Common/SettingsNames.cpp (+1/-0)
src/3rdParty/trojita/Common/SettingsNames.h (+1/-1)
src/app/Accounts/SenderIdentity.cpp (+14/-0)
src/app/Accounts/SenderIdentity.h (+16/-0)
src/app/Accounts/SenderIdentityModel.cpp (+9/-0)
src/app/Accounts/SenderIdentityModel.h (+1/-0)
src/app/Settings/SettingsNames.cpp (+1/-0)
src/app/Settings/SettingsNames.h (+1/-1)
Reviewer Review Type Date Requested Status
Dan Chapman  (community) Approve
Review via email: mp+281487@code.launchpad.net

Description of the change

Implemented a Reply-To field as part of an Identity

This patch implements the skeleton required for future use of a reply-to
email by adding the GUI necessary for a user to configure their reply-to
email address.

fixes: bug 1341547

To post a comment you must log in.
Revision history for this message
Daniyaal Rasheed (radonapps) wrote :

Both NotificationWorker classes are not supposed to be there, when I pulled in the new code it apparently made changes to this file, which I blindly staged because everything above it was right. I don't how I can "uncommit" this but still have the changes I've made to all the other files inside my local repository.

Revision history for this message
Dan Chapman  (dpniel) wrote :

Good start. See comments inline

review: Needs Fixing
~radonapps/dekko:fix-1341547 updated
240d960... by Daniyaal Rasheed

Fixed invalid email popup's title and message.

Revision history for this message
Dan Chapman  (dpniel) wrote :

Looks good to me. Nice job

I'll get this new field added to the message headers in the next couple of days while i finish off this smtp owrk.

Thanks again!

review: Approve

Unmerged commits

240d960... by Daniyaal Rasheed

Fixed invalid email popup's title and message.

6f6affa... by Daniyaal Rasheed

Implemented a Reply-To field as part of an Identity

This patch implements the skeleton required for future use of a reply-to
email by adding the GUI necessary for a user to configure their reply-to
email address.

fixes: bug 1341547

d498ade... by Daniyaal Rasheed

Merge branch 'fix-1522549'

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/qml/Settings/user/NewIdentityPage.qml b/qml/Settings/user/NewIdentityPage.qml
index 9d51aea..990e7a7 100644
--- a/qml/Settings/user/NewIdentityPage.qml
+++ b/qml/Settings/user/NewIdentityPage.qml
@@ -1,5 +1,6 @@
1import QtQuick 2.41import QtQuick 2.4
2import Ubuntu.Components 1.22import Ubuntu.Components 1.2
3import Ubuntu.Components.Popups 1.0
3import DekkoCore 0.24import DekkoCore 0.2
4import "../../Components"5import "../../Components"
56
@@ -14,11 +15,24 @@ Page {
14 if (edit) {15 if (edit) {
15 input.nameField = identity.name16 input.nameField = identity.name
16 input.emailField = identity.email17 input.emailField = identity.email
18 input.replyToField = identity.replyTo
17 input.organizationField = identity.organization19 input.organizationField = identity.organization
18 input.signatureField = identity.signature20 input.signatureField = identity.signature
19 }21 }
20 }22 }
2123
24 function validateAddress(address) {
25 if (address && !EmailValidator.validate(address)) {
26 var msg = qsTr("%1 is not a valid email address").arg(address)
27 PopupUtils.open(Qt.resolvedUrl("../../Dialogs/InfoDialog.qml"), dekko, {
28 title: qsTr("Invaid address"),
29 text: msg
30 })
31 return false
32 }
33 return true
34 }
35
22 DekkoHeader {36 DekkoHeader {
23 id: header37 id: header
24 title: edit ? qsTr("Edit identity") : qsTr("New identity")38 title: edit ? qsTr("Edit identity") : qsTr("New identity")
@@ -30,16 +44,19 @@ Page {
30 id: saveAction44 id: saveAction
31 iconName: "ok"45 iconName: "ok"
32 onTriggered: {46 onTriggered: {
33 if (edit) {47 if (validateAddress(input.emailField) && validateAddress(input.replyToField)) {
34 identity.name = input.nameField48 if (edit) {
35 identity.email = input.emailField49 identity.name = input.nameField
36 identity.organization = input.organizationField50 identity.email = input.emailField
37 identity.signature = input.signatureField51 identity.replyTo = input.replyToField
38 } else {52 identity.organization = input.organizationField
39 model.appendRow(newIdentity)53 identity.signature = input.signatureField
54 } else {
55 model.appendRow(newIdentity)
56 }
57 closing()
58 rootPageStack.pop()
40 }59 }
41 closing()
42 rootPageStack.pop()
43 }60 }
44 }61 }
45 }62 }
@@ -52,9 +69,9 @@ Page {
52 id: newIdentity69 id: newIdentity
53 name: input.nameField70 name: input.nameField
54 email: input.emailField71 email: input.emailField
72 replyTo: input.replyToField
55 organization: input.organizationField73 organization: input.organizationField
56 signature: input.signatureField74 signature: input.signatureField
57
58 }75 }
59 Flickable {76 Flickable {
60 anchors {77 anchors {
diff --git a/qml/Settings/user/SenderIdentityInput.qml b/qml/Settings/user/SenderIdentityInput.qml
index 6818ac5..e92cf7a 100644
--- a/qml/Settings/user/SenderIdentityInput.qml
+++ b/qml/Settings/user/SenderIdentityInput.qml
@@ -27,6 +27,7 @@ Column {
2727
28 property alias nameField: nameField.text28 property alias nameField: nameField.text
29 property alias emailField: emailField.text29 property alias emailField: emailField.text
30 property alias replyToField: replyToField.text
30 property alias organizationField: organizationField.text31 property alias organizationField: organizationField.text
31 property alias signatureField: signatureField.text32 property alias signatureField: signatureField.text
32 property alias signatureFieldVisible: signatureField.visible33 property alias signatureFieldVisible: signatureField.visible
@@ -61,6 +62,14 @@ Column {
61 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhEmailCharactersOnly62 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhEmailCharactersOnly
62 sendTabEventOnEnter: true63 sendTabEventOnEnter: true
63 KeyNavigation.priority: KeyNavigation.BeforeItem64 KeyNavigation.priority: KeyNavigation.BeforeItem
65 KeyNavigation.tab: replyToField.textFieldFocusHandle
66 }
67 TitledTextField {
68 id: replyToField
69 title: qsTr("Reply-To")
70 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhEmailCharactersOnly
71 sendTabEventOnEnter: true
72 KeyNavigation.priority: KeyNavigation.BeforeItem
64 KeyNavigation.tab: organizationField.textFieldFocusHandle73 KeyNavigation.tab: organizationField.textFieldFocusHandle
65 }74 }
66 TitledTextField {75 TitledTextField {
diff --git a/qml/SetupWizard/IdentityInput.qml b/qml/SetupWizard/IdentityInput.qml
index 4809ca2..f7ad072 100644
--- a/qml/SetupWizard/IdentityInput.qml
+++ b/qml/SetupWizard/IdentityInput.qml
@@ -32,6 +32,7 @@ Item {
32 property alias name: input.nameField32 property alias name: input.nameField
33 property alias email: input.emailField33 property alias email: input.emailField
34 property alias organization: input.organizationField34 property alias organization: input.organizationField
35 property alias replyTo: input.replyToField
3536
36 DekkoHeader {37 DekkoHeader {
37 id: header38 id: header
@@ -50,6 +51,18 @@ Item {
50 }51 }
51 }52 }
5253
54 function validateAddress(address) {
55 if (address && !EmailValidator.validate(address)) {
56 var msg = qsTr("%1 is not a valid email address").arg(address)
57 PopupUtils.open(Qt.resolvedUrl("../../Dialogs/InfoDialog.qml"), dekko, {
58 title: qsTr("Invaid address"),
59 text: msg
60 })
61 return false
62 }
63 return true
64 }
65
53 Action {66 Action {
54 id: nextAction67 id: nextAction
55 iconName: "next"68 iconName: "next"
@@ -58,8 +71,7 @@ Item {
58 input.showMissingFields = true71 input.showMissingFields = true
59 return72 return
60 }73 }
61 if (!EmailValidator.validate(email)) {74 if (!validateAddress(email) || !validateAddress(replyTo)) {
62 PopupUtils.open(Qt.resolvedUrl("../Dialogs/InfoDialog.qml"), wizard, {title: qsTr("Invalid address"), text: qsTr("%1 is not a valid email address").arg(email)})
63 return75 return
64 }76 }
65 inputComplete()77 inputComplete()
@@ -80,6 +92,7 @@ Item {
80 nameField: wizard.identity.name92 nameField: wizard.identity.name
81 emailField: EmailValidator.validate(wizard.account.smtpSettings.username) ? wizard.account.smtpSettings.username : wizard.identity.email93 emailField: EmailValidator.validate(wizard.account.smtpSettings.username) ? wizard.account.smtpSettings.username : wizard.identity.email
82 organizationField: wizard.identity.organization94 organizationField: wizard.identity.organization
95 replyToField: wizard.identity.replyTo
83 }96 }
84 }97 }
85}98}
diff --git a/qml/SetupWizard/ManualSetup.qml b/qml/SetupWizard/ManualSetup.qml
index 5da64b9..2393723 100644
--- a/qml/SetupWizard/ManualSetup.qml
+++ b/qml/SetupWizard/ManualSetup.qml
@@ -41,6 +41,7 @@ Column {
41 property alias smtpPort: smtpPortField.text41 property alias smtpPort: smtpPortField.text
42 function parsedSmtpPort(){ return parseInt(smtpPortField.text)}42 function parsedSmtpPort(){ return parseInt(smtpPortField.text)}
43 property alias smtpUsername: smtpEmailField.text43 property alias smtpUsername: smtpEmailField.text
44 property alias smtpReplyTo: smtpReplyToField.text
44 property alias smtpPassword: smtpPasswordField.text45 property alias smtpPassword: smtpPasswordField.text
45 readonly property bool isImap: serverInput.state === "imap"46 readonly property bool isImap: serverInput.state === "imap"
46 readonly property bool isSmtp: serverInput.state === "smtp"47 readonly property bool isSmtp: serverInput.state === "smtp"
@@ -219,6 +220,16 @@ Column {
219 sendTabEventOnEnter: true220 sendTabEventOnEnter: true
220 requiredField: internal.invalidFields221 requiredField: internal.invalidFields
221 KeyNavigation.priority: KeyNavigation.BeforeItem222 KeyNavigation.priority: KeyNavigation.BeforeItem
223 KeyNavigation.tab: smtpReplyToField.textFieldFocusHandle
224 }
225
226 TitledTextField {
227 id: smtpReplyToField
228 title: qsTr("Reply-To")
229 visible: !isImap
230 inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhEmailCharactersOnly | Qt.ImhNoPredictiveText
231 sendTabEventOnEnter: true
232 KeyNavigation.priority: KeyNavigation.BeforeItem
222 KeyNavigation.tab: smtpPasswordField.textFieldFocusHandle233 KeyNavigation.tab: smtpPasswordField.textFieldFocusHandle
223 }234 }
224235
diff --git a/qml/SetupWizard/SetupWizard.qml b/qml/SetupWizard/SetupWizard.qml
index 8925a7b..af07c85 100644
--- a/qml/SetupWizard/SetupWizard.qml
+++ b/qml/SetupWizard/SetupWizard.qml
@@ -80,6 +80,10 @@ Item {
80 when: identityInput.active80 when: identityInput.active
81 value: loader.item.organization81 value: loader.item.organization
82 }82 }
83 Binding on replyTo {
84 when: identityInput.active
85 value: loader.item.replyTo
86 }
83 }87 }
8488
85 // For now let's just create seperate ones89 // For now let's just create seperate ones
diff --git a/src/3rdParty/trojita/Common/SettingsNames.cpp b/src/3rdParty/trojita/Common/SettingsNames.cpp
index 8b803bc..ce7286b 100644
--- a/src/3rdParty/trojita/Common/SettingsNames.cpp
+++ b/src/3rdParty/trojita/Common/SettingsNames.cpp
@@ -29,6 +29,7 @@ const QString SettingsNames::realNameKey = QLatin1String("realName");
29const QString SettingsNames::addressKey = QLatin1String("address");29const QString SettingsNames::addressKey = QLatin1String("address");
30const QString SettingsNames::organisationKey = QLatin1String("organisation");30const QString SettingsNames::organisationKey = QLatin1String("organisation");
31const QString SettingsNames::signatureKey = QLatin1String("signature");31const QString SettingsNames::signatureKey = QLatin1String("signature");
32const QString SettingsNames::replyToKey = QLatin1String("replyTo");
32const QString SettingsNames::obsRealNameKey = QLatin1String("identity.realName");33const QString SettingsNames::obsRealNameKey = QLatin1String("identity.realName");
33const QString SettingsNames::obsAddressKey = QLatin1String("identity.address");34const QString SettingsNames::obsAddressKey = QLatin1String("identity.address");
34const QString SettingsNames::msaMethodKey = QLatin1String("msa.method");35const QString SettingsNames::msaMethodKey = QLatin1String("msa.method");
diff --git a/src/3rdParty/trojita/Common/SettingsNames.h b/src/3rdParty/trojita/Common/SettingsNames.h
index 1a47a70..7a52e40 100644
--- a/src/3rdParty/trojita/Common/SettingsNames.h
+++ b/src/3rdParty/trojita/Common/SettingsNames.h
@@ -28,7 +28,7 @@ namespace Common
28{28{
2929
30struct SettingsNames {30struct SettingsNames {
31 static const QString identitiesKey, realNameKey, addressKey, organisationKey, signatureKey, obsRealNameKey, obsAddressKey;31 static const QString identitiesKey, realNameKey, addressKey, organisationKey, signatureKey, replyToKey, obsRealNameKey, obsAddressKey;
32 static const QString msaMethodKey, methodSMTP, methodSSMTP, methodSENDMAIL, methodImapSendmail, smtpHostKey,32 static const QString msaMethodKey, methodSMTP, methodSSMTP, methodSENDMAIL, methodImapSendmail, smtpHostKey,
33 smtpPortKey, smtpAuthKey, smtpStartTlsKey, smtpUserKey,33 smtpPortKey, smtpAuthKey, smtpStartTlsKey, smtpUserKey,
34 sendmailKey, sendmailDefaultCmd;34 sendmailKey, sendmailDefaultCmd;
diff --git a/src/app/Accounts/SenderIdentity.cpp b/src/app/Accounts/SenderIdentity.cpp
index aa293ac..0a98a82 100644
--- a/src/app/Accounts/SenderIdentity.cpp
+++ b/src/app/Accounts/SenderIdentity.cpp
@@ -85,6 +85,20 @@ void SenderIdentity::setSignature(const QString &signature)
85 emit dataChanged();85 emit dataChanged();
86}86}
8787
88QString SenderIdentity::replyTo() const
89{
90 return m_replyTo;
91}
92
93void SenderIdentity::setReplyTo(const QString &replyTo)
94{
95 if (replyTo == m_replyTo) {
96 return;
97 }
98 m_replyTo = replyTo;
99 emit dataChanged();
100}
101
88QString SenderIdentity::getDefaultSignature() const102QString SenderIdentity::getDefaultSignature() const
89{103{
90 return QString(tr("Sent using Dekko from my Ubuntu device"));104 return QString(tr("Sent using Dekko from my Ubuntu device"));
diff --git a/src/app/Accounts/SenderIdentity.h b/src/app/Accounts/SenderIdentity.h
index 0b814e0..a3ce49c 100644
--- a/src/app/Accounts/SenderIdentity.h
+++ b/src/app/Accounts/SenderIdentity.h
@@ -38,6 +38,7 @@ class SenderIdentity : public QObject
38 Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY dataChanged)38 Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY dataChanged)
39 Q_PROPERTY(QString organization READ organization WRITE setOrganization NOTIFY dataChanged)39 Q_PROPERTY(QString organization READ organization WRITE setOrganization NOTIFY dataChanged)
40 Q_PROPERTY(QString signature READ signature WRITE setSignature NOTIFY dataChanged)40 Q_PROPERTY(QString signature READ signature WRITE setSignature NOTIFY dataChanged)
41 Q_PROPERTY(QString replyTo READ replyTo WRITE setReplyTo NOTIFY dataChanged)
41 Q_PROPERTY(bool useDefaultSignature READ useDefaultSignature WRITE setUseDefaultSignature NOTIFY dataChanged)42 Q_PROPERTY(bool useDefaultSignature READ useDefaultSignature WRITE setUseDefaultSignature NOTIFY dataChanged)
42public:43public:
43 /*!44 /*!
@@ -113,6 +114,20 @@ public:
113 /*!114 /*!
114 \brief115 \brief
115116
117 \fn replyTo
118 \return QString
119 */
120 QString replyTo() const;
121 /*!
122 \breif
123
124 \fn setReplyTo
125 \param replyTo
126 */
127 void setReplyTo(const QString &replyTo);
128 /*!
129 \brief
130
116 \fn useDefaultSignature131 \fn useDefaultSignature
117 \return bool132 \return bool
118 */133 */
@@ -146,6 +161,7 @@ private:
146 QString m_email; /*!< TODO */161 QString m_email; /*!< TODO */
147 QString m_organization; /*!< TODO */162 QString m_organization; /*!< TODO */
148 QString m_signature; /*!< TODO */163 QString m_signature; /*!< TODO */
164 QString m_replyTo;
149 bool m_useDefaultSignature; /*!< TODO */165 bool m_useDefaultSignature; /*!< TODO */
150166
151 /*!167 /*!
diff --git a/src/app/Accounts/SenderIdentityModel.cpp b/src/app/Accounts/SenderIdentityModel.cpp
index 5dbfae4..7e4bcc8 100644
--- a/src/app/Accounts/SenderIdentityModel.cpp
+++ b/src/app/Accounts/SenderIdentityModel.cpp
@@ -56,6 +56,7 @@ void SenderIdentityModel::reloadIdentities()
56 identity->setOrganization(settings.value(Common::SettingsNames::organisationKey).toString());56 identity->setOrganization(settings.value(Common::SettingsNames::organisationKey).toString());
57 identity->setUseDefaultSignature(settings.value("useDefaultSignature", true).toBool());57 identity->setUseDefaultSignature(settings.value("useDefaultSignature", true).toBool());
58 identity->setSignature(settings.value(Common::SettingsNames::signatureKey).toString());58 identity->setSignature(settings.value(Common::SettingsNames::signatureKey).toString());
59 identity->setReplyTo(settings.value(Common::SettingsNames::replyToKey).toString());
59 appendRow(identity);60 appendRow(identity);
60 }61 }
61 settings.endArray();62 settings.endArray();
@@ -75,6 +76,7 @@ void SenderIdentityModel::saveIdentites()
75 settings.setValue(Common::SettingsNames::organisationKey, m_identities[i]->organization());76 settings.setValue(Common::SettingsNames::organisationKey, m_identities[i]->organization());
76 settings.setValue("useDefaultSignature", m_identities[i]->useDefaultSignature());77 settings.setValue("useDefaultSignature", m_identities[i]->useDefaultSignature());
77 settings.setValue(Common::SettingsNames::signatureKey, m_identities[i]->signature());78 settings.setValue(Common::SettingsNames::signatureKey, m_identities[i]->signature());
79 settings.setValue(Common::SettingsNames::replyToKey, m_identities[i]->replyTo());
78 }80 }
79 settings.endArray();81 settings.endArray();
80 settings.endGroup();82 settings.endGroup();
@@ -87,6 +89,7 @@ QHash<int, QByteArray> SenderIdentityModel::roleNames() const
87 roles[IdentityEmailRole] = "email";89 roles[IdentityEmailRole] = "email";
88 roles[IdentityOrganizationRole] = "organization";90 roles[IdentityOrganizationRole] = "organization";
89 roles[IdentitySignatureRole] = "signature";91 roles[IdentitySignatureRole] = "signature";
92 roles[IdentityReplyToRole] = "replyTo";
90 roles[IdentityRecipientStringRole] = "formattedString";93 roles[IdentityRecipientStringRole] = "formattedString";
91 roles[IdentityUseDefaultSignature] = "useDefaultSignature";94 roles[IdentityUseDefaultSignature] = "useDefaultSignature";
92 return roles;95 return roles;
@@ -106,6 +109,8 @@ QVariant SenderIdentityModel::data(const QModelIndex &index, int role) const
106 return m_identities[index.row()]->organization();109 return m_identities[index.row()]->organization();
107 case IdentitySignatureRole:110 case IdentitySignatureRole:
108 return m_identities[index.row()]->signature();111 return m_identities[index.row()]->signature();
112 case IdentityReplyToRole:
113 return m_identities[index.row()]->replyTo();
109 case IdentityUseDefaultSignature:114 case IdentityUseDefaultSignature:
110 return m_identities[index.row()]->useDefaultSignature();115 return m_identities[index.row()]->useDefaultSignature();
111 case IdentityRecipientStringRole:116 case IdentityRecipientStringRole:
@@ -173,6 +178,7 @@ QVariant SenderIdentityModel::get(int index)
173 identityData.insert(QString("email"), identity->email());178 identityData.insert(QString("email"), identity->email());
174 identityData.insert(QString("organization"), identity->organization());179 identityData.insert(QString("organization"), identity->organization());
175 identityData.insert(QString("signature"), identity->signature());180 identityData.insert(QString("signature"), identity->signature());
181 identityData.insert(QString("replyTo"), identity->replyTo());
176 identityData.insert(QString("formattedString"), identity->toFormattedString());182 identityData.insert(QString("formattedString"), identity->toFormattedString());
177 identityData.insert(QString("useDefaultSignature"), identity->useDefaultSignature());183 identityData.insert(QString("useDefaultSignature"), identity->useDefaultSignature());
178 return identityData;184 return identityData;
@@ -202,6 +208,9 @@ bool SenderIdentityModel::setData(const QModelIndex &index, const QVariant &valu
202 case IdentitySignatureRole:208 case IdentitySignatureRole:
203 m_identities[index.row()]->setSignature(value.toString());209 m_identities[index.row()]->setSignature(value.toString());
204 break;210 break;
211 case IdentityReplyToRole:
212 m_identities[index.row()]->setReplyTo(value.toString());
213 break;
205 case IdentityUseDefaultSignature:214 case IdentityUseDefaultSignature:
206 m_identities[index.row()]->setUseDefaultSignature(value.toBool());215 m_identities[index.row()]->setUseDefaultSignature(value.toBool());
207 break;216 break;
diff --git a/src/app/Accounts/SenderIdentityModel.h b/src/app/Accounts/SenderIdentityModel.h
index 08544f8..dbaaf5e 100644
--- a/src/app/Accounts/SenderIdentityModel.h
+++ b/src/app/Accounts/SenderIdentityModel.h
@@ -63,6 +63,7 @@ public:
63 IdentityEmailRole,63 IdentityEmailRole,
64 IdentityOrganizationRole,64 IdentityOrganizationRole,
65 IdentitySignatureRole,65 IdentitySignatureRole,
66 IdentityReplyToRole,
66 IdentityUseDefaultSignature,67 IdentityUseDefaultSignature,
67 IdentityRecipientStringRole68 IdentityRecipientStringRole
68 };69 };
diff --git a/src/app/Settings/SettingsNames.cpp b/src/app/Settings/SettingsNames.cpp
index f457612..720c66a 100644
--- a/src/app/Settings/SettingsNames.cpp
+++ b/src/app/Settings/SettingsNames.cpp
@@ -7,6 +7,7 @@ const QString SettingsNames::realNameKey = QLatin1String("realName");
7const QString SettingsNames::addressKey = QLatin1String("address");7const QString SettingsNames::addressKey = QLatin1String("address");
8const QString SettingsNames::organisationKey = QLatin1String("organisation");8const QString SettingsNames::organisationKey = QLatin1String("organisation");
9const QString SettingsNames::signatureKey = QLatin1String("signature");9const QString SettingsNames::signatureKey = QLatin1String("signature");
10const QString SettingsNames::replyToKey = QLatin1String("replyTo");
10const QString SettingsNames::obsRealNameKey = QLatin1String("identity.realName");11const QString SettingsNames::obsRealNameKey = QLatin1String("identity.realName");
11const QString SettingsNames::obsAddressKey = QLatin1String("identity.address");12const QString SettingsNames::obsAddressKey = QLatin1String("identity.address");
12const QString SettingsNames::msaMethodKey = QLatin1String("msa.method");13const QString SettingsNames::msaMethodKey = QLatin1String("msa.method");
diff --git a/src/app/Settings/SettingsNames.h b/src/app/Settings/SettingsNames.h
index 28f4260..12ed3e0 100644
--- a/src/app/Settings/SettingsNames.h
+++ b/src/app/Settings/SettingsNames.h
@@ -6,7 +6,7 @@
6namespace Dekko {6namespace Dekko {
77
8struct SettingsNames {8struct SettingsNames {
9 static const QString identitiesKey, realNameKey, addressKey, organisationKey, signatureKey, obsRealNameKey, obsAddressKey;9 static const QString identitiesKey, realNameKey, addressKey, organisationKey, signatureKey, replyToKey, obsRealNameKey, obsAddressKey;
10 static const QString msaMethodKey, methodSMTP, methodSSMTP, methodSENDMAIL, methodImapSendmail, smtpHostKey,10 static const QString msaMethodKey, methodSMTP, methodSSMTP, methodSENDMAIL, methodImapSendmail, smtpHostKey,
11 smtpPortKey, smtpAuthKey, smtpStartTlsKey, smtpUserKey, smtpAuthType,11 smtpPortKey, smtpAuthKey, smtpStartTlsKey, smtpUserKey, smtpAuthType,
12 sendmailKey, sendmailDefaultCmd;12 sendmailKey, sendmailDefaultCmd;

Subscribers

People subscribed via source and target branches