From 1553f48abb831695eb1736cd2a7993e3aac737a4 Mon Sep 17 00:00:00 2001 From: OH1KH Date: Thu, 8 Sep 2022 12:49:22 +0300 Subject: [PATCH] CWkeyer selection fixed. Not tested at all yet --- src/fNewQSO.pas | 4 +- src/fPreferences.lfm | 233 +++++++++++++++++++++++++------------------ src/fPreferences.pas | 179 ++++++++++++++++++++------------- 3 files changed, 242 insertions(+), 174 deletions(-) diff --git a/src/fNewQSO.pas b/src/fNewQSO.pas index a34b063..4b63d1e 100644 --- a/src/fNewQSO.pas +++ b/src/fNewQSO.pas @@ -7165,9 +7165,7 @@ begin FreeAndNil(CWint) end; - //if frmTRXControl.rbRadio1.Checked then n := '1' else n := '2'; - //ToDo fix CW when cmbRig works elsewhere! - n:='1'; + n:=intToStr(frmTRXControl.cmbRig.ItemIndex); if ((dmData.DebugLevel>=1 ) or ((abs(dmData.DebugLevel) and 8) = 8 )) then Writeln('Radio'+n+' CW settings:'); KeyerType := cqrini.ReadInteger('CW','Type'+n,0); if ((dmData.DebugLevel>=1 ) or ((abs(dmData.DebugLevel) and 8) = 8 )) then Writeln('CW init keyer type:',KeyerType); diff --git a/src/fPreferences.lfm b/src/fPreferences.lfm index 963de38..ec9239a 100644 --- a/src/fPreferences.lfm +++ b/src/fPreferences.lfm @@ -6,13 +6,13 @@ object frmPreferences: TfrmPreferences HelpType = htKeyword HelpKeyword = 'help/h1.html' HorzScrollBar.Page = 1094 - VertScrollBar.Page = 712 + VertScrollBar.Page = 703 ActiveControl = lbPreferences AutoScroll = True BorderIcons = [biSystemMenu] Caption = 'Preferences' ClientHeight = 712 - ClientWidth = 1118 + ClientWidth = 1131 OnCloseQuery = FormCloseQuery OnCreate = FormCreate OnShow = FormShow @@ -20,9 +20,9 @@ object frmPreferences: TfrmPreferences LCLVersion = '2.2.2.0' object pgPreferences: TPageControl Left = 160 - Height = 726 + Height = 712 Top = 0 - Width = 870 + Width = 883 ActivePage = tabCWInterface Align = alClient TabIndex = 19 @@ -30,8 +30,8 @@ object frmPreferences: TfrmPreferences OnChange = pgPreferencesChange object tabProgram: TTabSheet Caption = 'Program' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object lblWebBrowser: TLabel AnchorSideLeft.Control = gbInternet AnchorSideLeft.Side = asrBottom @@ -56,7 +56,7 @@ object frmPreferences: TfrmPreferences BorderSpacing.Left = 6 BorderSpacing.Top = 3 Caption = ' Internet connection ' - ClientHeight = 127 + ClientHeight = 111 ClientWidth = 339 TabOrder = 0 object lblintProxy: TLabel @@ -248,7 +248,7 @@ object frmPreferences: TfrmPreferences Width = 626 BorderSpacing.Top = 9 Caption = ' Offsets and colors' - ClientHeight = 201 + ClientHeight = 185 ClientWidth = 624 TabOrder = 7 object lblUtc: TLabel @@ -625,8 +625,8 @@ object frmPreferences: TfrmPreferences end object tabStation: TTabSheet Caption = 'Station' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox5: TGroupBox Left = 16 Height = 168 @@ -787,8 +787,8 @@ object frmPreferences: TfrmPreferences AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Caption = 'New QSO' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object Label82: TLabel AnchorSideLeft.Control = edtRecetQSOs AnchorSideLeft.Side = asrBottom @@ -1264,8 +1264,8 @@ object frmPreferences: TfrmPreferences end object tabVisibleColumns: TTabSheet Caption = 'Visible columns' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object chkDate: TCheckBox AnchorSideLeft.Control = tabVisibleColumns AnchorSideTop.Control = tabVisibleColumns @@ -1853,8 +1853,8 @@ object frmPreferences: TfrmPreferences end object tabBands: TTabSheet Caption = 'Bands' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object cb136kHz: TCheckBox Left = 14 Height = 23 @@ -2100,15 +2100,15 @@ object frmPreferences: TfrmPreferences end object tabTRXcontrol: TTabSheet Caption = 'TRX control' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 OnExit = cmbRadioNrCloseUp OnShow = tabTRXcontrolEnter object btnChangeDefaultFreq: TButton AnchorSideTop.Control = grbRadio AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom - Left = 495 + Left = 508 Height = 25 Top = 549 Width = 192 @@ -2123,7 +2123,7 @@ object frmPreferences: TfrmPreferences AnchorSideTop.Side = asrBottom AnchorSideRight.Control = btnAddTrxMem AnchorSideRight.Side = asrBottom - Left = 583 + Left = 596 Height = 25 Top = 599 Width = 104 @@ -2142,7 +2142,7 @@ object frmPreferences: TfrmPreferences BorderSpacing.Left = 6 BorderSpacing.Top = 4 Caption = ' rigctld ' - ClientHeight = 86 + ClientHeight = 70 ClientWidth = 655 TabOrder = 0 object lblRigctdPath: TLabel @@ -2234,7 +2234,7 @@ object frmPreferences: TfrmPreferences AnchorSideTop.Side = asrBottom AnchorSideRight.Control = btnChangeDefaultFreq AnchorSideRight.Side = asrBottom - Left = 496 + Left = 509 Height = 25 Top = 574 Width = 191 @@ -2401,7 +2401,7 @@ object frmPreferences: TfrmPreferences Width = 511 BorderSpacing.Top = 3 Caption = 'Radio one serial parameters' - ClientHeight = 146 + ClientHeight = 130 ClientWidth = 509 TabOrder = 11 object lblSerialRSpd: TLabel @@ -2891,8 +2891,8 @@ object frmPreferences: TfrmPreferences end object TabROTcontrol: TTabSheet Caption = 'ROT control' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox41: TGroupBox AnchorSideLeft.Control = TabROTcontrol AnchorSideTop.Control = TabROTcontrol @@ -3865,8 +3865,8 @@ object frmPreferences: TfrmPreferences end object tabModes: TTabSheet Caption = 'Modes' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 OnExit = tabModesExit OnShow = tabModesEnter object grpUsrDigitalModes: TGroupBox @@ -3909,7 +3909,7 @@ object frmPreferences: TfrmPreferences BorderSpacing.Left = 12 BorderSpacing.Top = 12 Caption = ' Radio' - ClientHeight = 290 + ClientHeight = 274 ClientWidth = 522 TabOrder = 1 object lblMode: TLabel @@ -4135,7 +4135,7 @@ object frmPreferences: TfrmPreferences Left = 12 Height = 33 Top = 1 - Width = 116 + Width = 120 BorderSpacing.Left = 12 BorderSpacing.Top = 1 ItemHeight = 0 @@ -4227,7 +4227,7 @@ object frmPreferences: TfrmPreferences AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = cmbRadioModes AnchorSideTop.Side = asrCenter - Left = 140 + Left = 144 Height = 17 Top = 9 Width = 207 @@ -4258,8 +4258,8 @@ object frmPreferences: TfrmPreferences end object tabQTHProfiles: TTabSheet Caption = 'QTH Profiles' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object chkUseProfiles: TCheckBox Left = 9 Height = 23 @@ -4363,8 +4363,8 @@ object frmPreferences: TfrmPreferences end object tabExport: TTabSheet Caption = 'Export' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 inline fraExportPref1: TfraExportPref Top = 8 inherited lblField1: TLabel @@ -4381,8 +4381,8 @@ object frmPreferences: TfrmPreferences end object tabDXCluster: TTabSheet Caption = 'DXCluster' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object gbDXCColor: TGroupBox AnchorSideLeft.Control = tabDXCluster AnchorSideTop.Control = tabDXCluster @@ -4999,8 +4999,8 @@ object frmPreferences: TfrmPreferences end object tabFont: TTabSheet Caption = 'Fonts' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox7: TGroupBox Left = 14 Height = 352 @@ -5210,8 +5210,8 @@ object frmPreferences: TfrmPreferences end object tabWazItu: TTabSheet Caption = 'WAZ, ITU zones' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox8: TGroupBox Left = 14 Height = 230 @@ -5353,8 +5353,8 @@ object frmPreferences: TfrmPreferences end object tabIOTA: TTabSheet Caption = 'IOTA' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox10: TGroupBox Left = 22 Height = 168 @@ -5410,8 +5410,8 @@ object frmPreferences: TfrmPreferences end object tabMemebership: TTabSheet Caption = 'Membership' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox11: TGroupBox AnchorSideLeft.Control = tabMemebership AnchorSideTop.Control = tabMemebership @@ -5852,8 +5852,8 @@ object frmPreferences: TfrmPreferences end object tabBandMap: TTabSheet Caption = 'Bandmap' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox16: TGroupBox Left = 13 Height = 61 @@ -6171,8 +6171,8 @@ object frmPreferences: TfrmPreferences end object tabXplanet: TTabSheet Caption = 'xplanet support' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox21: TGroupBox Left = 14 Height = 89 @@ -6447,8 +6447,8 @@ object frmPreferences: TfrmPreferences end object tabZipCode: TTabSheet Caption = 'Zip code tracking' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox25: TGroupBox Left = 6 Height = 104 @@ -6704,8 +6704,8 @@ object frmPreferences: TfrmPreferences end object tabLoTW: TTabSheet Caption = 'LoTW/eQSL support' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object lblLoTWBkg: TLabel AnchorSideLeft.Control = cmbLoTWBckColor AnchorSideLeft.Side = asrBottom @@ -7046,35 +7046,36 @@ object frmPreferences: TfrmPreferences end object tabCWInterface: TTabSheet Caption = 'CW interface' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 + OnContextPopup = tabCWInterfaceContextPopup + OnExit = tabCWInterfaceExit object lbIfaceType: TLabel - AnchorSideLeft.Control = tabCWInterface - AnchorSideTop.Control = cbNoKeyerReset - AnchorSideTop.Side = asrBottom - Left = 18 + AnchorSideLeft.Control = cmbCWRadio + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = lblCWRadio + Left = 193 Height = 17 - Top = 101 + Top = 6 Width = 121 BorderSpacing.Left = 18 - BorderSpacing.Top = 6 Caption = 'CW interface type:' ParentColor = False end object gbWinkeyer: TGroupBox AnchorSideLeft.Control = tabCWInterface - AnchorSideTop.Control = lbIfaceType + AnchorSideTop.Control = cbNoKeyerReset AnchorSideTop.Side = asrBottom Left = 18 Height = 141 - Top = 130 + Top = 107 Width = 497 BorderSpacing.Left = 18 BorderSpacing.Top = 12 - Caption = ' WinKeyer USB ' + Caption = ' WinKeyer' ClientHeight = 123 ClientWidth = 495 - TabOrder = 2 + TabOrder = 3 object lblWinPort: TLabel AnchorSideLeft.Control = gbWinkeyer AnchorSideTop.Control = gbWinkeyer @@ -7149,7 +7150,6 @@ object frmPreferences: TfrmPreferences Width = 147 OnChange = edtWinPort1Change TabOrder = 0 - Text = 'edtWinPort1' end object edtWinSpeed: TSpinEdit AnchorSideLeft.Control = lblWinSpeed @@ -7162,7 +7162,7 @@ object frmPreferences: TfrmPreferences MaxValue = 99 MinValue = 5 OnChange = edtWinSpeedChange - TabOrder = 1 + TabOrder = 2 Value = 5 end object chkPotSpeed: TCheckBox @@ -7179,7 +7179,7 @@ object frmPreferences: TfrmPreferences BorderSpacing.Right = 6 Caption = 'Use potentiometer''s CW speed' OnChange = chkPotSpeedChange - TabOrder = 2 + TabOrder = 1 Visible = False end object edtWinMinSpeed: TSpinEdit @@ -7221,13 +7221,13 @@ object frmPreferences: TfrmPreferences AnchorSideTop.Side = asrBottom Left = 18 Height = 138 - Top = 277 + Top = 254 Width = 497 BorderSpacing.Top = 6 Caption = ' cwdaemon ' ClientHeight = 120 ClientWidth = 495 - TabOrder = 3 + TabOrder = 4 object lblCWAddr: TLabel AnchorSideLeft.Control = gbCwkeyer AnchorSideTop.Control = gbCwkeyer @@ -7286,7 +7286,6 @@ object frmPreferences: TfrmPreferences Top = 23 Width = 139 TabOrder = 0 - Text = 'localhost' end object edtCWPort1: TEdit AnchorSideLeft.Control = lblCWPort1 @@ -7297,7 +7296,6 @@ object frmPreferences: TfrmPreferences Top = 23 Width = 80 TabOrder = 1 - Text = 'edtCWPort1' end object edtCWSpeed: TSpinEdit AnchorSideLeft.Control = lblCWDefSpeed @@ -7320,13 +7318,13 @@ object frmPreferences: TfrmPreferences AnchorSideRight.Side = asrBottom Left = 345 Height = 25 - Top = 670 + Top = 647 Width = 170 Anchors = [akTop, akRight] BorderSpacing.Top = 6 Caption = 'CW Messages' OnClick = btnKeyMacrosClick - TabOrder = 4 + TabOrder = 7 end object gbK3NGkey: TGroupBox AnchorSideLeft.Control = gbCwkeyer @@ -7334,7 +7332,7 @@ object frmPreferences: TfrmPreferences AnchorSideTop.Side = asrBottom Left = 18 Height = 144 - Top = 421 + Top = 398 Width = 497 BorderSpacing.Top = 6 Caption = 'K3NG Key' @@ -7386,7 +7384,6 @@ object frmPreferences: TfrmPreferences Width = 147 OnChange = edtWinPort1Change TabOrder = 0 - Text = 'edtK3NGPort1' end object edtK3NGSpeed: TSpinEdit AnchorSideLeft.Control = lblK3NGSpeed @@ -7399,7 +7396,7 @@ object frmPreferences: TfrmPreferences MaxValue = 99 MinValue = 5 OnChange = edtWinSpeedChange - TabOrder = 1 + TabOrder = 2 Value = 5 end object edtK3NGSerSpeed: TEdit @@ -7411,8 +7408,7 @@ object frmPreferences: TfrmPreferences Top = 23 Width = 118 OnChange = edtK3NGSerSpeedChange - TabOrder = 2 - Text = 'edtK3NGSerSpeed' + TabOrder = 1 end object lblK3NGSerSpeed: TLabel AnchorSideLeft.Control = edtK3NGPort1 @@ -7433,7 +7429,7 @@ object frmPreferences: TfrmPreferences AnchorSideTop.Side = asrBottom Left = 18 Height = 93 - Top = 571 + Top = 548 Width = 497 BorderSpacing.Top = 6 Caption = 'HamLib' @@ -7514,7 +7510,7 @@ object frmPreferences: TfrmPreferences BorderSpacing.Top = 6 Caption = 'Do not reset keyer when switching radios (Same keyer for all, and not HamLib)' OnChange = cbNoKeyerResetChange - TabOrder = 1 + TabOrder = 2 end object lblCWRadio: TLabel AnchorSideLeft.Control = tabCWInterface @@ -7536,17 +7532,56 @@ object frmPreferences: TfrmPreferences Left = 55 Height = 33 Top = 26 - Width = 116 + Width = 120 BorderSpacing.Top = 3 ItemHeight = 0 + OnChange = cmbCWRadioChange + OnCloseUp = cmbCWRadioCloseUp Style = csDropDownList TabOrder = 0 end + object lblNoRigForCW: TLabel + AnchorSideLeft.Control = cmbIfaceType + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = cmbCWRadio + AnchorSideTop.Side = asrCenter + Left = 325 + Height = 17 + Top = 34 + Width = 207 + BorderSpacing.Left = 12 + Caption = 'There is no radio definition' + Font.Color = clRed + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + Visible = False + end + object cmbIfaceType: TComboBox + AnchorSideLeft.Control = lbIfaceType + AnchorSideTop.Control = cmbCWRadio + Left = 193 + Height = 29 + Top = 26 + Width = 120 + ItemHeight = 0 + Items.Strings = ( + '' + 'Winkeyer' + 'cwdaemon' + 'K3NG Key' + 'Hamlib' + ) + OnChange = cmbIfaceTypeChange + OnCloseUp = cmbIfaceTypeCloseUp + Style = csDropDownList + TabOrder = 1 + end end object tabFldigi1: TTabSheet Caption = 'fldigi/wsjt interface' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox31: TGroupBox AnchorSideLeft.Control = tabFldigi1 AnchorSideTop.Control = tabFldigi1 @@ -8233,8 +8268,8 @@ object frmPreferences: TfrmPreferences end object tabAutoBackup: TTabSheet Caption = 'Exit & Auto backup' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox32: TGroupBox Left = 8 Height = 370 @@ -8381,8 +8416,8 @@ object frmPreferences: TfrmPreferences end object tabExtViewers: TTabSheet Caption = 'External viewers' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object Label99: TLabel Left = 23 Height = 17 @@ -8469,8 +8504,8 @@ object frmPreferences: TfrmPreferences end object tabCallbook: TTabSheet Caption = 'Callbook support' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox38: TGroupBox Left = 13 Height = 160 @@ -8534,8 +8569,8 @@ object frmPreferences: TfrmPreferences end object tabRBN: TTabSheet Caption = 'RBN support' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object chkRBNAutoConn: TCheckBox AnchorSideLeft.Control = lblRbnWindowOpen AnchorSideTop.Control = cmbCl10db @@ -8853,8 +8888,8 @@ object frmPreferences: TfrmPreferences end object tabOnlineLog: TTabSheet Caption = 'Online log upload' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object GroupBox44: TGroupBox Left = 13 Height = 179 @@ -9155,8 +9190,8 @@ object frmPreferences: TfrmPreferences end object tabCondx: TTabSheet Caption = 'Propagation' - ClientHeight = 695 - ClientWidth = 860 + ClientHeight = 681 + ClientWidth = 873 object rbCondxAsImage: TRadioButton Left = 25 Height = 23 @@ -9227,12 +9262,12 @@ object frmPreferences: TfrmPreferences end object Panel1: TPanel AnchorSideBottom.Side = asrBottom - Left = 1030 - Height = 726 + Left = 1043 + Height = 712 Top = 0 Width = 88 Align = alRight - ClientHeight = 726 + ClientHeight = 712 ClientWidth = 88 TabOrder = 1 object btnOK: TButton @@ -9297,7 +9332,7 @@ object frmPreferences: TfrmPreferences end object lbPreferences: TListBox Left = 0 - Height = 726 + Height = 712 Top = 0 Width = 160 Align = alLeft diff --git a/src/fPreferences.pas b/src/fPreferences.pas index a6a257b..0ea15a2 100644 --- a/src/fPreferences.pas +++ b/src/fPreferences.pas @@ -504,6 +504,7 @@ type cmbRadioNr: TComboBox; cmbRadioModes: TComboBox; cmbCWRadio: TComboBox; + cmbIfaceType: TComboBox; DateEditCall: TDateEdit; DateEditLoc: TDateEdit; dlgColor : TColorDialog; @@ -708,6 +709,7 @@ type Label10: TLabel; Label108: TLabel; lblCWRadio: TLabel; + lblNoRigForCW: TLabel; lblNrOfRadios: TLabel; lblNoRigForMode: TLabel; lblDataMode: TLabel; @@ -1042,8 +1044,10 @@ type procedure btnFirstLoadClick(Sender: TObject); procedure btnSecondLoadClick(Sender: TObject); procedure btnThirdLoadClick(Sender: TObject); - procedure cmbIfaceType1Change(Sender: TObject); - procedure cmbIfaceType2Change(Sender: TObject); + procedure cmbCWRadioChange(Sender: TObject); + procedure cmbCWRadioCloseUp(Sender: TObject); + procedure cmbIfaceTypeChange(Sender: TObject); + procedure cmbIfaceTypeCloseUp(Sender: TObject); procedure cmbModelRigChange(Sender: TObject); procedure cmbModelRot1Change(Sender: TObject); procedure cmbModelRot2Change(Sender: TObject); @@ -1067,6 +1071,9 @@ type procedure edtRecetQSOsKeyPress(Sender: TObject; var Key: char); procedure edtRigCountChange(Sender: TObject); procedure RotorParamsChange(Sender: TObject); + procedure tabCWInterfaceContextPopup(Sender: TObject; MousePos: TPoint; + var Handled: Boolean); + procedure tabCWInterfaceExit(Sender: TObject); procedure tabModesEnter(Sender: TObject); procedure tabModesExit(Sender: TObject); procedure tabTRXcontrolEnter(Sender: TObject); @@ -1110,10 +1117,13 @@ type wasOnlineLogSupportEnabled : Boolean; RadioNrLoaded : integer; BandWNrLoaded : integer; - procedure LoadTRX(RigNr:integer); + CWifLoaded : integer; procedure SaveTRX(RigNr:integer); + procedure LoadTRX(RigNr:integer); procedure SaveBandW(RigNr:integer); procedure LoadBandW(RigNr:integer); + procedure SaveCWif(RigNr:integer); + procedure LoadCWif(RigNr:integer); procedure InitRigCmb; procedure ClearUnUsedRigs; procedure SaveClubSection; @@ -1137,7 +1147,7 @@ var RotChanged: boolean; ReloadFreq: Boolean = False; ReloadModes: Boolean = False; - WinKeyerChanged : Boolean; + CWKeyerChanged : Boolean; implementation {$R *.lfm} @@ -1488,25 +1498,6 @@ begin cqrini.WriteInteger('LoTW', 'eBckColor', cmbeQSLBckColor.Selected); cqrini.WriteBool('LoTW', 'ExpComment', chkExpCommet.Checked); - cqrini.WriteInteger('CW', 'Type1', cmbIfaceType1.ItemIndex); - cqrini.WriteInteger('CW', 'Type2', cmbIfaceType2.ItemIndex); - cqrini.WriteBool('CW', 'NoReset', cbNoKeyerReset.Checked); - cqrini.WriteString('CW', 'wk_port1', edtWinPort1.Text); - cqrini.WriteString('CW', 'wk_port2', edtWinPort2.Text); - cqrini.WriteBool('CW', 'PotSpeed', chkPotSpeed.Checked); - cqrini.WriteInteger('CW', 'wk_speed', edtWinSpeed.Value); - cqrini.WriteString('CW', 'cw_address', edtCWAddress.Text); - cqrini.WriteString('CW', 'cw_port1', edtCWPort1.Text); - cqrini.WriteString('CW', 'cw_port2', edtCWPort2.Text); - cqrini.WriteInteger('CW', 'cw_speed', edtCWSpeed.Value); - cqrini.WriteInteger('CW', 'wk_min', edtWinMinSpeed.Value); - cqrini.WriteInteger('CW', 'wk_max', edtWinMaxSpeed.Value); - cqrini.WriteString('CW','K3NGPort1',edtK3NGPort1.Text); - cqrini.WriteString('CW','K3NGPort2',edtK3NGPort2.Text); - cqrini.WriteInteger('CW','K3NGSerSpeed',StrToInt(edtK3NGSerSpeed.Text)); - cqrini.WriteInteger('CW','K3NGSpeed',StrToInt(edtK3NGSpeed.Text)); - cqrini.WriteInteger('CW','HamLibSpeed',StrToInt(edtHamLibSpeed.Text)); - cqrini.WriteInteger('fldigi', 'freq', rgFreqFrom.ItemIndex); cqrini.WriteString('fldigi', 'deffreq', edtDefaultFreq.Text); cqrini.WriteInteger('fldigi', 'mode', rgModeFrom.ItemIndex); @@ -1610,7 +1601,7 @@ begin cqrini.WriteBool('prop','CalcHF',chkCondxCalcHF.Checked); cqrini.WriteBool('prop','CalcVHF',chkCondxCalcVHF.Checked); - if WinKeyerChanged then frmNewQSO.InitializeCW; + if CWKeyerChanged then frmNewQSO.InitializeCW; fraExportPref1.SaveExportPref; @@ -2269,16 +2260,6 @@ begin dmMembership.CheckForMembershipUpdate end; -procedure TfrmPreferences.cbNoKeyerResetChange(Sender: TObject); -begin - if cbNoKeyerReset.Checked - and (cmbIfaceType1.ItemIndex <> cmbIfaceType2.ItemIndex ) //both keyers are not same - or (cmbIfaceType1.ItemIndex = 4) - or (cmbIfaceType2.ItemIndex = 4) //type is HamLib - then cbNoKeyerReset.Checked := false; //restart is always needed when radio changes -end; - - procedure TfrmPreferences.chkClUpEnabledChange(Sender: TObject); begin edtClUserName.Enabled := chkClUpEnabled.Checked; @@ -2417,22 +2398,39 @@ begin end; end; -procedure TfrmPreferences.cmbIfaceType1Change(Sender: TObject); +procedure TfrmPreferences.cmbCWRadioChange(Sender: TObject); begin - WinKeyerChanged := True; - if cbNoKeyerReset.Checked - and (cmbIfaceType1.ItemIndex <> cmbIfaceType2.ItemIndex ) //both keyers are not same - or (cmbIfaceType1.ItemIndex = 4) - or (cmbIfaceType2.ItemIndex = 4) //type is HamLib + if cmbCWRadio.ItemIndex<1 then cmbCWRadio.ItemIndex:=1; +end; + +procedure TfrmPreferences.cmbCWRadioCloseUp(Sender: TObject); +begin + if cmbCWRadio.ItemIndex<1 then cmbCWRadio.ItemIndex:=1; + SaveCWif(CWifLoaded); + LoadCWif(cmbCWRadio.ItemIndex); + if cqrini.ReadString('TRX'+IntToStr(cmbRadioModes.ItemIndex), 'model', '')='' then + lblNoRigForCW.Visible:=True + else + lblNoRigForCW.Visible:=False; +end; + +procedure TfrmPreferences.cmbIfaceTypeChange(Sender: TObject); +begin + CWKeyerChanged:=true; +end; + +procedure TfrmPreferences.cbNoKeyerResetChange(Sender: TObject); +begin + if cbNoKeyerReset.Checked + and (cmbIfaceType.ItemIndex = 4) //type is HamLib then cbNoKeyerReset.Checked := false; //restart is always needed when radio changes end; -procedure TfrmPreferences.cmbIfaceType2Change(Sender: TObject); + +procedure TfrmPreferences.cmbIfaceTypeCloseUp(Sender: TObject); begin - WinKeyerChanged := True; - if cbNoKeyerReset.Checked - and (cmbIfaceType1.ItemIndex <> cmbIfaceType2.ItemIndex ) //both keyers are not same - or (cmbIfaceType1.ItemIndex = 4) - or (cmbIfaceType2.ItemIndex = 4) //type is HamLib + CWKeyerChanged := True; + if cbNoKeyerReset.Checked + and (cmbIfaceType.ItemIndex = 4) //type is HamLib then cbNoKeyerReset.Checked := false; //restart is always needed when radio changes end; @@ -2506,7 +2504,9 @@ begin LoadTRX(cmbRadioNr.ItemIndex); //load selected rig frmTRXControl.cmbRigGetItems(nil); //update rig names cmbRadioModes.Items:=frmTRXControl.cmbRig.Items; //names to modes tab - cmbRadioModes.ItemIndex:= cmbRadioNr.ItemIndex //select rig in use + cmbCWRadio.Items:=cmbRadioModes.Items; //names to cw tab + cmbRadioModes.ItemIndex:= cmbRadioNr.ItemIndex; //select rig in use + cmbCWRadio.ItemIndex:=cmbRadioNr.ItemIndex; end; procedure TfrmPreferences.edtAlertCmdExit(Sender: TObject); @@ -2621,7 +2621,7 @@ end; procedure TfrmPreferences.edtK3NGSerSpeedChange(Sender: TObject); begin - WinKeyerChanged := True + CWKeyerChanged := True end; procedure TfrmPreferences.edtLocChange(Sender: TObject); @@ -2669,6 +2669,17 @@ begin RotChanged := True; end; +procedure TfrmPreferences.tabCWInterfaceContextPopup(Sender: TObject; + MousePos: TPoint; var Handled: Boolean); +begin + +end; + +procedure TfrmPreferences.tabCWInterfaceExit(Sender: TObject); +begin + SaveCWif(CWifLoaded); +end; + procedure TfrmPreferences.tabModesEnter(Sender: TObject); begin @@ -2718,22 +2729,22 @@ end; procedure TfrmPreferences.edtWinMaxSpeedChange(Sender: TObject); begin - WinKeyerChanged := True + CWKeyerChanged := True end; procedure TfrmPreferences.edtWinMinSpeedChange(Sender: TObject); begin - WinKeyerChanged := True + CWKeyerChanged := True end; procedure TfrmPreferences.edtWinPort1Change(Sender: TObject); begin - WinKeyerChanged := True + CWKeyerChanged := True end; procedure TfrmPreferences.edtWinSpeedChange(Sender: TObject); begin - WinKeyerChanged := True + CWKeyerChanged := True end; procedure TfrmPreferences.edtXplanetLocChange(Sender: TObject); @@ -3134,25 +3145,6 @@ begin cmbeQSLBckColor.Selected := cqrini.ReadInteger('LoTW', 'eBckColor', clSkyBlue); chkExpCommet.Checked := cqrini.ReadBool('LoTW', 'ExpComment', True); - cmbIfaceType1.ItemIndex := cqrini.ReadInteger('CW', 'Type1', 0); - cmbIfaceType2.ItemIndex := cqrini.ReadInteger('CW', 'Type2', 0); - cbNoKeyerReset.Checked := cqrini.ReadBool('CW', 'NoReset', false); - edtWinPort1.Text := cqrini.ReadString('CW', 'wk_port1', ''); - edtWinPort2.Text := cqrini.ReadString('CW', 'wk_port2', ''); - chkPotSpeed.Checked := cqrini.ReadBool('CW', 'PotSpeed', False); - edtWinSpeed.Value := cqrini.ReadInteger('CW', 'wk_speed', 30); - edtCWAddress.Text := cqrini.ReadString('CW', 'cw_address', 'localhost'); - edtCWPort1.Text := cqrini.ReadString('CW', 'cw_port1', '6789'); - edtCWPort2.Text := cqrini.ReadString('CW', 'cw_port2', '6789'); - edtCWSpeed.Value := cqrini.ReadInteger('CW', 'cw_speed', 30); - edtWinMinSpeed.Value := cqrini.ReadInteger('CW', 'wk_min', 5); - edtWinMaxSpeed.Value := cqrini.ReadInteger('CW', 'wk_max', 60); - edtK3NGPort1.Text := cqrini.ReadString('CW','K3NGPort1',''); - edtK3NGPort2.Text := cqrini.ReadString('CW','K3NGPort2',''); - edtK3NGSerSpeed.Text := IntToStr(cqrini.ReadInteger('CW','K3NGSerSpeed',115200)); - edtK3NGSpeed.Text := IntToStr(cqrini.ReadInteger('CW','K3NGSpeed',30)); - edtHamLibSpeed.Text := IntToStr(cqrini.ReadInteger('CW','HamLibSpeed',30)); - rgFreqFrom.ItemIndex := cqrini.ReadInteger('fldigi', 'freq', 1); // edtDefaultFreq.Text := cqrini.ReadString('fldigi', 'deffreq', '3.600');// rgModeFrom.ItemIndex := cqrini.ReadInteger('fldigi', 'mode', 1); // @@ -3262,7 +3254,7 @@ begin chkSysUTCClick(nil); TRXChanged := False; RotChanged := False; - WinKeyerChanged := False; + CWKeyerChanged := False; pgPreferences.ActivePageIndex := ActPageIdx; //set wanted tab for showing when open. ActTab is public variable. lbPreferences.ItemIndex := ActPageIdx; @@ -3457,6 +3449,49 @@ Begin cqrini.WriteString('Band'+nr, 'Datacmd', edtDatacmd.Text); cqrini.WriteBool('Band'+nr, 'UseReverse', chkModeReverse.Checked); end; +procedure TfrmPreferences.LoadCWif(RigNr:integer); +var + nr :string; +Begin + nr:=IntToStr(RigNr); + cmbIfaceType.ItemIndex := cqrini.ReadInteger('CW', 'Type'+nr, 0); + cbNoKeyerReset.Checked := cqrini.ReadBool('CW', 'NoReset', false); + edtWinPort1.Text := cqrini.ReadString('CW', 'wk_port'+nr, ''); + chkPotSpeed.Checked := cqrini.ReadBool('CW', 'PotSpeed', False); + edtWinSpeed.Value := cqrini.ReadInteger('CW', 'wk_speed', 30); + edtCWAddress.Text := cqrini.ReadString('CW', 'cw_address', 'localhost'); + edtCWPort1.Text := cqrini.ReadString('CW', 'cw_port'+nr, '6789'); + edtCWSpeed.Value := cqrini.ReadInteger('CW', 'cw_speed', 30); + edtWinMinSpeed.Value := cqrini.ReadInteger('CW', 'wk_min', 5); + edtWinMaxSpeed.Value := cqrini.ReadInteger('CW', 'wk_max', 60); + edtK3NGPort1.Text := cqrini.ReadString('CW','K3NGPort'+nr,''); + edtK3NGSerSpeed.Text := IntToStr(cqrini.ReadInteger('CW','K3NGSerSpeed',115200)); + edtK3NGSpeed.Text := IntToStr(cqrini.ReadInteger('CW','K3NGSpeed',30)); + edtHamLibSpeed.Text := IntToStr(cqrini.ReadInteger('CW','HamLibSpeed',30)); + CWifLoaded := RigNr; +end; +procedure TfrmPreferences.SaveCWif(RigNr:integer); +var + nr :string; +Begin + if lblNoRigForCW.Visible then exit; //No rig, no save + nr:=IntToStr(RigNr); + cqrini.WriteInteger('CW', 'Type'+nr, cmbIfaceType.ItemIndex); + cqrini.WriteBool('CW', 'NoReset', cbNoKeyerReset.Checked); + cqrini.WriteString('CW', 'wk_port'+nr, edtWinPort1.Text); + cqrini.WriteBool('CW', 'PotSpeed', chkPotSpeed.Checked); + cqrini.WriteInteger('CW', 'wk_speed', edtWinSpeed.Value); + cqrini.WriteString('CW', 'cw_address', edtCWAddress.Text); + cqrini.WriteString('CW', 'cw_port'+nr, edtCWPort1.Text); + cqrini.WriteInteger('CW', 'cw_speed', edtCWSpeed.Value); + cqrini.WriteInteger('CW', 'wk_min', edtWinMinSpeed.Value); + cqrini.WriteInteger('CW', 'wk_max', edtWinMaxSpeed.Value); + cqrini.WriteString('CW','K3NGPort'+nr,edtK3NGPort1.Text); + cqrini.WriteInteger('CW','K3NGSerSpeed',StrToInt(edtK3NGSerSpeed.Text)); + cqrini.WriteInteger('CW','K3NGSpeed',StrToInt(edtK3NGSpeed.Text)); + cqrini.WriteInteger('CW','HamLibSpeed',StrToInt(edtHamLibSpeed.Text)); +end; + procedure TfrmPreferences.InitRigCmb; //initialize radio selectors (without names) in TRXControl and Modes var //set itemindexes to used rig f : integer;