~aleteoryx/muditaos

e1c7b1c6356db0efffc6cfab0fbb76d54d6385e5 — Mateusz Piesta 3 years ago 720f56e
[BH-1499] Crash on meditation enter

Fixed.
M products/BellHybrid/apps/application-bell-meditation-timer/windows/MeditationTimerWindow.cpp => products/BellHybrid/apps/application-bell-meditation-timer/windows/MeditationTimerWindow.cpp +6 -14
@@ 40,7 40,10 @@ namespace app::meditation
        spinner = new UIntegerSpinner(
            UIntegerSpinner::range{presenter->getMinValue(), presenter->getMaxValue(), presenter->getStepValue()},
            gui::Boundaries::Fixed);
        spinner->onValueChanged = [this](const auto val) { this->onValueChanged(val); };
        spinner->onValueChanged = [this](const auto val) {
            body->setMinMaxArrowsVisibility(spinner->is_min(), spinner->is_max());
            bottomDescription->setText(presenter->getTimeUnitName(val));
        };
        spinner->setMaximumSize(style::bell_base_layout::w, style::bell_base_layout::h);
        spinner->setFont(app::meditationStyle::mtStyle::text::font);
        spinner->setAlignment(Alignment(Alignment::Horizontal::Center, Alignment::Vertical::Center));


@@ 48,18 51,14 @@ namespace app::meditation
        spinner->setFocusEdges(RectangleEdge::None);
        body->getCenterBox()->addWidget(spinner);

        auto currentValue = presenter->getCurrentValue();
        spinner->set_value(currentValue);
        body->setMinMaxArrowsVisibility(currentValue == presenter->getMinValue(),
                                        currentValue == presenter->getMaxValue());

        bottomDescription = new Label(body->lastBox);
        bottomDescription->setMaximumSize(style::bell_base_layout::w, style::bell_base_layout::outer_layouts_h);
        bottomDescription->setFont(app::meditationStyle::mtStyle::minute::font);
        bottomDescription->setEdges(RectangleEdge::None);
        bottomDescription->activeItem = false;
        bottomDescription->setAlignment(Alignment(Alignment::Horizontal::Center, Alignment::Vertical::Top));
        bottomDescription->setText(presenter->getTimeUnitName(spinner->value()));

        spinner->set_value(presenter->getCurrentValue());

        setFocusItem(spinner);
        body->resize();


@@ 78,11 77,4 @@ namespace app::meditation

        return AppWindow::onInput(inputEvent);
    }

    void MeditationTimerWindow::onValueChanged(const std::uint32_t currentValue)
    {
        body->setMinMaxArrowsVisibility(currentValue == presenter->getMinValue(),
                                        currentValue == presenter->getMaxValue());
        bottomDescription->setText(presenter->getTimeUnitName(spinner->value()));
    }
} // namespace app::meditation

M products/BellHybrid/apps/application-bell-meditation-timer/windows/MeditationTimerWindow.hpp => products/BellHybrid/apps/application-bell-meditation-timer/windows/MeditationTimerWindow.hpp +0 -2
@@ 26,8 26,6 @@ namespace app::meditation
        void buildInterface() override;
        bool onInput(const gui::InputEvent &inputEvent) override;

        void onValueChanged(const std::uint32_t currentValue);

      private:
        std::unique_ptr<app::meditation::MeditationTimerContract::Presenter> presenter;
        gui::BellBaseLayout *body{};