aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/settings/SettingsKeyServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/settings/SettingsKeyServer.cpp')
-rw-r--r--src/ui/settings/SettingsKeyServer.cpp74
1 files changed, 35 insertions, 39 deletions
diff --git a/src/ui/settings/SettingsKeyServer.cpp b/src/ui/settings/SettingsKeyServer.cpp
index e80e4598..94655871 100644
--- a/src/ui/settings/SettingsKeyServer.cpp
+++ b/src/ui/settings/SettingsKeyServer.cpp
@@ -29,8 +29,10 @@
#include "SettingsKeyServer.h"
#include "core/function/GlobalSettingStation.h"
+#include "core/thread/Task.h"
+#include "core/thread/TaskRunnerGetter.h"
#include "ui/struct/SettingsObject.h"
-#include "ui/thread/ListedKeyServerTestThread.h"
+#include "ui/thread/ListedKeyServerTestTask.h"
#include "ui_KeyServerSettings.h"
namespace GpgFrontend::UI {
@@ -128,8 +130,6 @@ void KeyserverTab::SetSettings() {
this->key_server_str_list_.append(key_server_str.c_str());
}
- auto& settings = GlobalSettingStation::GetInstance().GetUISettings();
-
int default_key_server_index = key_server_json.Check("default_server", 0);
std::string default_key_server =
key_server_list[default_key_server_index].get<std::string>();
@@ -223,9 +223,8 @@ void KeyserverTab::slot_refresh_table() {
}
void KeyserverTab::slot_test_listed_key_server() {
- auto timeout =
- QInputDialog::getInt(this, _("Set TCP Timeout"), tr("timeout(ms): "),
- QLineEdit::Normal, 800, 3000);
+ auto timeout = QInputDialog::getInt(this, _("Set TCP Timeout"),
+ tr("timeout(ms): "), 2500, 200, 16000);
QStringList urls;
const auto row_size = ui_->keyServerListTable->rowCount();
@@ -234,28 +233,30 @@ void KeyserverTab::slot_test_listed_key_server() {
urls.push_back(keyserver_url);
}
- auto thread = new ListedKeyServerTestThread(urls, timeout, this);
- connect(thread,
- &GpgFrontend::UI::ListedKeyServerTestThread::
- SignalKeyServerListTestResult,
- this, [=](const QStringList& result) {
- const auto row_size = ui_->keyServerListTable->rowCount();
- if (result.size() != row_size) return;
- ui_->keyServerListTable->blockSignals(true);
- for (int i = 0; i < row_size; i++) {
- const auto status = result[i];
- auto status_iem = ui_->keyServerListTable->item(i, 3);
- if (status == "Reachable") {
- status_iem->setText(_("Reachable"));
- status_iem->setForeground(QBrush(QColor::fromRgb(0, 255, 0)));
- } else {
- status_iem->setText(_("Not Reachable"));
- status_iem->setForeground(QBrush(QColor::fromRgb(255, 0, 0)));
- }
- }
- ui_->keyServerListTable->blockSignals(false);
- });
- connect(thread, &QThread::finished, thread, &QThread::deleteLater);
+ auto* task = new ListedKeyServerTestTask(urls, timeout, this);
+
+ connect(
+ task,
+ &GpgFrontend::UI::ListedKeyServerTestTask::SignalKeyServerListTestResult,
+ this,
+ [=](std::vector<ListedKeyServerTestTask::KeyServerTestResultType>
+ result) {
+ const auto row_size = ui_->keyServerListTable->rowCount();
+ if (result.size() != row_size) return;
+ ui_->keyServerListTable->blockSignals(true);
+ for (int i = 0; i < row_size; i++) {
+ const auto status = result[i];
+ auto status_iem = ui_->keyServerListTable->item(i, 3);
+ if (status == ListedKeyServerTestTask::kTestResultType_Success) {
+ status_iem->setText(_("Reachable"));
+ status_iem->setForeground(QBrush(QColor::fromRgb(0, 255, 0)));
+ } else {
+ status_iem->setText(_("Not Reachable"));
+ status_iem->setForeground(QBrush(QColor::fromRgb(255, 0, 0)));
+ }
+ }
+ ui_->keyServerListTable->blockSignals(false);
+ });
// Waiting Dialog
auto* waiting_dialog = new QProgressDialog(this);
@@ -269,23 +270,18 @@ void KeyserverTab::slot_test_listed_key_server() {
waiting_dialog_label->setWordWrap(true);
waiting_dialog->setLabel(waiting_dialog_label);
waiting_dialog->resize(420, 120);
- connect(thread, &QThread::finished, [=]() {
- waiting_dialog->finished(0);
+ waiting_dialog->setModal(true);
+ connect(task, &Thread::Task::SignalTaskFinished, [=]() {
+ waiting_dialog->close();
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();
+ Thread::TaskRunnerGetter::GetInstance()
+ .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Network)
+ ->PostTask(task);
}
void KeyserverTab::contextMenuEvent(QContextMenuEvent* event) {