Satellite and/or propagation clear

Satellite and/or propagation selection is cleared only from clear-button (at tab) or band change. Either manual, CAT driven (change from rig knobs), wsjtx or fldigi-xmlrpc remotes.

Having set propagation for example ES it was keeping there when logging qsos but as soon as one qso was cancelled (2xESC or new try with wsjtx) propagation was always cleared.
Now it is not and I think it is better this way. You can not always get qso that you have started to log in.

I do not work satellite qsos at the moment, but I believe that clearing satellite name has the same rules: only if band changes (then usually satellite changes too, I think).

Fldigi-xmlrpc and wsjtx remote frequency conversion is cleaned a bit.

Found interesting bug (cosmetic). If you have just one radio and the other is undefined then change from TRXControl radio buttons from radio to not defined radio causes NewQSO frequency column content to be copied to NewQSO mode column! Fixed.

Squashed commit of the following:

commit d368846148694c02264245d9f9d26f1c6df755b4
Author: OH1KH <oh1kh@sral.fi>
Date:   Thu May 28 08:47:52 2020 +0300

    Band change in fldigiXMLRPC and wsjtx clears satellite and propagation

commit c5c1b38a14802d9744c3e2a1612b657cab8f2826
Author: OH1KH <oh1kh@sral.fi>
Date:   Thu May 28 07:43:27 2020 +0300

    Sat and Prop clears only from button or band change. Fix of (cosmetic) bug when radio change
This commit is contained in:
OH1KH 2020-05-31 08:55:09 +03:00
parent 4ce9bdebf1
commit 5476dcf1f4
8 changed files with 106 additions and 53 deletions

View File

@ -39,7 +39,7 @@
</PublishOptions>
<RunParams>
<local>
<CommandLineParams Value="--DEBUG=-8"/>
<CommandLineParams Value="--DEBUG=0"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
<environment>
@ -52,7 +52,7 @@
<Modes Count="1">
<Mode0 Name="default">
<local>
<CommandLineParams Value="--DEBUG=-8"/>
<CommandLineParams Value="--DEBUG=0"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
<environment>

View File

@ -30,7 +30,9 @@ type
procedure LoadSatellitesFromFile;
procedure LoadPropModesFromFile;
procedure SetListOfSatellites(cmbSatellite : TComboBox);
procedure GetListOfSatellites(cmbSatellite : TComboBox; Selected : String = '');
procedure SetListOfPropModes(cmbPropMode : TComboBox);
procedure GetListOfPropModes(cmbPropMode : TComboBox; Selected : String = '');
end;
@ -66,16 +68,20 @@ begin
if FileExists(dmData.HomeDir + C_PROP_MODE_LIST) then
ListOfPropModes.LoadFromFile(dmData.HomeDir + C_PROP_MODE_LIST)
end;
procedure TdmSatellite.GetListOfSatellites(cmbSatellite : TComboBox; Selected : String = '');
var
i : Integer;
begin
procedure TdmSatellite.SetListOfSatellites(cmbSatellite : TComboBox);
Begin
cmbSatellite.Clear;
cmbSatellite.Items.Add('');
cmbSatellite.ItemIndex := 0;
cmbSatellite.Items.AddStrings(ListOfSatellites);
end;
procedure TdmSatellite.GetListOfSatellites(cmbSatellite : TComboBox; Selected : String = '');
var
i : Integer;
begin
for i:=0 to cmbSatellite.Items.Count -1 do
begin
if (GetSatShortName(cmbSatellite.Items.Strings[i]) = Selected) then
@ -85,16 +91,20 @@ begin
end
end
end;
procedure TdmSatellite.SetListOfPropModes(cmbPropMode : TComboBox);
Begin
cmbPropMode.Clear;
cmbPropMode.Items.Add('');
cmbPropMode.ItemIndex := 0;
cmbPropMode.Items.AddStrings(ListOfPropModes);
end;
procedure TdmSatellite.GetListOfPropModes(cmbPropMode : TComboBox; Selected : String);
var
i : Integer;
begin
cmbPropMode.Clear;
cmbPropMode.Items.Add('');
cmbPropMode.ItemIndex := 0;
cmbPropMode.Items.AddStrings(ListOfPropModes);
for i:=0 to cmbPropMode.Items.Count - 1 do
begin
if (GetPropShortName(cmbPropMode.Items.Strings[i]) = Selected) then

View File

@ -2138,7 +2138,7 @@ object frmNewQSO: TfrmNewQSO
OnKeyUp = FormKeyUp
OnShow = FormShow
OnWindowStateChange = FormWindowStateChange
LCLVersion = '2.0.4.0'
LCLVersion = '2.0.8.0'
object sbNewQSO: TStatusBar
AnchorSideBottom.Side = asrBottom
Left = 0
@ -3557,11 +3557,11 @@ object frmNewQSO: TfrmNewQSO
Height = 135
Top = 376
Width = 938
ActivePage = tabDXCCStat
ActivePage = tabSatellite
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 40
TabIndex = 0
TabIndex = 1
TabOrder = 28
object tabDXCCStat: TTabSheet
Caption = 'DXCC statistic'
@ -3703,8 +3703,8 @@ object frmNewQSO: TfrmNewQSO
Left = 8
Height = 23
Hint = 'Use RX frequency from the Satellite tab instead of Frequency for DX spots'
Top = 106
Width = 233
Top = 114
Width = 226
BorderSpacing.Top = 35
Caption = 'Use RX frequency for DX spots'
Color = clNone

View File

@ -593,7 +593,6 @@ type
Running : Boolean;
idcall : String;
old_t_mode : String;
old_t_band : String;
lotw_qslr : String;
fromNewQSO : Boolean;
FreqBefChange : Double;
@ -655,6 +654,7 @@ type
CWint : TCWDevice;
ShowWin : Boolean;
LastFkey : Word;
old_t_band : String;
WsjtxSock : TUDPBlockSocket;
N1MMSock : TUDPBlockSocket;
@ -1170,7 +1170,6 @@ begin
end;
dmUtils.InsertModes(cmbMode);
dmUtils.InsertFreq(cmbFreq);
dmSatellite.GetListOfSatellites(cmbSatellite, old_sat);
dmSatellite.GetListOfPropModes(cmbPropagation, old_prop);
edtRXFreq.Text := old_rxfreq;
@ -1602,18 +1601,22 @@ var
begin
with TfrmDBConnect.Create(self) do
try
ShowModal;
if ModalResult <> mrOK then
begin
Application.Terminate;
exit
end
else
frmNewQSO.Caption := dmUtils.GetNewQSOCaption('New QSO')
finally
Free
end;
Begin
try
ShowModal;
if ModalResult <> mrOK then
begin
Application.Terminate;
exit
end
else
frmNewQSO.Caption := dmUtils.GetNewQSOCaption('New QSO')
finally
Free
end;
end; //without this begin-end editor offers "finally; end" for every new line entered until end of procedure
ini := TIniFile.Create(GetAppConfigDir(False)+'cqrlog_login.cfg');
try
@ -1655,6 +1658,9 @@ begin
tmrStart.Enabled := True;
dmUtils.UpdateHelpBrowser;
dmSatellite.SetListOfSatellites(cmbSatellite); //load combo box lists
dmSatellite.SetListOfPropModes(cmbPropagation);
end;
procedure TfrmNewQSO.tmrEndStartTimer(Sender: TObject);
@ -2112,11 +2118,12 @@ begin
if (mode <> '') and (freq <> empty_freq) then
begin
band := dmUtils.GetBandFromFreq(freq);
if (band <> old_t_band) then btnClearSatelliteClick(nil); //if band changes sat and prop cleared
if (mode <> old_t_mode) or (band <> old_t_band) then
begin
old_t_mode := mode;
old_t_band := band
end
end;
end
end
end
@ -2249,7 +2256,7 @@ const
var
Buf : String;
Fdes : String;
Fdes : Currency;
ParStr : String;
Par2Str : String;
Fox2Line: integer;
@ -2471,9 +2478,11 @@ begin
mhz := ''
end;
1 : begin
Fdes := copy(mhz,length(mhz)-5,3); //decimal part of MHz
mhz := copy(mhz,1,length(mhz)-6); //integer part here
mhz := mhz+'.'+Fdes;
if TryStrToCurr(mhz,Fdes) then
Begin
Fdes :=Fdes/1000000.0;
mhz:=FloatToStrF(Fdes,ffFixed,8,5);
end;
if dmData.DebugLevel>=1 then Writeln('Qrg :', mhz);
mhz := Trim(mhz)
end;
@ -2579,7 +2588,17 @@ begin
old_ccall := '';
old_cfreq := '';
old_cmode := '';
if (frmMonWsjtx <> nil) and frmMonWsjtx.Showing then frmMonWsjtx.NewBandMode(WsjtxBand,WsjtxMode)
if (frmMonWsjtx <> nil) and frmMonWsjtx.Showing then
Begin
frmMonWsjtx.NewBandMode(WsjtxBand,WsjtxMode);
cmbFreq.Text :=mhz;
cmbMode.Text := WsjtxMode;
if (dmUtils.GetBandFromFreq(cmbFreq.Text) <> old_t_band) then
Begin
old_t_band := dmUtils.GetBandFromFreq(cmbFreq.Text);
btnClearSatelliteClick(nil); //if band changes sat and prop cleared
end;
end;
end
end; //Status
@ -2754,9 +2773,11 @@ begin
cmbFreq.Text := mhz
end;
1 : begin
Fdes := copy(mhz,length(mhz)-5,3); //decimal part of MHz
mhz := copy(mhz,1,length(mhz)-6); //integer part here
mhz := mhz+'.'+Fdes;
if TryStrToCurr(mhz,Fdes) then
Begin
Fdes :=Fdes/1000000;
mhz:=FloatToStrF(Fdes,ffFixed,8,5);
end;
if dmData.DebugLevel>=1 then Writeln('Qrg :', mhz);
mhz := Trim(mhz);
if dmUtils.GetBandFromFreq(mhz) <> '' then
@ -4351,6 +4372,8 @@ begin
cmbPropagation.ItemIndex := 0;
cmbSatellite.ItemIndex := 0;
edtRXFreq.Clear;
old_sat:='';
old_prop:='';
cmbSatelliteChange(nil)
end;
@ -4473,6 +4496,8 @@ end;
procedure TfrmNewQSO.cmbFreqExit(Sender: TObject);
var
band :String;
begin
if (not (fViewQSO or fEditQSO)) then
cmbQSL_S.Text := dmData.SendQSL(edtCall.Text,cmbMode.Text,cmbFreq.Text,adif);
@ -4480,7 +4505,14 @@ begin
CheckQTHClub;
CheckAwardClub;
CheckCountyClub;
CheckStateClub
CheckStateClub;
band := dmUtils.GetBandFromFreq(cmbFreq.Text);
if (band <> old_t_band) then
Begin
btnClearSatelliteClick(nil); //if band changes sat and prop cleared
old_t_band := band;
end;
end;
procedure TfrmNewQSO.cmbIOTAEnter(Sender: TObject);
@ -4493,7 +4525,9 @@ begin
if (cmbPropagation.Text <> '') or (cmbSatellite.Text <> '') or (edtRXFreq.Text <> '') then
tabSatellite.Font.Color := clRed
else
tabSatellite.Font.Color := clDefault
tabSatellite.Font.Color := clDefault;
old_prop := dmSatellite.GetPropShortName(cmbPropagation.Text); //old_prop is now selected value
end;
procedure TfrmNewQSO.cmbQSL_REnter(Sender: TObject);
@ -4518,9 +4552,11 @@ end;
procedure TfrmNewQSO.cmbSatelliteChange(Sender : TObject);
begin
cmbPropagationChange(nil);
if ((cmbSatellite.Text <> '') and (cmbPropagation.Text = '')) then
cmbPropagation.Text := 'SAT|Satellite'
cmbPropagation.Text := 'SAT|Satellite';
old_sat := dmSatellite.GetSatShortName(cmbSatellite.Text); //old_sat is now selected value
cmbPropagationChange(nil);
end;
procedure TfrmNewQSO.dbgrdQSOBeforeColumnSized(Sender: TObject);
@ -4870,7 +4906,8 @@ begin
end;
procedure TfrmNewQSO.cmbFreqChange(Sender: TObject);
begin
Begin
//note this procedure does NOT run if rig CAT changes cmbFreq text value !! (why?)
cmbFreq.Text := CheckFreq(cmbFreq.Text);
ShowCountryInfo;
ChangeReports

View File

@ -153,7 +153,7 @@ object frmTRXControl: TfrmTRXControl
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
OnShow = FormShow
LCLVersion = '2.0.4.0'
LCLVersion = '2.0.8.0'
object gbMode: TGroupBox
AnchorSideLeft.Control = gbVfo
AnchorSideTop.Control = gbVfo

View File

@ -1308,6 +1308,7 @@ end;
function TfrmTRXControl.GetModeFreqNewQSO(var mode,freq : String) : Boolean;
begin
Result := False;
if not Assigned(radio) then exit; //without this sets old freq as mode (!) if switched from radio to non existing radio
if not ((lblFreq.Caption = empty_freq) or (lblFreq.Caption = '')) then
Result := True
else

View File

@ -1,7 +1,7 @@
object frmxfldigi: Tfrmxfldigi
Left = 39
Left = 57
Height = 193
Top = 15
Top = 39
Width = 347
Caption = 'fldigi xmlrpc'
ClientHeight = 193
@ -10,7 +10,7 @@ object frmxfldigi: Tfrmxfldigi
OnCreate = FormCreate
OnHide = FormHide
OnShow = FormShow
LCLVersion = '2.0.4.0'
LCLVersion = '2.0.8.0'
object lbCall: TLabel
Left = 8
Height = 15
@ -26,7 +26,7 @@ object frmxfldigi: Tfrmxfldigi
Left = 88
Height = 15
Top = 32
Width = 56
Width = 67
AutoSize = False
Caption = '-Freq'
Color = clDefault

View File

@ -222,7 +222,7 @@ var
opmode :string;
SockOK :Boolean;
Drop :integer;
tmp :Currency;
tmp :extended;
begin
frmNewQSO.tmrFldigi.Enabled := false;
@ -242,13 +242,18 @@ begin
if pos(',', mhz) > 0 then mhz[pos(',', mhz)] := FormatSettings.DecimalSeparator;
if dmDXCluster.GetBandFromFreq(mhz,True) <> '' then
Begin
if TryStrToCurr(mhz,tmp) then
if TryStrToFloat(mhz,tmp) then
begin
tmp := tmp/1000;
frequency := CurrToStr(tmp);
frequency :=FloatToStrF(tmp,ffFixed,8,5);
if (dmUtils.GetBandFromFreq(frequency) <> frmNewQSO.old_t_band) then
Begin
frmNewQSO.old_t_band := dmUtils.GetBandFromFreq(frequency);
frmNewQSO.btnClearSatelliteClick(nil); //if band changes sat and prop cleared
end;
end;
end;
end;
end;
2 : frequency := cqrini.ReadString('fldigi','deffreq','3.600')
end;
if dmData.DebugLevel>=1 then Writeln('Qrg :', frequency);