From 42aa8f263a7322d132c8e8c2146373899d16456d Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sun, 27 Feb 2022 21:48:21 +0100 Subject: [PATCH] Qt: store pad settings state and remove max size --- rpcs3/rpcs3qt/gui_settings.h | 1 + rpcs3/rpcs3qt/pad_settings_dialog.cpp | 12 +++++++----- rpcs3/rpcs3qt/pad_settings_dialog.ui | 6 ++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/rpcs3/rpcs3qt/gui_settings.h b/rpcs3/rpcs3qt/gui_settings.h index 6aff35d6c9..21d7b0ccbd 100644 --- a/rpcs3/rpcs3qt/gui_settings.h +++ b/rpcs3/rpcs3qt/gui_settings.h @@ -245,6 +245,7 @@ namespace gui const gui_save loc_language = gui_save(localization, "language", "en"); const gui_save pads_show_emulated = gui_save(pad_settings, "show_emulated_values", false); + const gui_save pads_geometry = gui_save(pad_settings, "geometry", QByteArray()); } /** Class for GUI settings.. diff --git a/rpcs3/rpcs3qt/pad_settings_dialog.cpp b/rpcs3/rpcs3qt/pad_settings_dialog.cpp index 6c147d2754..d43de66779 100644 --- a/rpcs3/rpcs3qt/pad_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/pad_settings_dialog.cpp @@ -203,6 +203,8 @@ pad_settings_dialog::pad_settings_dialog(std::shared_ptr gui_setti pad_settings_dialog::~pad_settings_dialog() { + m_gui_settings->SetValue(gui::pads_geometry, saveGeometry()); + delete ui; if (!Emu.IsStopped()) @@ -219,10 +221,10 @@ void pad_settings_dialog::showEvent(QShowEvent* event) RepaintPreviewLabel(ui->preview_stick_right, ui->slider_stick_right->value(), ui->slider_stick_right->size().width(), 0, 0, 0, 0); // Resize in order to fit into our scroll area - ResizeDialog(); - - // Restrict our inner layout size. This is necessary because redrawing things will slow down the dialog otherwise. - ui->mainLayout->setSizeConstraint(QLayout::SizeConstraint::SetFixedSize); + if (!restoreGeometry(m_gui_settings->GetValue(gui::pads_geometry).toByteArray())) + { + ResizeDialog(); + } QDialog::showEvent(event); } @@ -603,6 +605,7 @@ void pad_settings_dialog::ReactivateButtons() void pad_settings_dialog::RepaintPreviewLabel(QLabel* l, int deadzone, int desired_width, int x, int y, int squircle, double multiplier) const { + desired_width = 100; // Let's keep a fixed size for these labels for now const int deadzone_max = m_handler ? m_handler->thumb_max : 255; // 255 used as fallback. The deadzone circle shall be small. constexpr qreal relative_size = 0.9; @@ -1725,7 +1728,6 @@ void pad_settings_dialog::ResizeDialog() const QSize margin_size(margins.left() + margins.right(), margins.top() + margins.bottom()); resize(tabwidget_size + buttons_size + margin_size + spacing_size); - setMaximumSize(size()); } void pad_settings_dialog::SubscribeTooltip(QObject* object, const QString& tooltip) diff --git a/rpcs3/rpcs3qt/pad_settings_dialog.ui b/rpcs3/rpcs3qt/pad_settings_dialog.ui index 3f9f862411..175cdd73e9 100644 --- a/rpcs3/rpcs3qt/pad_settings_dialog.ui +++ b/rpcs3/rpcs3qt/pad_settings_dialog.ui @@ -2342,6 +2342,9 @@ + + Qt::AlignCenter + @@ -2360,6 +2363,9 @@ + + Qt::AlignCenter +