Move WF AGC/NF from main form buttons to Settings → Waterfall checkboxes

Replaced the WF AGC and WF NF toggle buttons in the main panel with
"Waterfall AGC" and "Waterfall NF" checkboxes in the Settings form
Waterfall tab (AGC & Noise Floor group). Settings are global, defaults
remain AGC=on, NF=off.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-15 14:59:10 +03:00
co-authored by Claude Sonnet 4.6
parent e8561dcc18
commit 88ceee824d
2 changed files with 56 additions and 24 deletions
+11 -24
View File
@@ -342,8 +342,6 @@ type
BtnSNB: TFlatButton;
BtnANF: TFlatButton;
BtnMute: TFlatButton;
BtnWfAGC: TFlatButton;
BtnWfNF: TFlatButton;
PanelSMeterRight: TPanel;
PbSMeterRight: TPaintBox;
@@ -577,8 +575,6 @@ type
procedure ActivateXvtrBand(Idx: Integer);
procedure DeactivateXvtr;
// -------------------------------------------------------------------------
procedure BtnWfAGCClick(Sender: TObject);
procedure BtnWfNFClick(Sender: TObject);
procedure BtnHidePanelClick(Sender: TObject);
procedure BtnSettingsClick(Sender: TObject);
procedure PositionVfoOverlay;
@@ -612,6 +608,7 @@ type
SpecAvgTimeMS: Double);
procedure ApplyWaterfallParams(WfDet, WfAvgMode: Integer;
WfAvgTimeMS, WfHigh, WfLow, WfAGCOffset: Double);
procedure ApplyWfAGCNF(WfAGC, WfNF: Boolean);
procedure ApplyGridParams(RefLevel, Range, GridStep: Double);
// Пушит активные grid-параметры (RX или TX в зависимости от FTransmitting)
// в FSpecView и сбрасывает кэш сетки. Вызывается при смене RX↔TX и при
@@ -1646,7 +1643,7 @@ begin
// RX controls
PanelRX := TPanel.Create(Self);
PanelRX.Parent := PanelLeft;
PanelRX.SetBounds(0, Y, LEFT_W, 150);
PanelRX.SetBounds(0, Y, LEFT_W, 122);
PanelRX.BevelOuter := bvNone;
// AGC mode — 5 кнопок в ряд
@@ -1692,10 +1689,8 @@ begin
BtnSNB := MakeBtn(PanelRX, 'SNB', 2*W+6, 96, W, BTN_SM, BtnSNBClick);
BtnANF := MakeBtn(PanelRX, 'ANF', 3*W+8, 96, W, BTN_SM, BtnANFClick);
BtnMute:= MakeBtn(PanelRX, 'MUTE', 4*W+10, 96, W, BTN_SM, BtnMuteClick);
BtnWfAGC := MakeBtn(PanelRX, 'WF AGC', 2, 122, (LEFT_W - 6) div 2, BTN_SM, BtnWfAGCClick);
BtnWfNF := MakeBtn(PanelRX, 'WF NF', 4 + (LEFT_W - 6) div 2, 122, (LEFT_W - 6) div 2, BTN_SM, BtnWfNFClick);
Inc(Y, 154);
Inc(Y, 126);
// S-Meter
@@ -2294,8 +2289,6 @@ begin
StyleButton(BtnSNB, BtnSNB.Active);
StyleButton(BtnANF, BtnANF.Active);
StyleButton(BtnMute, BtnMute.Active);
StyleButton(BtnWfAGC, BtnWfAGC.Active);
StyleButton(BtnWfNF, BtnWfNF.Active);
StyleButton(BtnMOX, BtnMOX.Active);
StyleButton(BtnTUN, BtnTUN.Active);
@@ -3519,8 +3512,8 @@ begin
BtnNB.Tag := EnsureRange(G_Settings.NBMode, 0, 2); UpdateNBButton;
BtnSNB.Tag := Ord(G_Settings.SNBEnabled); UpdateSNBButton;
BtnANF.Tag := Ord(G_Settings.ANFEnabled); UpdateANFButton;
FWfAGCEnabled := G_Settings.WfAGCEnabled; StyleButton(BtnWfAGC, FWfAGCEnabled);
FWfNFEnabled := G_Settings.WfNFEnabled; StyleButton(BtnWfNF, FWfNFEnabled);
FWfAGCEnabled := G_Settings.WfAGCEnabled;
FWfNFEnabled := G_Settings.WfNFEnabled;
FWfManualHigh := G_Settings.WfManualHigh;
FWfManualLow := G_Settings.WfManualLow;
FWfAGCOffset := G_Settings.WfAGCOffset;
@@ -4728,18 +4721,12 @@ begin
end;
procedure TMainForm.BtnWfAGCClick(Sender: TObject);
procedure TMainForm.ApplyWfAGCNF(WfAGC, WfNF: Boolean);
begin
FWfAGCEnabled := not FWfAGCEnabled;
StyleButton(BtnWfAGC, FWfAGCEnabled);
FWfAGCEnabled := WfAGC;
FWfNFEnabled := WfNF;
FSpecView.WfAGCEnabled := FWfAGCEnabled;
end;
procedure TMainForm.BtnWfNFClick(Sender: TObject);
begin
FWfNFEnabled := not FWfNFEnabled;
StyleButton(BtnWfNF, FWfNFEnabled);
FSpecView.WfNFEnabled := FWfNFEnabled;
FSpecView.WfNFEnabled := FWfNFEnabled;
end;
procedure TMainForm.BtnHidePanelClick(Sender: TObject);
@@ -5116,7 +5103,6 @@ end;
procedure TMainForm.SyncWebWfAGC;
begin
FWfAGCEnabled := FWebSyncBool;
StyleButton(BtnWfAGC, FWfAGCEnabled);
FSpecView.WfAGCEnabled := FWfAGCEnabled;
end;
@@ -5130,7 +5116,6 @@ end;
procedure TMainForm.SyncWebWfNF;
begin
FWfNFEnabled := FWebSyncBool;
StyleButton(BtnWfNF, FWfNFEnabled);
FSpecView.WfNFEnabled := FWfNFEnabled;
end;
@@ -6123,6 +6108,7 @@ begin
SF.OnTXChange := OnTXSettingsChange;
SF.OnAlexChange := OnAlexSettingsChange;
SF.OnXvtrChange := OnXvtrSettingsChange;
SF.OnWfAGCNFChange := ApplyWfAGCNF;
end;
SF := TSettingsForm(FSettingsForm);
SF.LoadTXSettings(FTXSettings);
@@ -6142,6 +6128,7 @@ begin
// Перечисляем PA устройства
SF.RefreshAudioDevices(FAudioOut, FAudioIn);
SF.LoadVisibility(FShowSpectrum, FShowWaterfall);
SF.LoadWfAGCNF(FWfAGCEnabled, FWfNFEnabled);
SF.LoadFPS(FDisplayFPS);
SF.LoadLightTheme(FLightTheme);
SF.LoadFreqMhzDigits(FFreqMhzDigits);