Главный фильтр рисовался иначе, чем слайсовые полосы, причём в CPU-пути
сильнее, чем в GL.
1. Порядок отрисовки. Кромки, несущая и её треугольник у главного шли ПОСЛЕ
кривой спектра, у слайсов — до неё, а в GL-вьюхе весь блок фильтров идёт
перед DrawSpectrumCurve. Из-за этого на CPU главная полоса единственная
лезла поверх сигнала и выглядела жирнее и ярче слайсовых при тех же цвете и
толщине линий. Блок перенесён к слайсам, до кривой: порядок кадра теперь
одинаков у обоих путей.
2. Заливка. Была НЕПРОЗРАЧНОЙ, рядом с просвечивающими слайсовыми смотрелась
плотным блоком. Теперь та же полупрозрачность, что у слайсов; прозрачность
вынесена в общие SPEC_BAND_ALPHA/SPEC_BAND_ALPHA_TX (VfoOverlay, рядом с
палитрой слайсов) — раньше это были четыре магических числа по двум вьюхам.
Осиротевшая FillBandRaw удалена.
3. Цвет. С полупрозрачностью полоса перестала читаться: SpecFilter (34,78,106)
почти совпадает с нижним цветом фонового градиента спектра (31,79,108), и
заливка давала не оттенок, а затемнение — над низом градиента выходило
ровно (32,79,108), то есть фон. Полосе дан свой цвет темы SpecFilterBand:
тёплый янтарь RGB(255,150,40) на тёмной (фон сине-стальной, тёплое на нём
читается) и насыщённый зелёный RGB(60,150,60) на светлой. SpecFilter
остался подложкой подписей AGC — иначе перекрасились бы и они.
4. Слайс B перекрашен из оранжевого в васильковый RGB(97,118,255): с янтарной
полосой главного фильтра оранжевый стал неразличим. Оттенок выбран по
свободному месту в круге: заняты 0°(TX), 31°(полоса), 55°(E), 132°(A),
190°(C), 195°(G), 276°(F), 308°(D); самый широкий промежуток 195..276°,
середина ≈236°. Палитра одна на всё, поэтому вместе с полосой и несущей
перекрашиваются буква слайса на спектре и бейдж во флаге VfoOverlay.
Сборка ewsdr (--ws=qt6) и ewsdrd — ОК. На экране не проверено: нужен эфир со
слайсами; цвета правятся одной строкой (SpecFilterBand в AppTheme,
SLICE_COLORS в VfoOverlay).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
FreqDisplay: добавлено свойство ColorHoverBG вместо хардкода $182838
AppTheme: FreqHover, FreqHoverBG, FreqDimDot для обеих тем
UpdateVfoDisplay: выставляет hover-цвета из текущей темы
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AppTheme.pas: новый файл, TAppTheme record + DarkTheme()/LightTheme()
- FlatSlider: цвета через SetThemeColors вместо хардкода
- SpectrumView: все цвета из TAppTheme (SetTheme)
- SettingsForm: ApplyTheme(T) с рекурсивным обходом контролов
- DeviceForm: SetTheme(T) — перекраска всех элементов включая TEdit
- Settings: SaveTheme/LoadTheme в корневой секции preferences (не привязано к устройству)
- MainForm: тема загружается при старте, сохраняется при изменении
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>