~aleteoryx/muditaos

157cceeb8749cf195e03abbf0daf54467248ef08 — Mateusz Piesta 3 years ago fd5bef0
[BH-1542] Stabilize the clock position

Added leading zero when displaying
1-digit number.
M module-apps/apps-common/widgets/DigitsContainer.cpp => module-apps/apps-common/widgets/DigitsContainer.cpp +8 -4
@@ 8,6 8,12 @@
namespace gui
{

    std::size_t minStringLength(const std::uint32_t number)
    {
        /// Add leading zero to 1-digit numbers
        return (number < 100) ? 2 : 3;
    }

    void setDigits(std::string text, const DigitsContainer &container, DimensionsParams params)
    {
        std::for_each(std::crbegin(container.digits),


@@ 33,7 39,7 @@ namespace gui
        constexpr auto rangeGuard = 1000;
        minutes %= rangeGuard;

        setDigits(std::to_string(minutes), *this, params);
        setDigits(utils::addLeadingZeros(std::to_string(minutes), minStringLength(minutes)), *this, params);
    }

    void DigitsContainer::setSecondsBox(std::uint32_t seconds, DimensionsParams params)


@@ 41,9 47,7 @@ namespace gui
        constexpr auto rangeGuard = 100;
        seconds %= rangeGuard;

        std::string text = utils::addLeadingZeros(std::to_string(seconds), digits.size());

        setDigits(std::move(text), *this, params);
        setDigits(utils::addLeadingZeros(std::to_string(seconds), digits.size()), *this, params);
    }

} // namespace gui

M module-apps/tests/widgets/test-DigitsContainer.cpp => module-apps/tests/widgets/test-DigitsContainer.cpp +2 -2
@@ 51,8 51,8 @@ TEST(DigitsContainerTest, setMinutesBox)
                                                                {1233433, "433"s},
                                                                {99, "99"s},
                                                                {10, "10"s},
                                                                {1, "1"s},
                                                                {0, "0"s}};
                                                                {1, "01"s},
                                                                {0, "00"s}};
    gui::HBox box{};
    auto container = initContainer<3>(box);