From aadedbb6101293ef9cf6b9b60f062b4cf3839703 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Thu, 2 Apr 2026 19:04:56 +0200 Subject: [PATCH] Enable setting min and max list size --- lib/utils/list-editor.cpp | 23 +++++++++++++++++++++++ lib/utils/list-editor.hpp | 4 ++++ 2 files changed, 27 insertions(+) diff --git a/lib/utils/list-editor.cpp b/lib/utils/list-editor.cpp index cb7b1353..b9252c9b 100644 --- a/lib/utils/list-editor.cpp +++ b/lib/utils/list-editor.cpp @@ -44,6 +44,16 @@ void ListEditor::SetPlaceholderText(const QString &text) UpdatePlaceholder(); } +void ListEditor::SetMinListHeight(int value) +{ + _minHeight = value; +} + +void ListEditor::SetMaxListHeight(int value) +{ + _maxHeight = value; +} + void ListEditor::UpdatePlaceholder() { bool visible = !_placeholder->text().isEmpty() && _list->count() == 0; @@ -104,11 +114,24 @@ int ListEditor::GetIndexOfSignal() const void ListEditor::UpdateListSize() { SetHeightToContentHeight(_list); + if (_list->count() == 0 && !_placeholder->text().isEmpty()) { auto height = _list->fontMetrics().height() * 3; _list->setMinimumHeight(height); _list->setMaximumHeight(height); } + + if (_minHeight >= 0 && _list->minimumHeight() != _minHeight) { + _list->setMinimumHeight(_minHeight); + } + + if (_maxHeight >= 0 && _list->maximumHeight() != _maxHeight) { + if (_list->minimumHeight() > _maxHeight) { + _list->setMinimumHeight(_maxHeight); + } + _list->setMaximumHeight(_maxHeight); + } + adjustSize(); updateGeometry(); } diff --git a/lib/utils/list-editor.hpp b/lib/utils/list-editor.hpp index 49b87e9f..2bacb310 100644 --- a/lib/utils/list-editor.hpp +++ b/lib/utils/list-editor.hpp @@ -15,6 +15,8 @@ public: ListEditor(QWidget *parent = nullptr, bool reorder = true); int count() const { return _list->count(); }; void SetPlaceholderText(const QString &text); + void SetMinListHeight(int); + void SetMaxListHeight(int); protected: void showEvent(QShowEvent *); @@ -38,6 +40,8 @@ protected: private: QLabel *_placeholder; + int _minHeight = -1; + int _maxHeight = -1; }; } // namespace advss