fix(ui): sync main slice controls with panel

This commit is contained in:
2026-07-14 20:28:10 +03:00
parent b7dd57c64f
commit 53aef502e9
2 changed files with 6 additions and 46 deletions
+5 -46
View File
@@ -5342,8 +5342,6 @@ begin
end;
procedure TMainForm.OnModeFilterSelect(Mode: Integer; FilterBW: Integer);
var
Idx: Integer;
begin
// Событие пришло от флага слайса (B+) — маршрутизируем в slice-API, главный не трогаем.
if CurSliceId <> 0 then
@@ -5353,50 +5351,11 @@ begin
LayoutFlagsAllPans;
Exit;
end;
FController.FMode := Mode;
FController.FFilterBW := FilterBW;
case Mode of
MODE_FM:
begin
FController.FFilter := FILT_FM_DEF;
for Idx := 0 to FILT_FM_COUNT - 1 do
if FILT_FM_BW[Idx] = FilterBW then
begin
FController.FFilter := Idx;
FController.FFMDeviation := FILT_FM_DEV[Idx];
Break;
end;
end;
MODE_WFM:
begin
FController.FFilter := FILT_WFM_DEF;
for Idx := 0 to FILT_WFM_COUNT - 1 do
if FILT_WFM_BW[Idx] = FilterBW then
begin
FController.FFilter := Idx;
Break;
end;
end;
MODE_DMR:
begin
FController.FFilter := 0;
FController.FFilterBW := FILT_DMR_BW;
FController.FFMDeviation := DMR_FM_DEV;
end;
end;
if FController.FWDSPReady then
begin
FController.FDSPEngine.SetMode(FController.FMode);
FController.ApplyModeFilter;
end;
SyncSpecViewFreq;
if Assigned(FVfoOverlay) and FVfoOverlay.Visible then
begin
FVfoOverlay.SetState(FController.FMode, FController.FFilterBW, FController.FVfoA, FController.FLastSMeter);
FVfoOverlay.SetDSPState(FController.FNRMode, FController.FNBMode, FController.FSNB, FController.FANF, FController.FAGCMode);
FVfoOverlay.SetSquelchState(FController.FFMSQOn, FController.FFMSQLevel);
FPan.LayoutFlags; // перепозиционируем при смене LSB↔USB
end;
// Main flag A and the left panel edit the same receiver. Use the public
// controller commands so rfMode/rfFilter repaint every duplicate control.
if Mode <> FController.FMode then FController.SetMode(Mode);
FController.SetFilterBW(FilterBW);
FPan.LayoutFlags; // перепозиционируем при смене LSB↔USB
end;
procedure TMainForm.OnVfoOverlayDSPChange(NRMode, NBMode: Integer; SNBOn, ANFOn: Boolean);