Now preferences nearly works. Just TRX cmb loses its text (why)

This commit is contained in:
OH1KH 2022-09-09 16:29:53 +03:00
parent 934694ea63
commit f9f4a4369d
2 changed files with 76 additions and 71 deletions

View File

@ -2903,7 +2903,7 @@ object frmPreferences: TfrmPreferences
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = ' rotctld '
ClientHeight = 70
ClientHeight = 86
ClientWidth = 655
TabOrder = 0
object Label124: TLabel
@ -2951,7 +2951,7 @@ object frmPreferences: TfrmPreferences
AnchorSideBottom.Control = pgROTControl
AnchorSideBottom.Side = asrBottom
Caption = 'Rotor one'
ClientHeight = 361
ClientHeight = 388
ClientWidth = 647
object gbRot1: TGroupBox
AnchorSideLeft.Control = tabRot1
@ -2963,7 +2963,7 @@ object frmPreferences: TfrmPreferences
BorderSpacing.Left = 6
BorderSpacing.Top = 12
Caption = ' Rotor one, desc.:'
ClientHeight = 323
ClientHeight = 339
ClientWidth = 622
TabOrder = 0
object lblDevice1: TLabel
@ -3090,14 +3090,14 @@ object frmPreferences: TfrmPreferences
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 161
Top = 156
Top = 172
Width = 610
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Caption = 'Rotor one serial parameters'
ClientHeight = 143
ClientHeight = 159
ClientWidth = 608
TabOrder = 5
object lblSpeed1: TLabel
@ -3409,7 +3409,7 @@ object frmPreferences: TfrmPreferences
AnchorSideBottom.Control = tabRot1
AnchorSideBottom.Side = asrBottom
Caption = 'Rotor two'
ClientHeight = 361
ClientHeight = 388
ClientWidth = 647
object gbRot2: TGroupBox
AnchorSideLeft.Control = tabRot2
@ -3909,7 +3909,7 @@ object frmPreferences: TfrmPreferences
BorderSpacing.Left = 12
BorderSpacing.Top = 12
Caption = ' Radio'
ClientHeight = 274
ClientHeight = 290
ClientWidth = 522
TabOrder = 1
object lblMode: TLabel
@ -7089,8 +7089,8 @@ object frmPreferences: TfrmPreferences
ParentColor = False
end
object lblWinSpeed: TLabel
AnchorSideLeft.Control = edtWinPort1
AnchorSideTop.Control = edtWinPort1
AnchorSideLeft.Control = edtWinPort
AnchorSideTop.Control = edtWinPort
AnchorSideTop.Side = asrBottom
Left = 6
Height = 17
@ -7138,7 +7138,7 @@ object frmPreferences: TfrmPreferences
Caption = 'Max speed:'
ParentColor = False
end
object edtWinPort1: TEdit
object edtWinPort: TEdit
AnchorSideLeft.Control = lblWinPort
AnchorSideTop.Control = lblWinPort
AnchorSideTop.Side = asrBottom
@ -7146,7 +7146,7 @@ object frmPreferences: TfrmPreferences
Height = 34
Top = 23
Width = 147
OnChange = edtWinPort1Change
OnChange = edtWinPortChange
TabOrder = 0
end
object edtWinSpeed: TSpinEdit
@ -7164,9 +7164,9 @@ object frmPreferences: TfrmPreferences
Value = 5
end
object chkPotSpeed: TCheckBox
AnchorSideLeft.Control = edtWinPort1
AnchorSideLeft.Control = edtWinPort
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = edtWinPort1
AnchorSideTop.Control = edtWinPort
AnchorSideTop.Side = asrCenter
AnchorSideRight.Side = asrBottom
Left = 162
@ -7282,7 +7282,7 @@ object frmPreferences: TfrmPreferences
Width = 139
TabOrder = 0
end
object edtCWPort1: TEdit
object edtCWPort: TEdit
AnchorSideLeft.Control = lblCWPort1
AnchorSideTop.Control = lblCWPort1
AnchorSideTop.Side = asrBottom
@ -7348,7 +7348,7 @@ object frmPreferences: TfrmPreferences
end
object lblK3NGSpeed: TLabel
AnchorSideLeft.Control = lblK3NGPort
AnchorSideTop.Control = edtK3NGPort1
AnchorSideTop.Control = edtK3NGPort
AnchorSideTop.Side = asrBottom
Left = 6
Height = 17
@ -7369,7 +7369,7 @@ object frmPreferences: TfrmPreferences
Caption = 'WPM'
ParentColor = False
end
object edtK3NGPort1: TEdit
object edtK3NGPort: TEdit
AnchorSideLeft.Control = lblK3NGPort
AnchorSideTop.Control = lblK3NGPort
AnchorSideTop.Side = asrBottom
@ -7377,7 +7377,7 @@ object frmPreferences: TfrmPreferences
Height = 34
Top = 23
Width = 147
OnChange = edtWinPort1Change
OnChange = edtWinPortChange
TabOrder = 0
end
object edtK3NGSpeed: TSpinEdit
@ -7406,7 +7406,7 @@ object frmPreferences: TfrmPreferences
TabOrder = 1
end
object lblK3NGSerSpeed: TLabel
AnchorSideLeft.Control = edtK3NGPort1
AnchorSideLeft.Control = edtK3NGPort
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lblK3NGPort
Left = 201
@ -7561,7 +7561,7 @@ object frmPreferences: TfrmPreferences
Width = 120
ItemHeight = 0
Items.Strings = (
''
'None'
'Winkeyer'
'cwdaemon'
'K3NG Key'

View File

@ -593,16 +593,16 @@ type
edtSunOffset: TEdit;
edtOffset: TEdit;
edtCWAddress: TEdit;
edtCWPort1: TEdit;
edtCWPort: TEdit;
edtPdfFiles: TEdit;
edtWinPort1: TEdit;
edtWinPort: TEdit;
edtRecetQSOs: TEdit;
edtLoTWPass: TEdit;
edtLoTWName: TEdit;
edtCWSpeed: TSpinEdit;
edtWinMinSpeed: TSpinEdit;
edtWinMaxSpeed: TSpinEdit;
edtK3NGPort1: TEdit;
edtK3NGPort: TEdit;
edtK3NGSpeed: TSpinEdit;
edtFldigiIp: TEdit;
edtADIFIp: TEdit;
@ -1083,7 +1083,7 @@ type
procedure edtWebBrowserExit(Sender: TObject);
procedure edtWinMaxSpeedChange(Sender: TObject);
procedure edtWinMinSpeedChange(Sender: TObject);
procedure edtWinPort1Change(Sender: TObject);
procedure edtWinPortChange(Sender: TObject);
procedure edtWinSpeedChange(Sender: TObject);
procedure edtXplanetLocChange(Sender: TObject);
procedure lbPreferencesClick(Sender: TObject);
@ -1124,7 +1124,7 @@ type
procedure LoadBandW(RigNr:integer);
procedure SaveCWif(RigNr:integer);
procedure LoadCWif(RigNr:integer);
procedure InitRigCmb;
procedure InitRigCmb(SetUsedRig:boolean=false);
procedure ClearUnUsedRigs;
procedure SaveClubSection;
procedure LoadMebershipCombo;
@ -1316,14 +1316,7 @@ begin
cqrini.WriteBool('TRX','MemModeRelated',chkModeRelatedOnly.Checked);
cqrini.WriteInteger('TRX', 'RigCount', edtRigCount.Value);
For int:=1 to edtRigCount.Value do //these should be saved while editing them, but we do it here just for sure
Begin
SaveTRX(int);
SaveBandW(int);
SaveCWif(int);
end;
ClearUnUsedRigs;
frmTRXControl.cmbRigGetItems(nil);
ClearUnUsedRigs; //rigs modes and cw are saved when editing. Just delete unused rigs (model=empty)
cqrini.WriteString('ROT', 'RotCtldPath', edtRotCtldPath.Text);
@ -2413,7 +2406,8 @@ begin
if cmbCWRadio.ItemIndex<1 then cmbCWRadio.ItemIndex:=1;
SaveCWif(CWifLoaded);
LoadCWif(cmbCWRadio.ItemIndex);
if cqrini.ReadString('TRX'+IntToStr(cmbCWRadio.ItemIndex), 'model', '')='' then
if (cqrini.ReadString('TRX'+IntToStr(cmbCWRadio.ItemIndex), 'model', '')='')
or (pos('NONE',uppercase(cqrini.ReadString('TRX'+IntToStr(cmbCWRadio.ItemIndex), 'model', '')) )>1) then
lblNoRigForCW.Visible:=True
else
lblNoRigForCW.Visible:=False;
@ -2507,9 +2501,8 @@ begin
if cmbRadioNr.ItemIndex<1 then cmbRadioNr.ItemIndex:=1;
SaveTRX(RadioNrLoaded); //save edited rig
LoadTRX(cmbRadioNr.ItemIndex); //load selected rig
frmTRXControl.cmbRigGetItems(nil); //update rig names
cmbRadioModes.Items:=frmTRXControl.cmbRig.Items; //names to modes tab
cmbCWRadio.Items:=cmbRadioModes.Items; //names to cw tab
InitRigCmb; //load names and set currently edited rig
cmbRadioModes.ItemIndex:= cmbRadioNr.ItemIndex; //select rig in use
cmbCWRadio.ItemIndex:=cmbRadioNr.ItemIndex;
end;
@ -2660,10 +2653,7 @@ end;
procedure TfrmPreferences.edtRigCountChange(Sender: TObject);
begin
cqrini.WriteInteger('TRX', 'RigCount', edtRigCount.Value);
InitRigCmb; //load selectors
frmTRXControl.cmbRigGetItems(nil); //update rig names
cmbRadioModes.Items:=frmTRXControl.cmbRig.Items; //names to modes tab
cmbCWRadio.Items:=cmbRadioModes.Items; //names to CW tab
InitRigCmb; //load names and set currently edited rig
end;
procedure TfrmPreferences.TRXParamsChange(Sender: TObject);
@ -2743,7 +2733,7 @@ begin
CWKeyerChanged := True
end;
procedure TfrmPreferences.edtWinPort1Change(Sender: TObject);
procedure TfrmPreferences.edtWinPortChange(Sender: TObject);
begin
CWKeyerChanged := True
end;
@ -2944,11 +2934,8 @@ begin
chkTrxControlDebug.Checked := cqrini.ReadBool('TRX','Debug',False);
chkModeRelatedOnly.Checked := cqrini.ReadBool('TRX','MemModeRelated',False);
edtRigCount.Value:=cqrini.ReadInteger('TRX', 'RigCount', 2);
InitRigCmb;
frmTRXControl.cmbRigGetItems(nil); //this populates cmb radio names and sets used rig to cmbRig.itemindex
cmbRadioNr.ItemIndex:=frmTRXControl.cmbRig.ItemIndex;
InitRigCmb(true); //define used rig=true
LoadTRX(cmbRadioNr.ItemIndex);
cmbRadioNrCloseUp(nil);//this populates radio names to modes and cw
LoadBandW(cmbRadioNr.ItemIndex);
LoadCWif(cmbRadioNr.ItemIndex);
@ -3464,20 +3451,20 @@ var
nr :string;
Begin
nr:=IntToStr(RigNr);
cmbIfaceType.ItemIndex := cqrini.ReadInteger('CW'+nr, 'Type'+nr, 0);
cmbIfaceType.ItemIndex := cqrini.ReadInteger('CW'+nr, 'Type', 0);
cbNoKeyerReset.Checked := cqrini.ReadBool('CW'+nr, 'NoReset', false);
edtWinPort1.Text := cqrini.ReadString('CW'+nr, 'wk_port'+nr, '');
chkPotSpeed.Checked := cqrini.ReadBool('CW'+nr, 'PotSpeed', False);
edtWinSpeed.Value := cqrini.ReadInteger('CW'+nr, 'wk_speed', 30);
edtCWAddress.Text := cqrini.ReadString('CW'+nr, 'cw_address', 'localhost');
edtCWPort1.Text := cqrini.ReadString('CW'+nr, 'cw_port'+nr, '6789');
edtCWSpeed.Value := cqrini.ReadInteger('CW'+nr, 'cw_speed', 30);
edtWinMinSpeed.Value := cqrini.ReadInteger('CW'+nr, 'wk_min', 5);
edtWinMaxSpeed.Value := cqrini.ReadInteger('CW'+nr, 'wk_max', 60);
edtK3NGPort1.Text := cqrini.ReadString('CW'+nr,'K3NGPort'+nr,'');
edtK3NGSerSpeed.Text := IntToStr(cqrini.ReadInteger('CW'+nr,'K3NGSerSpeed',115200));
edtK3NGSpeed.Text := IntToStr(cqrini.ReadInteger('CW'+nr,'K3NGSpeed',30));
edtHamLibSpeed.Text := IntToStr(cqrini.ReadInteger('CW'+nr,'HamLibSpeed',30));
edtWinPort.Text := cqrini.ReadString('CW'+nr, 'wk_port', '');
chkPotSpeed.Checked := cqrini.ReadBool('CW'+nr, 'PotSpeed', False);
edtWinSpeed.Value := cqrini.ReadInteger('CW'+nr, 'wk_speed', 30);
edtCWAddress.Text := cqrini.ReadString('CW'+nr, 'cw_address', 'localhost');
edtCWPort.Text := cqrini.ReadString('CW'+nr, 'cw_port', '6789');
edtCWSpeed.Value := cqrini.ReadInteger('CW'+nr, 'cw_speed', 30);
edtWinMinSpeed.Value := cqrini.ReadInteger('CW'+nr, 'wk_min', 5);
edtWinMaxSpeed.Value := cqrini.ReadInteger('CW'+nr, 'wk_max', 60);
edtK3NGPort.Text := cqrini.ReadString('CW'+nr,'K3NGPort','');
edtK3NGSerSpeed.Text := IntToStr(cqrini.ReadInteger('CW'+nr,'K3NGSerSpeed',115200));
edtK3NGSpeed.Text := IntToStr(cqrini.ReadInteger('CW'+nr,'K3NGSpeed',30));
edtHamLibSpeed.Text := IntToStr(cqrini.ReadInteger('CW'+nr,'HamLibSpeed',30));
CWifLoaded := RigNr;
end;
procedure TfrmPreferences.SaveCWif(RigNr:integer);
@ -3488,40 +3475,52 @@ Begin
nr:=IntToStr(RigNr);
cqrini.WriteInteger('CW'+nr, 'Type', cmbIfaceType.ItemIndex);
cqrini.WriteBool('CW'+nr, 'NoReset', cbNoKeyerReset.Checked);
cqrini.WriteString('CW'+nr, 'wk_port', edtWinPort1.Text);
cqrini.WriteString('CW'+nr, 'wk_port', edtWinPort.Text);
cqrini.WriteBool('CW'+nr, 'PotSpeed', chkPotSpeed.Checked);
cqrini.WriteInteger('CW'+nr, 'wk_speed', edtWinSpeed.Value);
cqrini.WriteString('CW'+nr, 'cw_address', edtCWAddress.Text);
cqrini.WriteString('CW'+nr, 'cw_port', edtCWPort1.Text);
cqrini.WriteString('CW'+nr, 'cw_port', edtCWPort.Text);
cqrini.WriteInteger('CW'+nr, 'cw_speed', edtCWSpeed.Value);
cqrini.WriteInteger('CW'+nr, 'wk_min', edtWinMinSpeed.Value);
cqrini.WriteInteger('CW'+nr, 'wk_max', edtWinMaxSpeed.Value);
cqrini.WriteString('CW'+nr,'K3NGPort',edtK3NGPort1.Text);
cqrini.WriteString('CW'+nr,'K3NGPort',edtK3NGPort.Text);
cqrini.WriteInteger('CW'+nr,'K3NGSerSpeed',StrToInt(edtK3NGSerSpeed.Text));
cqrini.WriteInteger('CW'+nr,'K3NGSpeed',StrToInt(edtK3NGSpeed.Text));
cqrini.WriteInteger('CW'+nr,'HamLibSpeed',StrToInt(edtHamLibSpeed.Text));
end;
procedure TfrmPreferences.InitRigCmb; //initialize radio selectors (without names) in TRXControl, CW and Modes
procedure TfrmPreferences.InitRigCmb(SetUsedRig:boolean=false); //initialize radio selectors in TRXControl, CW and Modes
var //set itemindexes to used rig
f : integer;
s : string;
Begin
cmbRadioNr.Clear;
cmbRadioNr.Items.Clear;
cmbRadioNr.Items.Add('');
cmbRadioModes.Clear;
cmbRadioModes.Items.Clear; //zero position is empty
cmbRadioModes.Items.Add('');
cmbCWRadio.Clear;
cmbCWRadio.Items.Clear;
cmbCWRadio.Items.Add('');
for f:=1 to edtRigCount.Value do
for f:=1 to cqrini.ReadInteger('TRX', 'RigCount', 2) do
Begin
s:=IntToStr(f);
cmbRadioNr.Items.Add(IntToStr(f));
cmbRadioModes.Items.Add(IntToStr(f));
cmbCWRadio.Items.Add(IntToStr(f));
cmbRadioModes.Items.Add(IntToStr(f)+' '+cqrini.ReadString('TRX'+s, 'Desc', ''));
cmbCWRadio.Items.Add(IntToStr(f)+' '+cqrini.ReadString('TRX'+s, 'Desc', ''));
end;
cmbRadioNr.ItemIndex:=cqrini.ReadInteger('TRX', 'RigInUse', 1);
cmbRadioModes.ItemIndex:=cmbRadioNr.ItemIndex;
cmbCWRadio.ItemIndex:=cmbRadioNr.ItemIndex;
if not ( cqrini.ReadInteger('TRX', 'RigInUse', 1) in [ 1..edtRigCount.Value] ) then
begin
cqrini.WriteInteger('TRX', 'RigInUse', 1); //used rig was deleted (rig count changed)
SetUsedRig:=true;
end;
if SetUsedRig then
begin
cmbRadioNr.ItemIndex:=cqrini.ReadInteger('TRX', 'RigInUse', 1);
cmbRadioModes.ItemIndex:=cmbRadioNr.ItemIndex;
cmbCWRadio.ItemIndex:=cmbRadioNr.ItemIndex;
end;
end;
procedure TfrmPreferences.ClearUnUsedRigs;
var
@ -3547,6 +3546,12 @@ Begin
end;
until (f=edtRigCount.Value);
end;
if not ( cqrini.ReadInteger('TRX', 'RigInUse', 1) in [ 1..edtRigCount.Value] ) then
cqrini.WriteInteger('TRX', 'RigInUse', 1); //used rig was deleted
frmTRXControl.cmbRigGetItems(nil); //update TRXControl rig names before returning
//6 is max rig count set by edtRigCount:Tspinedit
//if you change it you must change also fConfigStorage.pas
//TRX, CW and Band lists