diff options
author | Saturneric <[email protected]> | 2022-12-22 10:30:36 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-12-22 10:30:36 +0000 |
commit | 3cb623b07e50d9e95dace9966dc0337e72f57dc2 (patch) | |
tree | dfe994f28f0a6dee6151febf3b50f22adceab74e /src/ui/dialog/import_export/KeyUploadDialog.cpp | |
parent | Merge pull request #70 from saturneric/dev/2.0.8/saturneric (diff) | |
parent | fix: continue to solve ubuntu 18.04 build issues (diff) | |
download | GpgFrontend-3cb623b07e50d9e95dace9966dc0337e72f57dc2.tar.gz GpgFrontend-3cb623b07e50d9e95dace9966dc0337e72f57dc2.zip |
fix: solve conflictsv2.0.10
Diffstat (limited to 'src/ui/dialog/import_export/KeyUploadDialog.cpp')
-rw-r--r-- | src/ui/dialog/import_export/KeyUploadDialog.cpp | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/src/ui/dialog/import_export/KeyUploadDialog.cpp b/src/ui/dialog/import_export/KeyUploadDialog.cpp index 055f2e1f..ad4be0cb 100644 --- a/src/ui/dialog/import_export/KeyUploadDialog.cpp +++ b/src/ui/dialog/import_export/KeyUploadDialog.cpp @@ -33,6 +33,7 @@ #include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyGetter.h" #include "core/function/gpg/GpgKeyImportExporter.h" +#include "ui/struct/SettingsObject.h" namespace GpgFrontend::UI { @@ -40,6 +41,7 @@ KeyUploadDialog::KeyUploadDialog(const KeyIdArgsListPtr& keys_ids, QWidget* parent) : GeneralDialog(typeid(KeyUploadDialog).name(), parent), m_keys_(GpgKeyGetter::GetInstance().GetKeys(keys_ids)) { + auto* pb = new QProgressBar(); pb->setRange(0, 0); pb->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); @@ -54,33 +56,47 @@ KeyUploadDialog::KeyUploadDialog(const KeyIdArgsListPtr& keys_ids, this->setModal(true); this->setWindowTitle(_("Uploading Public Key")); this->setFixedSize(240, 42); + this->setPosCenterOfScreen(); } void KeyUploadDialog::SlotUpload() { auto out_data = std::make_unique<ByteArray>(); GpgKeyImportExporter::GetInstance().ExportKeys(*m_keys_, out_data); slot_upload_key_to_server(*out_data); + + // Done + this->hide(); + this->close(); } void KeyUploadDialog::slot_upload_key_to_server( const GpgFrontend::ByteArray& keys_data) { + std::string target_keyserver; - if (target_keyserver.empty()) { - try { - auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); - - target_keyserver = settings.lookup("keyserver.default_server").c_str(); - - LOG(INFO) << _("Set target Key Server to default Key Server") - << target_keyserver; - } catch (...) { - LOG(ERROR) << _("Cannot read default_keyserver From Settings"); - QMessageBox::critical( - nullptr, _("Default Keyserver Not Found"), - _("Cannot read default keyserver from your settings, " - "please set a default keyserver first")); - return; + + try { + SettingsObject key_server_json("key_server"); + + const auto key_server_list = + key_server_json.Check("server_list", nlohmann::json::array()); + + int default_key_server_index = key_server_json.Check("default_server", 0); + if (default_key_server_index >= key_server_list.size()) { + throw std::runtime_error("default_server index out of range"); } + + target_keyserver = + key_server_list[default_key_server_index].get<std::string>(); + + LOG(INFO) << _("Set target Key Server to default Key Server") + << target_keyserver; + + } catch (...) { + LOG(ERROR) << _("Cannot read default_keyserver From Settings"); + QMessageBox::critical(nullptr, _("Default Keyserver Not Found"), + _("Cannot read default keyserver from your settings, " + "please set a default keyserver first")); + return; } QUrl req_url(QString::fromStdString(target_keyserver + "/pks/add")); @@ -117,10 +133,6 @@ void KeyUploadDialog::slot_upload_key_to_server( while (reply->isRunning()) { QApplication::processEvents(); } - - // Done - this->hide(); - this->close(); } void KeyUploadDialog::slot_upload_finished() { |