aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2022-11-26 11:19:19 +0000
committerSaturneric <[email protected]>2022-11-26 11:19:19 +0000
commitcb299a2b9c18bf80879045f8e99489d7146d9eaf (patch)
tree87bf2161c1a2b9e9a97eb7ce6ee0cb63d6ff9ef2
parentfeat(doc): update contract info (diff)
downloadGpgFrontend-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.cpp8
-rw-r--r--src/ui/dialog/GeneralDialog.cpp38
-rw-r--r--src/ui/dialog/GeneralDialog.h9
-rw-r--r--src/ui/dialog/keypair_details/KeyDetailsDialog.cpp8
-rw-r--r--src/ui/main_window/GeneralMainWindow.cpp3
-rw-r--r--src/ui/main_window/GeneralMainWindow.h2
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_{}; ///<