From de3212cba5f1291bc6353558d1b12d1dccd43a2e Mon Sep 17 00:00:00 2001 From: sommermorgentraum <24917424+zxkmm@users.noreply.github.com> Date: Tue, 22 Apr 2025 21:14:31 +0800 Subject: [PATCH] spectrum cursor opt again (#2634) * spectrum cursor opt * fmt * remove blink * remove End event * cleanup --- firmware/application/ui/ui_spectrum.cpp | 28 +++++++------------------ firmware/application/ui/ui_spectrum.hpp | 3 --- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/firmware/application/ui/ui_spectrum.cpp b/firmware/application/ui/ui_spectrum.cpp index 533d9529b..8553283aa 100644 --- a/firmware/application/ui/ui_spectrum.cpp +++ b/firmware/application/ui/ui_spectrum.cpp @@ -123,14 +123,12 @@ void FrequencyScale::paint(Painter& painter) { draw_filter_ranges(painter, r); draw_frequency_ticks(painter, r); - if (_blink) { - const Rect r_cursor{ - 118 + cursor_position, r.bottom() - filter_band_height, - 5, filter_band_height}; - painter.fill_rectangle( - r_cursor, - Color::red()); - } + const Rect r_cursor{ + 118 + cursor_position, r.bottom() - filter_band_height, + 5, filter_band_height}; + painter.fill_rectangle( + r_cursor, + Color::red()); } void FrequencyScale::clear() { @@ -214,16 +212,10 @@ void FrequencyScale::draw_filter_ranges(Painter& painter, const Rect r) { } void FrequencyScale::on_focus() { - _blink = true; - on_tick_second(); - signal_token_tick_second = rtc_time::signal_tick_second += [this]() { - this->on_tick_second(); - }; + set_dirty(); } void FrequencyScale::on_blur() { - rtc_time::signal_tick_second -= signal_token_tick_second; - _blink = false; set_dirty(); } @@ -243,6 +235,7 @@ bool FrequencyScale::on_key(const KeyEvent key) { if (on_select) { on_select((cursor_position * spectrum_sampling_rate) / 240); cursor_position = 0; + set_dirty(); return true; } } @@ -259,11 +252,6 @@ bool FrequencyScale::on_touch(const TouchEvent touch) { return true; } -void FrequencyScale::on_tick_second() { - set_dirty(); - _blink = !_blink; -} - /* WaterfallWidget *********************************************************/ // TODO: buffer and use "paint" instead of immediate drawing would help with // preventing flicker from drawing. Would use more RAM however. diff --git a/firmware/application/ui/ui_spectrum.hpp b/firmware/application/ui/ui_spectrum.hpp index 1714a6c7e..807c55058 100644 --- a/firmware/application/ui/ui_spectrum.hpp +++ b/firmware/application/ui/ui_spectrum.hpp @@ -91,9 +91,6 @@ class FrequencyScale : public Widget { private: static constexpr int filter_band_height = 4; - void on_tick_second(); - - bool _blink{false}; int32_t cursor_position{0}; SignalToken signal_token_tick_second{}; int spectrum_sampling_rate{0};