mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
docs(slices): record flag UI polish (packing, band letters, theming)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+20
-4
@@ -1,8 +1,9 @@
|
|||||||
# Мультислайсы (несколько приёмных фильтров, как во FlexRadio)
|
# Мультислайсы (несколько приёмных фильтров, как во FlexRadio)
|
||||||
|
|
||||||
Статус: **Этапы 1 + 2 РЕАЛИЗОВАНЫ и ЗАКОММИЧЕНЫ** (ветка `feature/multislice`,
|
Статус: **Этапы 1 + 2 РЕАЛИЗОВАНЫ и ЗАКОММИЧЕНЫ** (ветка `feature/multislice`,
|
||||||
коммит `1527b0f`; проверено на эфире). Этап 3 (аппаратные DDC для слайса вне
|
коммит `1527b0f`; проверено на эфире) + UI-полировка флагов (`30a6616`,
|
||||||
захваченной полосы) — не начат. Ниже: что вошло по факту + дизайн/остаток.
|
`3049f91`, `a3ac459`). Этап 3 (аппаратные DDC для слайса вне захваченной
|
||||||
|
полосы) — не начат. Ниже: что вошло по факту + дизайн/остаток.
|
||||||
|
|
||||||
## Что реализовано (Этапы 1 + 2)
|
## Что реализовано (Этапы 1 + 2)
|
||||||
|
|
||||||
@@ -17,10 +18,25 @@
|
|||||||
Буквы доп. слайсов начинаются с `'B'` (A = главный приёмник).
|
Буквы доп. слайсов начинаются с `'B'` (A = главный приёмник).
|
||||||
- **UI** — по флагу `TVfoOverlay` на слайс (буква-бейдж, «×», fly-out MODE/DSP/AUD,
|
- **UI** — по флагу `TVfoOverlay` на слайс (буква-бейдж, «×», fly-out MODE/DSP/AUD,
|
||||||
vol/mute/split/TX, S-метр), маркеры полосы фильтра слайса в **обоих** рендерерах
|
vol/mute/split/TX, S-метр), маркеры полосы фильтра слайса в **обоих** рендерерах
|
||||||
(GL `DrawSliceFilterMarkers` + CPU), drag-ретюн несущей, колесо над флагом,
|
(GL `DrawSliceFilterMarkers` + CPU), drag-ретюн несущей, колесо над флагом.
|
||||||
позиционирование СБОКУ от полосы фильтра с флипом (как у главного флага).
|
|
||||||
Ctrl+ЛКМ по спектру = добавить слайс. Флаг главного (A) виден когда скрыта
|
Ctrl+ЛКМ по спектру = добавить слайс. Флаг главного (A) виден когда скрыта
|
||||||
левая панель ЛИБО есть слайсы B+ (синхронизируется с правками с левой панели).
|
левая панель ЛИБО есть слайсы B+ (синхронизируется с правками с левой панели).
|
||||||
|
- **UI-полировка флагов** (`30a6616`, `3049f91`, `a3ac459`):
|
||||||
|
- `MainForm.LayoutFlags` — единый packing всех флагов (A+B+) в один ряд: каждый
|
||||||
|
рядом со своей полосой фильтра, но флаги НЕ наезжают (сосед слева толкает
|
||||||
|
правого; обратный поджим при выходе за правый край). `PositionVfoOverlay`/
|
||||||
|
`PositionSliceFlags` — тонкие обёртки над ним.
|
||||||
|
- Идентификация уехавшего флага — буквой слайса по центру его полосы фильтра
|
||||||
|
сверху (`DrawBandLetter` CPU + `DrawBandLetterGL` GL с кэшем текстур букв);
|
||||||
|
у главного A буква только когда есть слайсы.
|
||||||
|
- Палитра слайсов `VfoOverlay.SliceColor(L)` (A зелёный … F фиолетовый, не
|
||||||
|
красный — не путать с TX): один цвет для бейджа-буквы во флаге и для буквы
|
||||||
|
на полосе.
|
||||||
|
- Кнопки флага — общий `FlatButton.PaintFlatButton` (плоские, как левая
|
||||||
|
панель; без «стеклянного» градиента), центровка бейджа через `TextRect`.
|
||||||
|
- Флаг полностью тематизирован: структурные `CLR_*` выводятся из `TAppTheme`
|
||||||
|
(`ApplyThemeColors`), тема раздаётся из `ApplyDarkTheme` + `WireOverlayEvents`.
|
||||||
|
Статус-акценты (TX/SPLIT) фиксированы намеренно.
|
||||||
- **Перф** — S-метр развязан с кэшем «хрома» флага (`FMeterDirty` + meter-only
|
- **Перф** — S-метр развязан с кэшем «хрома» флага (`FMeterDirty` + meter-only
|
||||||
`RefreshMeter` через `EnsureRendered`); `InvalidateVfoOverlay` не дёргает
|
`RefreshMeter` через `EnsureRendered`); `InvalidateVfoOverlay` не дёргает
|
||||||
глобальный перезалив оверлеев на тик метра.
|
глобальный перезалив оверлеев на тик метра.
|
||||||
|
|||||||
Reference in New Issue
Block a user