diff options
Diffstat (limited to 'src')
-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 |
5 files changed, 44 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_; |