diff options
author | Saturneric <[email protected]> | 2022-01-03 17:42:09 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-01-03 17:42:09 +0000 |
commit | 5b76eb21950749720c5e05a4de02c4782cef7ec1 (patch) | |
tree | 205c04b0a34da4e6aa0abf9de702c779aaa501f1 | |
parent | <feature, refactor>(core, ui): Key package generate. (diff) | |
download | GpgFrontend-5b76eb21950749720c5e05a4de02c4782cef7ec1.tar.gz GpgFrontend-5b76eb21950749720c5e05a4de02c4782cef7ec1.zip |
<feature>(ui): default sender gpg key settings in send mail.
-rw-r--r-- | src/ui/MainWindow.h | 1 | ||||
-rw-r--r-- | src/ui/main_window/MainWindowUI.cpp | 5 | ||||
-rw-r--r-- | src/ui/settings/SettingsSendMail.cpp | 19 | ||||
-rw-r--r-- | src/ui/smtp/SendMailDialog.cpp | 18 | ||||
-rw-r--r-- | src/ui/smtp/SendMailDialog.h | 1 | ||||
-rw-r--r-- | ui/SendMailSettings.ui | 34 |
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> |