aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2022-01-03 17:42:09 +0000
committerSaturneric <[email protected]>2022-01-03 17:42:09 +0000
commit5b76eb21950749720c5e05a4de02c4782cef7ec1 (patch)
tree205c04b0a34da4e6aa0abf9de702c779aaa501f1
parent<feature, refactor>(core, ui): Key package generate. (diff)
downloadGpgFrontend-5b76eb21950749720c5e05a4de02c4782cef7ec1.tar.gz
GpgFrontend-5b76eb21950749720c5e05a4de02c4782cef7ec1.zip
<feature>(ui): default sender gpg key settings in send mail.
-rw-r--r--src/ui/MainWindow.h1
-rw-r--r--src/ui/main_window/MainWindowUI.cpp5
-rw-r--r--src/ui/settings/SettingsSendMail.cpp19
-rw-r--r--src/ui/smtp/SendMailDialog.cpp18
-rw-r--r--src/ui/smtp/SendMailDialog.h1
-rw-r--r--ui/SendMailSettings.ui34
6 files changed, 78 insertions, 0 deletions
diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h
index 402dbd4d..60a6240a 100644
--- a/src/ui/MainWindow.h
+++ b/src/ui/MainWindow.h
@@ -331,6 +331,7 @@ class MainWindow : public QMainWindow {
QToolBar* editToolBar{}; /** Toolbar holding edit actions */
QToolBar* specialEditToolBar{}; /** Toolbar holding special edit actions */
QToolBar* keyToolBar{}; /** Toolbar holding key operations */
+ QToolBar* emailToolBar{}; /** Toolbar holding key operations */
QToolButton*
importButton{}; /** Toolbutton for import dropdown menu in toolbar */
QDockWidget* keyListDock{}; /** Encrypt Dock*/
diff --git a/src/ui/main_window/MainWindowUI.cpp b/src/ui/main_window/MainWindowUI.cpp
index aeed1326..cb7962f7 100644
--- a/src/ui/main_window/MainWindowUI.cpp
+++ b/src/ui/main_window/MainWindowUI.cpp
@@ -421,6 +421,11 @@ void MainWindow::createToolBars() {
specialEditToolBar->hide();
viewMenu->addAction(specialEditToolBar->toggleViewAction());
+ emailToolBar = addToolBar(_("Email"));
+ emailToolBar->setObjectName("emailToolBar");
+ emailToolBar->addAction(sendMailAct);
+ viewMenu->addAction(emailToolBar->toggleViewAction());
+
// Add dropdown menu for key import to keytoolbar
importButton = new QToolButton();
importButton->setMenu(importKeyMenu);
diff --git a/src/ui/settings/SettingsSendMail.cpp b/src/ui/settings/SettingsSendMail.cpp
index 742c0644..21911e0f 100644
--- a/src/ui/settings/SettingsSendMail.cpp
+++ b/src/ui/settings/SettingsSendMail.cpp
@@ -49,6 +49,7 @@ SendMailTab::SendMailTab(QWidget* parent)
ui->passwordEdit->setDisabled(state != Qt::Checked);
ui->defaultSenderEmailEdit->setDisabled(state != Qt::Checked);
+ ui->gpgKeyIDEdit->setDisabled(state != Qt::Checked);
ui->checkConnectionButton->setDisabled(state != Qt::Checked);
});
@@ -92,6 +93,8 @@ SendMailTab::SendMailTab(QWidget* parent)
ui->senderLabel->setText(_("Default Sender Email"));
ui->checkConnectionButton->setText(_("Check Connection"));
ui->senTestMailButton->setText(_("Send Test Email"));
+ ui->gpgkeyIdLabel->setText(_("Default Sender GPG Key ID"));
+
ui->tipsLabel->setText(
_("Tips: It is recommended that you build your own mail server or use "
"a trusted mail server. If you don't know the detailed configuration "
@@ -152,6 +155,15 @@ void SendMailTab::setSettings() {
LOG(ERROR) << _("Setting Operation Error") << _("default_sender");
}
+ try {
+ std::string default_sender_gpg_key_id =
+ settings.lookup("smtp.default_sender_gpg_key_id");
+ ui->gpgKeyIDEdit->setText(default_sender_gpg_key_id.c_str());
+ } catch (...) {
+ LOG(ERROR) << _("Setting Operation Error")
+ << _("default_sender_gpg_key_id");
+ }
+
ui->identityCheckBox->setCheckState(Qt::Unchecked);
try {
bool identity_enable = settings.lookup("smtp.identity_enable");
@@ -227,6 +239,13 @@ void SendMailTab::applySettings() {
smtp["default_sender"] = ui->defaultSenderEmailEdit->text().toStdString();
}
+ if (!smtp.exists("default_sender_gpg_key_id"))
+ smtp.add("default_sender_gpg_key_id", libconfig::Setting::TypeString) =
+ ui->gpgKeyIDEdit->text().toStdString();
+ else {
+ smtp["default_sender_gpg_key_id"] = ui->gpgKeyIDEdit->text().toStdString();
+ }
+
if (!smtp.exists("identity_enable"))
smtp.add("identity_enable", libconfig::Setting::TypeBoolean) =
ui->identityCheckBox->isChecked();
diff --git a/src/ui/smtp/SendMailDialog.cpp b/src/ui/smtp/SendMailDialog.cpp
index e8f188c9..3bf92283 100644
--- a/src/ui/smtp/SendMailDialog.cpp
+++ b/src/ui/smtp/SendMailDialog.cpp
@@ -61,6 +61,16 @@ SendMailDialog::SendMailDialog(const QString& text, QWidget* parent)
ui->errorLabel->setHidden(true);
ui->senderEdit->setText(default_sender_);
+
+ if (!default_sender_gpg_key_id.isEmpty()) {
+ auto key = GpgKeyGetter::GetInstance().GetKey(
+ default_sender_gpg_key_id.toStdString());
+ if (key.good() && key.is_private_key() && key.CanSignActual()) {
+ sender_key_id_ = key.id();
+ set_sender_value_label();
+ }
+ }
+
connect(ui->ccButton, &QPushButton::clicked, [=]() {
ui->ccInputWidget->setHidden(!ui->ccInputWidget->isHidden());
ui->ccEdit->clear();
@@ -351,6 +361,14 @@ void SendMailDialog::initSettings() {
} catch (...) {
LOG(ERROR) << _("Setting Operation Error") << _("default_sender");
}
+
+ try {
+ default_sender_gpg_key_id =
+ settings.lookup("smtp.default_sender_gpg_key_id").c_str();
+ } catch (...) {
+ LOG(ERROR) << _("Setting Operation Error")
+ << _("default_sender_gpg_key_id");
+ }
}
#endif
diff --git a/src/ui/smtp/SendMailDialog.h b/src/ui/smtp/SendMailDialog.h
index a9494675..04224f18 100644
--- a/src/ui/smtp/SendMailDialog.h
+++ b/src/ui/smtp/SendMailDialog.h
@@ -58,6 +58,7 @@ class SendMailDialog : public QDialog {
QString password_;
QString default_sender_;
QString connection_type_settings_ = "None";
+ QString default_sender_gpg_key_id = {};
int port_ = 25;
GpgFrontend::KeyId sender_key_id_;
diff --git a/ui/SendMailSettings.ui b/ui/SendMailSettings.ui
index 96703f7f..6d409946 100644
--- a/ui/SendMailSettings.ui
+++ b/ui/SendMailSettings.ui
@@ -328,6 +328,40 @@
</item>
</layout>
</item>
+ <item row="1" column="0">
+ <widget class="QWidget" name="horizontalWidget_6" native="true">
+ <layout class="QHBoxLayout" name="horizontalLayout_7">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="gpgkeyIdLabel">
+ <property name="text">
+ <string>Default Sender GPG Key ID</string>
+ </property>
+ <property name="margin">
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="gpgKeyIDEdit"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
</item>