diff options
author | Saturneric <[email protected]> | 2022-11-26 11:19:19 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-11-26 11:19:19 +0000 |
commit | cb299a2b9c18bf80879045f8e99489d7146d9eaf (patch) | |
tree | 87bf2161c1a2b9e9a97eb7ce6ee0cb63d6ff9ef2 | |
parent | feat(doc): update contract info (diff) | |
download | GpgFrontend-cb299a2b9c18bf80879045f8e99489d7146d9eaf.tar.gz GpgFrontend-cb299a2b9c18bf80879045f8e99489d7146d9eaf.zip |
fix: record the actural size
1. record the actural size of dialogs and main windows when they are closing
-rw-r--r-- | src/core/GpgGenKeyInfo.cpp | 8 | ||||
-rw-r--r-- | src/ui/dialog/GeneralDialog.cpp | 38 | ||||
-rw-r--r-- | src/ui/dialog/GeneralDialog.h | 9 | ||||
-rw-r--r-- | src/ui/dialog/keypair_details/KeyDetailsDialog.cpp | 8 | ||||
-rw-r--r-- | src/ui/main_window/GeneralMainWindow.cpp | 3 | ||||
-rw-r--r-- | src/ui/main_window/GeneralMainWindow.h | 2 |
6 files changed, 60 insertions, 8 deletions
diff --git a/src/core/GpgGenKeyInfo.cpp b/src/core/GpgGenKeyInfo.cpp index 6ca83c96..dca5eff7 100644 --- a/src/core/GpgGenKeyInfo.cpp +++ b/src/core/GpgGenKeyInfo.cpp @@ -199,14 +199,16 @@ GpgFrontend::GenKeyInfo::GenKeyInfo(bool m_is_sub_key, bool m_standalone) const std::vector<std::string> &GpgFrontend::GenKeyInfo::GetSupportedKeyAlgo() { static const std::vector<std::string> support_key_algo = {"RSA", "DSA", - "ED25519"}; + "ELG" + "ED25519", + "CV25519"}; return support_key_algo; } const std::vector<std::string> &GpgFrontend::GenKeyInfo::GetSupportedSubkeyAlgo() { - static const std::vector<std::string> support_subkey_algo = {"RSA", "DSA", - "ED25519"}; + static const std::vector<std::string> support_subkey_algo = { + "RSA", "DSA", "ELG", "ED25519"}; return support_subkey_algo; } diff --git a/src/ui/dialog/GeneralDialog.cpp b/src/ui/dialog/GeneralDialog.cpp index 9ec30628..6fd2f32c 100644 --- a/src/ui/dialog/GeneralDialog.cpp +++ b/src/ui/dialog/GeneralDialog.cpp @@ -89,12 +89,19 @@ void GpgFrontend::UI::GeneralDialog::slot_restore_settings() noexcept { LOG(INFO) << "parent size width:" << parent_size.width() << "height:" << parent_size.height(); + LOG(INFO) << "this dialog size width:" << size_.width() + << "height:" << size_.height(); + if (parent_pos != QPoint{0, 0}) { QPoint parent_center{parent_pos.x() + parent_size.width() / 2, parent_pos.y() + parent_size.height() / 2}; pos_ = {parent_center.x() - size_.width() / 2, parent_center.y() - size_.height() / 2}; + + // record parent_pos_ + this->parent_pos_ = parent_pos; + this->parent_size_ = parent_size; } } @@ -117,6 +124,9 @@ void GpgFrontend::UI::GeneralDialog::slot_save_settings() noexcept { general_windows_state["window_pos"]["x"] = pos().x(); general_windows_state["window_pos"]["y"] = pos().y(); + // update size of current dialog + size_ = this->size(); + general_windows_state["window_size"]["width"] = size_.width(); general_windows_state["window_size"]["height"] = size_.height(); general_windows_state["window_save"] = true; @@ -127,7 +137,7 @@ void GpgFrontend::UI::GeneralDialog::slot_save_settings() noexcept { } void GpgFrontend::UI::GeneralDialog::setPosCenterOfScreen() { - auto* screen = QGuiApplication::primaryScreen(); + auto *screen = QGuiApplication::primaryScreen(); QRect geo = screen->availableGeometry(); int screen_width = geo.width(); int screen_height = geo.height(); @@ -136,6 +146,30 @@ void GpgFrontend::UI::GeneralDialog::setPosCenterOfScreen() { << screen_height; pos_ = QPoint((screen_width - QWidget::width()) / 2, - (screen_height - QWidget::height()) / 2); + (screen_height - QWidget::height()) / 2); this->move(pos_); } + +/** + * @brief + * + */ +void GpgFrontend::UI::GeneralDialog::movePosition2CenterOfParent() { + LOG(INFO) << "parent pos x:" << parent_pos_.x() << "y:" << parent_pos_.y(); + + LOG(INFO) << "parent size width:" << parent_size_.width() + << "height:" << parent_size_.height(); + + if (parent_pos_ != QPoint{0, 0} && parent_size_ != QSize{0, 0}) { + LOG(INFO) << "update current dialog position now"; + QPoint parent_center{parent_pos_.x() + parent_size_.width() / 2, + parent_pos_.y() + parent_size_.height() / 2}; + + // update size of current dialog + size_ = this->size(); + + pos_ = {parent_center.x() - size_.width() / 2, + parent_center.y() - size_.height() / 2}; + this->move(pos_); + } +}
\ No newline at end of file diff --git a/src/ui/dialog/GeneralDialog.h b/src/ui/dialog/GeneralDialog.h index ed6fdb1b..41018105 100644 --- a/src/ui/dialog/GeneralDialog.h +++ b/src/ui/dialog/GeneralDialog.h @@ -45,11 +45,18 @@ class GeneralDialog : public QDialog { */ ~GeneralDialog() override; + protected: /** * */ void setPosCenterOfScreen(); + /** + * @brief + * + */ + void movePosition2CenterOfParent(); + private slots: /** * @@ -65,6 +72,8 @@ class GeneralDialog : public QDialog { std::string name_; ///< QPoint pos_; ///< QSize size_; ///< + QPoint parent_pos_; + QSize parent_size_; }; } // namespace GpgFrontend::UI diff --git a/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp b/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp index 9c2f8003..ed578aa7 100644 --- a/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp +++ b/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp @@ -55,8 +55,12 @@ KeyDetailsDialog::KeyDetailsDialog(const GpgKey& key, QWidget* parent) this->setLayout(mainLayout); this->setWindowTitle(_("Key Details")); this->setModal(true); - this->setMinimumSize({520, 600}); - this->resize(this->minimumSize()); + + // this->setMinimumSize({520, 600}); + + // move to center of the parent + this->movePosition2CenterOfParent(); + this->show(); } } // namespace GpgFrontend::UI diff --git a/src/ui/main_window/GeneralMainWindow.cpp b/src/ui/main_window/GeneralMainWindow.cpp index 73d9fcc3..fb42d71a 100644 --- a/src/ui/main_window/GeneralMainWindow.cpp +++ b/src/ui/main_window/GeneralMainWindow.cpp @@ -146,6 +146,9 @@ void GpgFrontend::UI::GeneralMainWindow::slot_save_settings() noexcept { general_windows_state["window_pos"]["x"] = pos().x(); general_windows_state["window_pos"]["y"] = pos().y(); + // update size of current dialog + size_ = this->size(); + general_windows_state["window_size"]["width"] = size_.width(); general_windows_state["window_size"]["height"] = size_.height(); general_windows_state["window_save"] = true; diff --git a/src/ui/main_window/GeneralMainWindow.h b/src/ui/main_window/GeneralMainWindow.h index 71327100..8995883a 100644 --- a/src/ui/main_window/GeneralMainWindow.h +++ b/src/ui/main_window/GeneralMainWindow.h @@ -54,7 +54,7 @@ class GeneralMainWindow : public QMainWindow { * * @param event */ - void closeEvent(QCloseEvent* event); + void closeEvent(QCloseEvent* event) override; QSize icon_size_{}; ///< int font_size_{}; ///< |