aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/GeneralDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/GeneralDialog.cpp')
-rw-r--r--src/ui/dialog/GeneralDialog.cpp113
1 files changed, 62 insertions, 51 deletions
diff --git a/src/ui/dialog/GeneralDialog.cpp b/src/ui/dialog/GeneralDialog.cpp
index d4b6613e..386573a3 100644
--- a/src/ui/dialog/GeneralDialog.cpp
+++ b/src/ui/dialog/GeneralDialog.cpp
@@ -1,7 +1,7 @@
-/*
- * Copyright (c) 2022. Saturneric
+/**
+ * Copyright (C) 2021 Saturneric <[email protected]>
*
- * This file is part of GpgFrontend.
+ * 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
@@ -20,17 +20,21 @@
* 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.
+ * Saturneric <[email protected]> starting on May 12, 2021.
*
* SPDX-License-Identifier: GPL-3.0-or-later
+ *
*/
#include "GeneralDialog.h"
#include "ui/struct/SettingsObject.h"
+#include "ui/struct/settings/WindowStateSO.h"
+
+namespace GpgFrontend {
-GpgFrontend::UI::GeneralDialog::GeneralDialog(std::string name, QWidget *parent)
- : name_(std::move(name)), QDialog(parent) {
+GpgFrontend::UI::GeneralDialog::GeneralDialog(QString name, QWidget *parent)
+ : QDialog(parent), name_(std::move(name)) {
slot_restore_settings();
connect(this, &QDialog::finished, this, &GeneralDialog::slot_save_settings);
}
@@ -42,37 +46,37 @@ void GpgFrontend::UI::GeneralDialog::slot_restore_settings() noexcept {
update_rect_cache();
SettingsObject general_windows_state(name_ + "_dialog_state");
- bool window_save = general_windows_state.Check("window_save", false);
+ auto window_state = WindowStateSO(general_windows_state);
// Restore window size & location
- if (window_save) {
- int x = general_windows_state.Check("window_pos").Check("x", 0),
- y = general_windows_state.Check("window_pos").Check("y", 0);
- SPDLOG_DEBUG("stored dialog pos, x: {}, y: {}", x, y);
+ if (window_state.window_save) {
+ int x = window_state.x;
+ int y = window_state.y;
+ GF_UI_LOG_DEBUG("stored dialog pos, x: {}, y: {}", x, y);
QPoint relative_pos = {x, y};
QPoint pos = parent_rect_.topLeft() + relative_pos;
- SPDLOG_DEBUG("relative dialog pos, x: {}, y: {}", relative_pos.x(),
- relative_pos.y());
+ GF_UI_LOG_DEBUG("relative dialog pos, x: {}, y: {}", relative_pos.x(),
+ relative_pos.y());
- int width = general_windows_state.Check("window_size").Check("width", 0),
- height =
- general_windows_state.Check("window_size").Check("height", 0);
- SPDLOG_DEBUG("stored dialog size, width: {}, height: {}", width, height);
+ int width = window_state.width;
+ int height = window_state.height;
+ GF_UI_LOG_DEBUG("stored dialog size, width: {}, height: {}", width,
+ height);
- QRect target_rect_ = {pos.x(), pos.y(), width, height};
- SPDLOG_DEBUG("dialog stored target rect, width: {}, height: {}", width,
- height);
+ QRect target_rect = {pos.x(), pos.y(), width, height};
+ GF_UI_LOG_DEBUG("dialog stored target rect, width: {}, height: {}", width,
+ height);
// check for valid
- if (width > 0 && height > 0 && screen_rect_.contains(target_rect_)) {
- this->setGeometry(target_rect_);
+ if (width > 0 && height > 0 && screen_rect_.contains(target_rect)) {
+ this->setGeometry(target_rect);
this->rect_restored_ = true;
}
}
} catch (...) {
- SPDLOG_ERROR("error at restoring settings");
+ GF_UI_LOG_ERROR("error at restoring settings");
}
}
@@ -82,24 +86,26 @@ void GpgFrontend::UI::GeneralDialog::slot_save_settings() noexcept {
update_rect_cache();
- SPDLOG_DEBUG("dialog pos, x: {}, y: {}", rect_.x(), rect_.y());
- SPDLOG_DEBUG("dialog size, width: {}, height: {}", rect_.width(),
- rect_.height());
+ GF_UI_LOG_DEBUG("dialog pos, x: {}, y: {}", rect_.x(), rect_.y());
+ GF_UI_LOG_DEBUG("dialog size, width: {}, height: {}", rect_.width(),
+ rect_.height());
// window position relative to parent
auto relative_pos = rect_.topLeft() - parent_rect_.topLeft();
- SPDLOG_DEBUG("store dialog pos, x: {}, y: {}", relative_pos.x(),
- relative_pos.y());
+ GF_UI_LOG_DEBUG("store dialog pos, x: {}, y: {}", relative_pos.x(),
+ relative_pos.y());
- general_windows_state["window_pos"]["x"] = relative_pos.x();
- general_windows_state["window_pos"]["y"] = relative_pos.y();
+ WindowStateSO window_state;
+ window_state.x = relative_pos.x();
+ window_state.y = relative_pos.y();
+ window_state.width = rect_.width();
+ window_state.height = rect_.height();
+ window_state.window_save = true;
- general_windows_state["window_size"]["width"] = rect_.width();
- general_windows_state["window_size"]["height"] = rect_.height();
- general_windows_state["window_save"] = true;
+ general_windows_state.Store(window_state.Json());
} catch (...) {
- SPDLOG_ERROR(name_, "error");
+ GF_UI_LOG_ERROR("general dialog: {}, caught exception", name_);
}
}
@@ -108,8 +114,8 @@ void GpgFrontend::UI::GeneralDialog::setPosCenterOfScreen() {
int screen_width = screen_rect_.width();
int screen_height = screen_rect_.height();
- SPDLOG_DEBUG("dialog current screen available geometry", screen_width,
- screen_height);
+ GF_UI_LOG_DEBUG("dialog current screen available geometry", screen_width,
+ screen_height);
// update rect of current dialog
rect_ = this->geometry();
@@ -126,14 +132,14 @@ void GpgFrontend::UI::GeneralDialog::movePosition2CenterOfParent() {
update_rect_cache();
// log for debug
- SPDLOG_DEBUG("parent pos x: {} y: {}", parent_rect_.x(), parent_rect_.y());
- SPDLOG_DEBUG("parent size width: {}, height: {}", parent_rect_.width(),
- parent_rect_.height());
- SPDLOG_DEBUG("parent center pos x: {}, y: {}", parent_rect_.center().x(),
- parent_rect_.center().y());
- SPDLOG_DEBUG("dialog pos x: {} y: {}", rect_.x(), rect_.y());
- SPDLOG_DEBUG("dialog size width: {} height: {}", rect_.width(),
- rect_.height());
+ GF_UI_LOG_DEBUG("parent pos x: {} y: {}", parent_rect_.x(), parent_rect_.y());
+ GF_UI_LOG_DEBUG("parent size width: {}, height: {}", parent_rect_.width(),
+ parent_rect_.height());
+ GF_UI_LOG_DEBUG("parent center pos x: {}, y: {}", parent_rect_.center().x(),
+ parent_rect_.center().y());
+ GF_UI_LOG_DEBUG("dialog pos x: {} y: {}", rect_.x(), rect_.y());
+ GF_UI_LOG_DEBUG("dialog size width: {} height: {}", rect_.width(),
+ rect_.height());
if (parent_rect_.topLeft() != QPoint{0, 0} &&
parent_rect_.size() != QSize{0, 0}) {
@@ -143,8 +149,9 @@ void GpgFrontend::UI::GeneralDialog::movePosition2CenterOfParent() {
QPoint target_position =
parent_rect_.center() - QPoint(rect_.width() / 2, rect_.height() / 2);
- SPDLOG_DEBUG("update position to parent's center, target pos, x:{}, y: {}",
- target_position.x(), target_position.y());
+ GF_UI_LOG_DEBUG(
+ "update position to parent's center, target pos, x:{}, y: {}",
+ target_position.x(), target_position.y());
this->move(target_position);
} else {
@@ -191,18 +198,22 @@ void GpgFrontend::UI::GeneralDialog::update_rect_cache() {
* @brief
*
*/
-bool GpgFrontend::UI::GeneralDialog::isRectRestored() { return rect_restored_; }
+auto GpgFrontend::UI::GeneralDialog::isRectRestored() -> bool {
+ return rect_restored_;
+}
/**
* @brief
*
*/
void GpgFrontend::UI::GeneralDialog::showEvent(QShowEvent *event) {
- SPDLOG_DEBUG("General Dialog named {} is about to show, caught show event",
- name_);
+ GF_UI_LOG_DEBUG("General Dialog named {} is about to show, caught show event",
+ name_);
// default position strategy
if (!isRectRestored()) movePosition2CenterOfParent();
- QWidget::showEvent(event);
-} \ No newline at end of file
+ QDialog::showEvent(event);
+}
+
+} // namespace GpgFrontend \ No newline at end of file