aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/main_window/MainWindow.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-01-15 09:22:32 +0000
committersaturneric <[email protected]>2024-01-15 09:22:32 +0000
commit6c632d70b391f8b317c68f7db8cfd217f9370995 (patch)
tree4136eb7164d9f910527c0392d12bd4854a2fdcff /src/ui/main_window/MainWindow.cpp
parentrefactor: remove boost and use QString instead of std::filesystem::path (diff)
downloadGpgFrontend-6c632d70b391f8b317c68f7db8cfd217f9370995.tar.gz
GpgFrontend-6c632d70b391f8b317c68f7db8cfd217f9370995.zip
feat: use qt json support components in data object and infos gathering module
Diffstat (limited to 'src/ui/main_window/MainWindow.cpp')
-rw-r--r--src/ui/main_window/MainWindow.cpp36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/ui/main_window/MainWindow.cpp b/src/ui/main_window/MainWindow.cpp
index e8280e93..0faa7379 100644
--- a/src/ui/main_window/MainWindow.cpp
+++ b/src/ui/main_window/MainWindow.cpp
@@ -37,6 +37,7 @@
#include "ui/UISignalStation.h"
#include "ui/main_window/GeneralMainWindow.h"
#include "ui/struct/SettingsObject.h"
+#include "ui/struct/settings/KeyServerSO.h"
#include "ui/widgets/KeyList.h"
namespace GpgFrontend::UI {
@@ -190,21 +191,17 @@ void MainWindow::restore_settings() {
try {
GF_UI_LOG_DEBUG("restore settings key_server");
- SettingsObject key_server_json("key_server");
- if (!key_server_json.contains("server_list") ||
- key_server_json["server_list"].empty()) {
- key_server_json["server_list"] = {"https://keyserver.ubuntu.com",
- "https://keys.openpgp.org"};
- }
- if (!key_server_json.contains("default_server")) {
- key_server_json["default_server"] = 0;
- }
+ KeyServerSO key_server(SettingsObject("key_server"));
+
+ if (key_server.server_list.empty()) key_server.ResetDefaultServerList();
+ if (key_server.default_server < 0) key_server.default_server = 0;
auto &settings = GlobalSettingStation::GetInstance().GetMainSettings();
if (!settings.exists("general") ||
- settings.lookup("general").getType() != libconfig::Setting::TypeGroup)
+ settings.lookup("general").getType() != libconfig::Setting::TypeGroup) {
settings.add("general", libconfig::Setting::TypeGroup);
+ }
auto &general = settings["general"];
@@ -233,25 +230,30 @@ void MainWindow::restore_settings() {
}
void MainWindow::recover_editor_unsaved_pages_from_cache() {
- auto unsaved_page_array =
+ auto json_data =
CacheManager::GetInstance().LoadCache("editor_unsaved_pages");
- if (!unsaved_page_array.is_array() || unsaved_page_array.empty()) {
+ if (json_data.isEmpty() || !json_data.isArray()) {
return;
}
GF_UI_LOG_DEBUG("plan ot recover unsaved page from cache, page array: {}",
- unsaved_page_array.dump());
+ json_data.toJson());
bool first = true;
- for (auto &unsaved_page_json : unsaved_page_array) {
+ QJsonArray unsaved_page_array = json_data.array();
+ for (const auto &value_ref : unsaved_page_array) {
+ if (!value_ref.isObject()) continue;
+ auto unsaved_page_json = value_ref.toObject();
+
if (!unsaved_page_json.contains("title") ||
!unsaved_page_json.contains("content")) {
continue;
}
- QString title = QString::fromStdString(unsaved_page_json["title"]);
- QString content = QString::fromStdString(unsaved_page_json["content"]);
+
+ QString title = unsaved_page_json["title"].toString();
+ QString content = unsaved_page_json["content"].toString();
GF_UI_LOG_DEBUG(
"recovering unsaved page from cache, page title: {}, content size",
@@ -294,7 +296,7 @@ void MainWindow::closeEvent(QCloseEvent *event) {
if (event->isAccepted()) {
// clear cache of unsaved page
CacheManager::GetInstance().SaveCache("editor_unsaved_pages",
- nlohmann::json::array(), true);
+ QJsonDocument(QJsonArray()), true);
// clear password from memory
// GpgContext::GetInstance().clearPasswordCache();