@@ -564,16 +564,14 @@ void LiveDateTime::set_seconds_enabled(bool new_value) {
564564
565565/* BigFrequency **********************************************************/
566566
567- BigFrequency::BigFrequency (
568- Rect parent_rect,
569- rf::Frequency frequency)
570- : Widget{parent_rect},
571- _frequency{frequency} {
572- }
567+ BigFrequency::BigFrequency (Rect parent_rect, rf::Frequency frequency)
568+ : Widget{parent_rect}, _frequency{frequency} {}
573569
574570void BigFrequency::set (const rf::Frequency frequency) {
575- _frequency = frequency;
576- set_dirty ();
571+ if (_frequency != frequency) {
572+ _frequency = frequency;
573+ set_dirty ();
574+ }
577575}
578576
579577void BigFrequency::paint (Painter& painter) {
@@ -583,64 +581,60 @@ void BigFrequency::paint(Painter& painter) {
583581 Point digit_pos;
584582 ui::Color segment_color;
585583
586- if (_frequency != _previous_frequency) {
587- _previous_frequency = _frequency;
588-
589- rf::Frequency frequency{_frequency};
590- const auto rect = screen_rect (); // why not use screen_rect() directly for width, ...? it may be too small, but ...
584+ rf::Frequency frequency{_frequency};
585+ const auto rect = screen_rect (); // why not use screen_rect() directly for width, ...? it may be too small, but ...
591586
592- // Erase
593- painter.fill_rectangle (
594- {{0 , rect.location ().y ()}, {screen_width, 52 }},
595- Theme::getInstance ()->bg_darkest ->background );
596-
597- // Prepare digits
598- if (!frequency) {
599- digits.fill (10 ); // ----.---
600- digit_pos = {(screen_width - ((7 * digit_width) + 8 )) / 2 , rect.location ().y ()};
601- } else {
602- frequency /= 1000 ; // GMMM.KKK(uuu)
587+ // Erase
588+ painter.fill_rectangle (
589+ {{0 , rect.location ().y ()}, {screen_width, 52 }},
590+ Theme::getInstance ()->bg_darkest ->background );
603591
604- for (i = 0 ; i < 7 ; i++) {
605- digits[6 - i] = frequency % 10 ;
606- frequency /= 10 ;
607- }
592+ // Prepare digits
593+ if (!frequency) {
594+ digits.fill (10 ); // ----.---
595+ digit_pos = {(screen_width - ((7 * digit_width) + 8 )) / 2 , rect.location ().y ()};
596+ } else {
597+ frequency /= 1000 ; // GMMM.KKK(uuu)
608598
609- // Remove leading zeros
610- for (i = 0 ; i < 3 ; i++) {
611- if (!digits[i])
612- digits[i] = 16 ; // "Don't draw" code
613- else
614- break ;
615- }
599+ for (i = 0 ; i < 7 ; i++) {
600+ digits[6 - i] = frequency % 10 ;
601+ frequency /= 10 ;
602+ }
616603
617- digit_pos = {(Coord)(screen_width - ((7 * digit_width) + 8 ) - (i * digit_width)) / 2 , rect.location ().y ()};
604+ // Remove leading zeros
605+ for (i = 0 ; i < 3 ; i++) {
606+ if (!digits[i])
607+ digits[i] = 16 ; // "Don't draw" code
608+ else
609+ break ;
618610 }
619611
620- segment_color = style ().foreground ;
612+ digit_pos = {(Coord)(screen_width - ((7 * digit_width) + 8 ) - (i * digit_width)) / 2 , rect.location ().y ()};
613+ }
621614
622- // Draw
623- for (i = 0 ; i < 7 ; i++) {
624- digit = digits[i];
615+ segment_color = style ().foreground ;
625616
626- if (digit < 16 ) {
627- digit_def = segment_font[(uint8_t )digit];
617+ // Draw
618+ for (i = 0 ; i < 7 ; i++) {
619+ digit = digits[i];
628620
629- for (size_t s = 0 ; s < 7 ; s++) {
630- if (digit_def & 1 )
631- painter.fill_rectangle ({digit_pos + segments[s].location (), segments[s].size ()}, segment_color);
632- digit_def >>= 1 ;
633- }
634- }
621+ if (digit < 16 ) {
622+ digit_def = segment_font[(uint8_t )digit];
635623
636- if (i == 3 ) {
637- // Dot
638- painter.fill_rectangle ({digit_pos + Point (34 , 48 ), {4 , 4 }}, segment_color);
639- digit_pos += {(digit_width + 8 ), 0 };
640- } else {
641- digit_pos += {digit_width, 0 };
624+ for (size_t s = 0 ; s < 7 ; s++) {
625+ if (digit_def & 1 )
626+ painter.fill_rectangle ({digit_pos + segments[s].location (), segments[s].size ()}, segment_color);
627+ digit_def >>= 1 ;
642628 }
643629 }
630+
631+ if (i == 3 ) {
632+ // Dot
633+ painter.fill_rectangle ({digit_pos + Point (34 , 48 ), {4 , 4 }}, segment_color);
634+ digit_pos += {(digit_width + 8 ), 0 };
635+ } else {
636+ digit_pos += {digit_width, 0 };
637+ }
644638 }
645639}
646640
0 commit comments