From e48d868e8cb73f97aef9a5356f3c9dee3bb3c705 Mon Sep 17 00:00:00 2001 From: nerix Date: Sat, 6 Jan 2024 12:28:06 +0100 Subject: [PATCH] fix: Avoid duplicate scale in settings dialog (#5069) --- CHANGELOG.md | 1 + src/widgets/dialogs/SettingsDialog.cpp | 8 +++++++- src/widgets/dialogs/SettingsDialog.hpp | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b1f5876..63dfefac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -108,6 +108,7 @@ - Dev: Refactor Args to be less of a singleton. (#5041) - Dev: Channels without any animated elements on screen will skip updates from the GIF timer. (#5042, #5043, #5045) - Dev: Autogenerate docs/plugin-meta.lua. (#5055) +- Dev: Removed duplicate scale in settings dialog. (#5069) - Dev: Fix `NotebookTab` emitting updates for every message. (#5068) ## 2.4.6 diff --git a/src/widgets/dialogs/SettingsDialog.cpp b/src/widgets/dialogs/SettingsDialog.cpp index 591bfe93..3fe01dfb 100644 --- a/src/widgets/dialogs/SettingsDialog.cpp +++ b/src/widgets/dialogs/SettingsDialog.cpp @@ -52,7 +52,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) this->initUi(); this->addTabs(); this->overrideBackgroundColor_ = QColor("#111111"); - this->scaleChangedEvent(this->scale()); // execute twice to width of item this->addShortcuts(); this->signalHolder_.managedConnect(getApp()->hotkeys->onItemsUpdated, @@ -128,6 +127,8 @@ void SettingsDialog::initUi() .setLayoutType() .withoutMargin() .assign(&this->ui_.tabContainer); + this->ui_.tabContainerContainer->setFixedWidth( + static_cast(150 * this->dpi_)); // right side (pages) centerBox.emplace() @@ -257,6 +258,7 @@ void SettingsDialog::addTab(std::function page, SettingsTabId id, Qt::Alignment alignment) { auto tab = new SettingsDialogTab(this, std::move(page), name, iconPath, id); + tab->setFixedHeight(static_cast(30 * this->dpi_)); this->ui_.tabContainer->addWidget(tab, 0, alignment); this->tabs_.push_back(tab); @@ -390,7 +392,11 @@ void SettingsDialog::scaleChangedEvent(float newDpi) this->setStyleSheet(styleSheet); if (this->ui_.tabContainerContainer) + { this->ui_.tabContainerContainer->setFixedWidth(int(150 * newDpi)); + } + + this->dpi_ = newDpi; } void SettingsDialog::themeChangedEvent() diff --git a/src/widgets/dialogs/SettingsDialog.hpp b/src/widgets/dialogs/SettingsDialog.hpp index 9e574b68..e227223d 100644 --- a/src/widgets/dialogs/SettingsDialog.hpp +++ b/src/widgets/dialogs/SettingsDialog.hpp @@ -77,6 +77,7 @@ private: std::vector tabs_; SettingsDialogTab *selectedTab_{}; SettingsDialogTab *lastSelectedByUser_{}; + float dpi_ = 1.0F; friend class SettingsDialogTab; };