From c8781bee6aa7e0c80a69e7fca6d3107a479500bf Mon Sep 17 00:00:00 2001 From: Vladimir Date: Tue, 4 Aug 2026 14:50:06 +0300 Subject: [PATCH] =?UTF-8?q?fix(tx):=20=D0=BF=D0=BE=D0=BB=D0=BE=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=20TX-=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=80=D0=B8=D1=81=D0=BE=D0=B2=D1=8B=D0=B2?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D1=80=D0=B8=20=D1=81?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B5=20=D0=BF=D1=80=D0=BE=D1=84=D0=B8=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B8=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B5=20Low/Hi?= =?UTF-8?q?gh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Кромки TX-полосы в SpectrumView обновляла только PushFilterEdgesToView, которую звали из rfMOX/rfMode/rfFilter. Смена TX-профиля (rfTXProfile) и правка Low/High во вкладке Transmit перешивали WDSP, но вьюха продолжала рисовать старую полосу до следующего MOX или смены режима — на передаче эти события не приходят вовсе. Зовём PushFilterEdgesToView из RenderTXProfile и из OnTXSettingsChange (кромки берутся из движка уже со знаком боковой, TXSignedEdges). Кадр форсируем через MainForm.FSpectrumDirty — он же покрывает TX со слайса, где FTXOverlay=False, а полоса слайса читает те же FTXEdgeLo/Hi. Co-Authored-By: Claude Opus 5 --- MainForm.pas | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MainForm.pas b/MainForm.pas index a0fc03b..c487c9a 100644 --- a/MainForm.pas +++ b/MainForm.pas @@ -5689,6 +5689,10 @@ begin else BtnTXProfile.Caption := 'TX Profile'; BtnTXProfile.Invalidate; + // Профиль несёт кромки TX-фильтра: на передаче красная полоска обязана + // переехать сразу, а не ждать следующего rfMOX/rfFilter (их на TX не будет). + PushFilterEdgesToView; + FSpectrumDirty := True; if FTXProfileDropDown <> nil then begin SetLength(Names, Cnt); @@ -7930,6 +7934,10 @@ begin if GridChanged and FController.FTransmitting then ApplySpecViewGridFromState; FController.ApplyTXSettingsToDSP; + // Low/High из вкладки Transmit — та же полоска фильтра на спектре: кромки + // берём уже пересчитанными движком (знак боковой) и на передаче перерисовываем. + PushFilterEdgesToView; + if FController.FTransmitting then FSpectrumDirty := True; if (OldMicByte <> NewMicByte) or (OldAtt <> FController.FTXSettings.AttOnTX) then FController.SendDUCSpecificFromSettings; // TUN-параметры live: если идёт tune — обновить тон/drive, иначе просто запомнить.