From a88c6a6aef411e127e3c04663dbd330e05c09c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jo=C5=84ski?= Date: Wed, 13 Oct 2021 14:41:56 +0200 Subject: [PATCH] [BH-932] Hide arrows on NumListItem border values Hide arrows on NumListItem border values --- .../apps-common/widgets/BellBaseLayout.cpp | 2 ++ .../include/common/widgets/ListItems.hpp | 4 +++ .../apps/common/src/widgets/ListItems.cpp | 27 ++++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/module-apps/apps-common/widgets/BellBaseLayout.cpp b/module-apps/apps-common/widgets/BellBaseLayout.cpp index 98122bacfa5464d260bac9eb95c3e71a1b82dec6..09a66a218285225fe23d105ff466a003b29f740c 100644 --- a/module-apps/apps-common/widgets/BellBaseLayout.cpp +++ b/module-apps/apps-common/widgets/BellBaseLayout.cpp @@ -123,5 +123,7 @@ namespace gui { setArrowVisible(BellBaseLayout::Arrow::Left, !minCondition); setArrowVisible(BellBaseLayout::Arrow::Right, !maxCondition); + centerThreeBox->firstBox->resizeItems(); + centerThreeBox->lastBox->resizeItems(); } } // namespace gui diff --git a/products/BellHybrid/apps/common/include/common/widgets/ListItems.hpp b/products/BellHybrid/apps/common/include/common/widgets/ListItems.hpp index 87ca1fc99ddb5901852141516365ababed997112..e34880a2932487ac77f7e058686f55f7f7c5e569 100644 --- a/products/BellHybrid/apps/common/include/common/widgets/ListItems.hpp +++ b/products/BellHybrid/apps/common/include/common/widgets/ListItems.hpp @@ -41,6 +41,8 @@ namespace gui private: UIntegerSpinner *spinner{}; + + void setArrowsVisibility(UIntegerSpinner::Range range); }; class NumWithStringListItem : public BellSideListItemWithCallbacks @@ -61,6 +63,8 @@ namespace gui TextFixedSize *bottomText{}; const UTF8 offStr; const UTF8 minStr; + + void setArrowsVisibility(const NumWithStringSpinner::Range &range); }; class UTF8ListItem : public BellSideListItemWithCallbacks diff --git a/products/BellHybrid/apps/common/src/widgets/ListItems.cpp b/products/BellHybrid/apps/common/src/widgets/ListItems.cpp index ea3cd999e2e9fb4ac675ff4162c9444fb57ee389..6a8415e736fec66677e7f798b66cf1f2f49c2147 100644 --- a/products/BellHybrid/apps/common/src/widgets/ListItems.cpp +++ b/products/BellHybrid/apps/common/src/widgets/ListItems.cpp @@ -54,6 +54,15 @@ namespace gui getValue = [&model, this]() { model.setValue(spinner->getCurrentValue()); }; setValue = [&model, this]() { spinner->setCurrentValue(model.getValue()); }; + + setValue(); + setArrowsVisibility(range); + + inputCallback = [&, range](Item &item, const InputEvent &event) { + auto ret = body->onInput(event); + setArrowsVisibility(range); + return ret; + }; } void NumListItem::setOnValueChanged(std::function &&cb) { @@ -64,6 +73,12 @@ namespace gui return spinner->getCurrentValue(); } + void NumListItem::setArrowsVisibility(UIntegerSpinner::Range range) + { + const auto selectedVal = spinner->getCurrentValue(); + body->setMinMaxArrowsVisibility(selectedVal == range.min, selectedVal == range.max); + } + NumWithStringListItem::NumWithStringListItem(AbstractSettingsModel &model, NumWithStringSpinner::Range range, const std::string &topDescription, @@ -87,9 +102,10 @@ namespace gui bottomText->setText(bottomDescription); bottomText->drawUnderline(false); - inputCallback = [&](Item &item, const InputEvent &event) { + inputCallback = [&, range](Item &item, const InputEvent &event) { const auto result = body->onInput(event); bottomText->setVisible(spinner->getCurrentValue().getValue().has_value()); + setArrowsVisibility(range); return result; }; @@ -112,6 +128,9 @@ namespace gui spinner->setCurrentValue(Value{minStr}); } }; + + setValue(); + setArrowsVisibility(range); } bool NumWithStringListItem::isOff() const @@ -119,6 +138,12 @@ namespace gui return not spinner->getCurrentValue().getValue().has_value(); } + void NumWithStringListItem::setArrowsVisibility(const NumWithStringSpinner::Range &range) + { + const auto selectedVal = spinner->getCurrentValue(); + body->setMinMaxArrowsVisibility(selectedVal == range.front(), selectedVal == range.back()); + } + UTF8ListItem::UTF8ListItem(AbstractSettingsModel &model, UTF8Spinner::Range range, const std::string &topDescription)