aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/settings')
-rw-r--r--src/ui/settings/SettingsDialog.cpp23
-rwxr-xr-xsrc/ui/settings/SettingsDialog.h15
-rw-r--r--src/ui/settings/SettingsSendMail.cpp313
-rw-r--r--src/ui/settings/SettingsSendMail.h119
4 files changed, 0 insertions, 470 deletions
diff --git a/src/ui/settings/SettingsDialog.cpp b/src/ui/settings/SettingsDialog.cpp
index 2c23858f..bf3ce6a8 100644
--- a/src/ui/settings/SettingsDialog.cpp
+++ b/src/ui/settings/SettingsDialog.cpp
@@ -36,36 +36,19 @@
#include "ui/settings/SettingsNetwork.h"
#include "ui/main_window/MainWindow.h"
-#ifdef SMTP_SUPPORT
-#include "ui/settings/SettingsSendMail.h"
-#endif
-
namespace GpgFrontend::UI {
SettingsDialog::SettingsDialog(QWidget* parent) : QDialog(parent) {
tab_widget_ = new QTabWidget();
general_tab_ = new GeneralTab();
appearance_tab_ = new AppearanceTab();
-#ifdef SMTP_SUPPORT
- send_mail_tab_ = new SendMailTab();
-#endif
key_server_tab_ = new KeyserverTab();
network_tab_ = new NetworkTab();
-#ifdef ADVANCED_SUPPORT
- advancedTab = new AdvancedTab;
-#endif
tab_widget_->addTab(general_tab_, _("General"));
tab_widget_->addTab(appearance_tab_, _("Appearance"));
-#ifdef SMTP_SUPPORT
- tab_widget_->addTab(send_mail_tab_, _("Send Mail"));
-#endif
tab_widget_->addTab(key_server_tab_, _("Key Server"));
- // tabWidget->addTab(gpgPathsTab, _("Gpg paths"));
tab_widget_->addTab(network_tab_, _("Network"));
-#ifdef ADVANCED_SUPPORT
- tabWidget->addTab(advancedTab, _("Advanced"));
-#endif
button_box_ =
new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
@@ -105,15 +88,9 @@ void SettingsDialog::SlotAccept() {
LOG(INFO) << "Called";
general_tab_->ApplySettings();
-#ifdef SMTP_SUPPORT
- send_mail_tab_->ApplySettings();
-#endif
appearance_tab_->ApplySettings();
key_server_tab_->ApplySettings();
network_tab_->ApplySettings();
-#ifdef ADVANCED_SUPPORT
- advancedTab->applySettings();
-#endif
LOG(INFO) << "apply done";
diff --git a/src/ui/settings/SettingsDialog.h b/src/ui/settings/SettingsDialog.h
index 000e6599..e123cc6c 100755
--- a/src/ui/settings/SettingsDialog.h
+++ b/src/ui/settings/SettingsDialog.h
@@ -35,19 +35,10 @@
namespace GpgFrontend::UI {
class GeneralTab;
-
-#ifdef SMTP_SUPPORT
-class SendMailTab;
-#endif
-
class AppearanceTab;
class KeyserverTab;
class NetworkTab;
-#ifdef ADVANCED_SUPPORT
-class AdvancedTab;
-#endif
-
/**
* @brief
*
@@ -64,15 +55,9 @@ class SettingsDialog : public QDialog {
explicit SettingsDialog(QWidget* parent = nullptr);
GeneralTab* general_tab_; ///<
-#ifdef SMTP_SUPPORT
- SendMailTab* send_mail_tab_; ///<
-#endif
AppearanceTab* appearance_tab_; ///<
KeyserverTab* key_server_tab_; ///<
NetworkTab* network_tab_; ///<
-#ifdef ADVANCED_SUPPORT
- AdvancedTab* advanced_tab_; ///<
-#endif
/**
* @brief
diff --git a/src/ui/settings/SettingsSendMail.cpp b/src/ui/settings/SettingsSendMail.cpp
deleted file mode 100644
index bb948d9a..00000000
--- a/src/ui/settings/SettingsSendMail.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GpgFrontend is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric<[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "SettingsSendMail.h"
-
-#include "ui/struct/SettingsObject.h"
-#include "ui/thread/SMTPConnectionTestThread.h"
-#include "ui/thread/SMTPSendMailThread.h"
-#include "ui_SendMailSettings.h"
-
-namespace GpgFrontend::UI {
-
-SendMailTab::SendMailTab(QWidget* parent)
- : QWidget(parent), ui_(std::make_shared<Ui_SendMailSettings>()) {
- ui_->setupUi(this);
-
- connect(ui_->enableCheckBox, &QCheckBox::stateChanged, this,
- [=](int state) { switch_ui_enabled(state == Qt::Checked); });
-
-#ifdef SMTP_SUPPORT
- connect(ui_->checkConnectionButton, &QPushButton::clicked, this,
- &SendMailTab::slot_check_connection);
- connect(ui_->senTestMailButton, &QPushButton::clicked, this,
- &SendMailTab::slot_send_test_mail);
-#endif
-
- connect(ui_->identityCheckBox, &QCheckBox::stateChanged, this,
- [=](int state) { switch_ui_identity_enabled(state == Qt::Checked); });
-
- connect(ui_->connextionSecurityComboBox, &QComboBox::currentTextChanged, this,
- [=](const QString& current_text) {
- if (current_text == "SSL") {
- connection_type_ = SmtpClient::ConnectionType::SslConnection;
- } else if (current_text == "TLS" || current_text == "STARTTLS") {
- connection_type_ = SmtpClient::ConnectionType::TlsConnection;
- } else {
- connection_type_ = SmtpClient::ConnectionType::TcpConnection;
- }
- });
-
- ui_->generalGroupBox->setTitle(_("General"));
- ui_->identityGroupBox->setTitle(_("Identity Information"));
- ui_->preferenceGroupBox->setTitle(_("Preference"));
- ui_->operationsGroupBox->setTitle(_("Operations"));
-
- ui_->enableCheckBox->setText(_("Enable Send Mail Ability"));
- ui_->identityCheckBox->setText(_("Need Auth"));
-
- ui_->smtpServerAddressLabel->setText(_("SMTP Server Address"));
- ui_->smtpServerPortLabel->setText(_("SMTP Server Port"));
- ui_->connectionSecurityLabel->setText(_("SMTP Connection Security"));
- ui_->usernameLabel->setText(_("Username"));
- ui_->passwordLabel->setText(_("Password"));
-
- 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 "
- "information, you can get it from the mail service provider."));
-
- ui_->senTestMailButton->setDisabled(true);
-
- auto* email_validator =
- new QRegularExpressionValidator(re_email_, ui_->defaultSenderEmailEdit);
- ui_->defaultSenderEmailEdit->setValidator(email_validator);
-
- SetSettings();
-}
-
-void SendMailTab::SetSettings() {
- auto smtp_passport = SettingsObject("smtp_passport");
-
- ui_->smtpServerAddressEdit->setText(
- std::string{smtp_passport.Check("smtp_address", "")}.c_str());
-
- ui_->usernameEdit->setText(
- std::string{smtp_passport.Check("username", "")}.c_str());
-
- ui_->passwordEdit->setText(
- std::string{smtp_passport.Check("password", "")}.c_str());
-
- ui_->portSpin->setValue(int{smtp_passport.Check("port", 25)});
-
- ui_->connextionSecurityComboBox->setCurrentText(
- std::string{smtp_passport.Check("connection_type", "None")}.c_str());
-
- ui_->defaultSenderEmailEdit->setText(
- std::string{smtp_passport.Check("default_sender", "")}.c_str());
-
- ui_->gpgKeyIDEdit->setText(
- std::string{smtp_passport.Check("default_sender_gpg_key_id", "")}
- .c_str());
-
- ui_->identityCheckBox->setChecked(
- bool{smtp_passport.Check("identity_enable", false)});
-
- ui_->enableCheckBox->setChecked(bool{smtp_passport.Check("enable", false)});
-
- {
- auto state = ui_->identityCheckBox->checkState();
- switch_ui_identity_enabled(state == Qt::Checked);
- }
-
- {
- auto state = ui_->enableCheckBox->checkState();
- switch_ui_enabled(state == Qt::Checked);
- }
-}
-
-void SendMailTab::ApplySettings() {
- try {
- auto smtp_passport = SettingsObject("smtp_passport");
-
- smtp_passport["smtp_address"] =
- ui_->smtpServerAddressEdit->text().toStdString();
-
- smtp_passport["username"] = ui_->usernameEdit->text().toStdString();
-
- smtp_passport["password"] = ui_->passwordEdit->text().toStdString();
-
- smtp_passport["port"] = ui_->portSpin->value();
-
- smtp_passport["connection_type"] =
- ui_->connextionSecurityComboBox->currentText().toStdString();
-
- smtp_passport["default_sender"] =
- ui_->defaultSenderEmailEdit->text().toStdString();
-
- smtp_passport["default_sender_gpg_key_id"] =
- ui_->gpgKeyIDEdit->text().toStdString();
-
- smtp_passport["identity_enable"] = ui_->identityCheckBox->isChecked();
-
- smtp_passport["enable"] = ui_->enableCheckBox->isChecked();
-
- } catch (...) {
- LOG(ERROR) << _("apply settings failed");
- }
-}
-
-#ifdef SMTP_SUPPORT
-void SendMailTab::slot_check_connection() {
- auto host = ui_->smtpServerAddressEdit->text().toStdString();
- auto port = ui_->portSpin->value();
- auto connection_type = connection_type_;
- bool identity_needed = ui_->identityCheckBox->isChecked();
- auto username = ui_->usernameEdit->text().toStdString();
- auto password = ui_->passwordEdit->text().toStdString();
-
- auto thread = new SMTPConnectionTestThread(
- host, port, connection_type, identity_needed, username, password);
-
- // Waiting Dialog
- auto* waiting_dialog = new QProgressDialog(this);
- waiting_dialog->setMaximum(0);
- waiting_dialog->setMinimum(0);
- auto waiting_dialog_label =
- new QLabel(QString(_("Test SMTP Connection...")) + "<br /><br />" +
- _("If the process does not end for a long time, please check "
- "again whether your SMTP server configuration is correct."));
- waiting_dialog_label->setWordWrap(true);
- waiting_dialog->setLabel(waiting_dialog_label);
- waiting_dialog->resize(420, 120);
- connect(thread, &SMTPConnectionTestThread::SignalSMTPConnectionTestResult,
- this, &SendMailTab::slot_test_smtp_connection_result);
- connect(thread, &QThread::finished, [=]() {
- waiting_dialog->finished(0);
- waiting_dialog->deleteLater();
- });
- connect(waiting_dialog, &QProgressDialog::canceled, [=]() {
- LOG(INFO) << "cancel clicked";
- if (thread->isRunning()) thread->terminate();
- });
-
- // Show Waiting Dialog
- waiting_dialog->show();
- waiting_dialog->setFocus();
-
- thread->start();
- QEventLoop loop;
- connect(thread, &QThread::finished, &loop, &QEventLoop::quit);
- loop.exec();
-}
-#endif
-
-#ifdef SMTP_SUPPORT
-void SendMailTab::slot_send_test_mail() {
- auto host = ui_->smtpServerAddressEdit->text().toStdString();
- auto port = ui_->portSpin->value();
- auto connection_type = connection_type_;
- bool identity_needed = ui_->identityCheckBox->isChecked();
- auto username = ui_->usernameEdit->text().toStdString();
- auto password = ui_->passwordEdit->text().toStdString();
- auto sender_address = ui_->defaultSenderEmailEdit->text();
-
- auto thread = new SMTPSendMailThread(host, port, connection_type,
- identity_needed, username, password);
-
- // Waiting Dialog
- auto* waiting_dialog = new QProgressDialog(this);
- waiting_dialog->setMaximum(0);
- waiting_dialog->setMinimum(0);
- auto waiting_dialog_label =
- new QLabel(QString(_("Test SMTP Send Mail Ability...")) + "<br /><br />" +
- _("If the process does not end for a long time, please check "
- "again whether your SMTP server configuration is correct."));
- waiting_dialog_label->setWordWrap(true);
- waiting_dialog->setLabel(waiting_dialog_label);
- waiting_dialog->resize(420, 120);
- connect(thread, &SMTPSendMailThread::SignalSMTPResult, this,
- &SendMailTab::slot_test_smtp_connection_result);
- connect(thread, &QThread::finished, [=]() {
- waiting_dialog->finished(0);
- waiting_dialog->deleteLater();
- });
- connect(waiting_dialog, &QProgressDialog::canceled, [=]() {
- LOG(INFO) << "cancel clicked";
- if (thread->isRunning()) thread->terminate();
- });
-
- thread->SetSender(sender_address);
- thread->SetRecipient(sender_address);
- thread->SetSubject(_("Test Email from GpgFrontend"));
- thread->AddTextContent(
- _("Hello, this is a test email from GpgFrontend. If you receive this "
- "email, it means that you have configured the correct SMTP server "
- "parameters."));
-
- // Show Waiting Dialog
- waiting_dialog->show();
- waiting_dialog->setFocus();
-
- thread->start();
- QEventLoop loop;
- connect(thread, &QThread::finished, &loop, &QEventLoop::quit);
- loop.exec();
-}
-
-void SendMailTab::slot_test_smtp_connection_result(const QString& result) {
- if (result == "Fail to connect SMTP server") {
- QMessageBox::critical(this, _("Fail"), _("Fail to Connect SMTP Server."));
- ui_->senTestMailButton->setDisabled(true);
- } else if (result == "Fail to login") {
- QMessageBox::critical(this, _("Fail"), _("Fail to Login."));
- ui_->senTestMailButton->setDisabled(true);
- } else if (result == "Fail to send mail") {
- QMessageBox::critical(this, _("Fail"), _("Fail to Login."));
- ui_->senTestMailButton->setDisabled(true);
- } else if (result == "Succeed in testing connection") {
- QMessageBox::information(this, _("Success"),
- _("Succeed in connecting and login"));
- ui_->senTestMailButton->setDisabled(false);
- } else if (result == "Succeed in sending a test email") {
- QMessageBox::information(
- this, _("Success"),
- _("Succeed in sending a test email to the SMTP Server"));
- ui_->senTestMailButton->setDisabled(false);
- } else {
- QMessageBox::critical(this, _("Fail"), _("Unknown error."));
- ui_->senTestMailButton->setDisabled(true);
- }
-}
-
-void SendMailTab::switch_ui_enabled(bool enabled) {
- ui_->smtpServerAddressEdit->setDisabled(!enabled);
- ui_->portSpin->setDisabled(!enabled);
- ui_->connextionSecurityComboBox->setDisabled(!enabled);
-
- ui_->identityCheckBox->setDisabled(!enabled);
- ui_->usernameEdit->setDisabled(!enabled);
- ui_->passwordEdit->setDisabled(!enabled);
-
- ui_->defaultSenderEmailEdit->setDisabled(!enabled);
- ui_->gpgKeyIDEdit->setDisabled(!enabled);
- ui_->checkConnectionButton->setDisabled(!enabled);
-}
-
-void SendMailTab::switch_ui_identity_enabled(bool enabled) {
- ui_->usernameEdit->setDisabled(!enabled);
- ui_->passwordEdit->setDisabled(!enabled);
-}
-#endif
-
-} // namespace GpgFrontend::UI
diff --git a/src/ui/settings/SettingsSendMail.h b/src/ui/settings/SettingsSendMail.h
deleted file mode 100644
index 84259844..00000000
--- a/src/ui/settings/SettingsSendMail.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GpgFrontend is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric<[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#ifndef GPGFRONTEND_SETTINGSSENDMAIL_H
-#define GPGFRONTEND_SETTINGSSENDMAIL_H
-
-#include "ui/GpgFrontendUI.h"
-
-class Ui_SendMailSettings;
-
-namespace GpgFrontend::UI {
-/**
- * @brief
- *
- */
-class SendMailTab : public QWidget {
- Q_OBJECT
-
- public:
- /**
- * @brief Construct a new Send Mail Tab object
- *
- * @param parent
- */
- explicit SendMailTab(QWidget* parent = nullptr);
-
- /**
- * @brief Set the Settings object
- *
- */
- void SetSettings();
-
- /**
- * @brief
- *
- */
- void ApplySettings();
-
- signals:
-
- /**
- * @brief
- *
- * @param needed
- */
- void SignalRestartNeeded(bool needed);
-
- private slots:
-
- /**
- * @brief
- *
- * @param result
- */
- void slot_test_smtp_connection_result(const QString& result);
-
-#ifdef SMTP_SUPPORT
- /**
- * @brief
- *
- */
- void slot_check_connection();
-
- /**
- * @brief
- *
- */
- void slot_send_test_mail();
-#endif
-
- private:
- std::shared_ptr<Ui_SendMailSettings> ui_; ///<
- QRegularExpression re_email_{
- R"((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))"};
- SmtpClient::ConnectionType connection_type_ =
- SmtpClient::ConnectionType::TcpConnection; ///<
-
- /**
- * @brief
- *
- * @param enabled
- */
- void switch_ui_enabled(bool enabled);
-
- /**
- * @brief
- *
- * @param enabled
- */
- void switch_ui_identity_enabled(bool enabled);
-};
-} // namespace GpgFrontend::UI
-
-#endif // GPGFRONTEND_SETTINGSSENDMAIL_H