From 4177f7a5e04eee238491f18cdea52a32e7002faa Mon Sep 17 00:00:00 2001 From: martin Date: Wed, 14 Apr 2021 18:22:47 +0000 Subject: [PATCH] IDE: Debugger Backend Options, prevent accidental class change, instead of using new backend. git-svn-id: trunk@64996 - --- debugger/frames/debugger_class_options.lfm | 69 ++++++++++++++++------ debugger/frames/debugger_class_options.pas | 24 ++++++++ 2 files changed, 75 insertions(+), 18 deletions(-) diff --git a/debugger/frames/debugger_class_options.lfm b/debugger/frames/debugger_class_options.lfm index bd25eb5190..5f2598e2ba 100644 --- a/debugger/frames/debugger_class_options.lfm +++ b/debugger/frames/debugger_class_options.lfm @@ -28,32 +28,32 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame Style = tbsButtonDrop end object tbAddNew: TToolButton - Left = 78 + Left = 76 Top = 0 Caption = 'tbAddNew' OnClick = tbAddNewClick end object tbCopy: TToolButton - Left = 143 + Left = 141 Top = 0 Caption = 'tbCopy' OnClick = tbCopyClick end object ToolButton2: TToolButton - Left = 203 + Left = 201 Height = 22 Top = 0 Caption = 'ToolButton2' Style = tbsDivider end object tbDelete: TToolButton - Left = 208 + Left = 206 Top = 0 Caption = 'tbDelete' OnClick = tbDeleteClick end object ToolButton3: TToolButton - Left = 73 + Left = 71 Height = 22 Top = 0 Caption = 'ToolButton3' @@ -107,27 +107,27 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame AnchorSideRight.Control = Panel1 AnchorSideRight.Side = asrBottom Left = 0 - Height = 84 + Height = 105 Top = 35 Width = 519 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Top = 6 Caption = 'Debugger type and path' - ClientHeight = 64 + ClientHeight = 85 ClientWidth = 515 TabOrder = 1 object cmbDebuggerType: TComboBox AnchorSideLeft.Control = gbDebuggerType AnchorSideTop.Control = gbDebuggerType - AnchorSideRight.Control = gbDebuggerType - AnchorSideRight.Side = asrBottom + AnchorSideRight.Control = BtnEditClass Left = 6 Height = 23 Top = 6 - Width = 503 + Width = 406 Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 6 + Enabled = False ItemHeight = 15 OnEditingDone = cmbDebuggerTypeEditingDone OnSelect = cmbDebuggerTypeEditingDone @@ -136,12 +136,12 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame end object cmbDebuggerPath: TComboBox AnchorSideLeft.Control = gbDebuggerType - AnchorSideTop.Control = cmbDebuggerType + AnchorSideTop.Control = LblWarnClassChange AnchorSideTop.Side = asrBottom AnchorSideRight.Control = cmdOpenDebuggerPath Left = 6 Height = 23 - Top = 35 + Top = 56 Width = 480 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 6 @@ -160,7 +160,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame AnchorSideBottom.Side = asrBottom Left = 486 Height = 23 - Top = 35 + Top = 56 Width = 23 Anchors = [akTop, akRight, akBottom] BorderSpacing.Right = 6 @@ -168,6 +168,39 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame OnClick = cmdOpenDebuggerPathClick TabOrder = 2 end + object BtnEditClass: TButton + AnchorSideTop.Control = gbDebuggerType + AnchorSideRight.Control = gbDebuggerType + AnchorSideRight.Side = asrBottom + Left = 418 + Height = 25 + Top = 6 + Width = 91 + Anchors = [akTop, akRight] + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'BtnEditClass' + OnClick = BtnEditClassClick + TabOrder = 3 + end + object LblWarnClassChange: TLabel + AnchorSideLeft.Control = gbDebuggerType + AnchorSideTop.Control = cmbDebuggerType + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = gbDebuggerType + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 15 + Top = 35 + Width = 503 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'LblWarnClassChange' + Font.Color = clRed + ParentColor = False + ParentFont = False + Visible = False + end end object gbAdditionalSearchPath: TGroupBox AnchorSideLeft.Control = Panel1 @@ -177,7 +210,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame AnchorSideRight.Side = asrBottom Left = 0 Height = 55 - Top = 125 + Top = 146 Width = 519 Anchors = [akTop, akLeft, akRight] AutoSize = True @@ -227,8 +260,8 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame AnchorSideBottom.Control = Panel1 AnchorSideBottom.Side = asrBottom Left = 0 - Height = 215 - Top = 186 + Height = 194 + Top = 207 Width = 519 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 6 @@ -237,7 +270,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame end end object tbDropMenu: TPopupMenu - left = 294 - top = 5 + Left = 294 + Top = 5 end end diff --git a/debugger/frames/debugger_class_options.pas b/debugger/frames/debugger_class_options.pas index 5bf885f055..a5c757577d 100644 --- a/debugger/frames/debugger_class_options.pas +++ b/debugger/frames/debugger_class_options.pas @@ -44,6 +44,7 @@ type { TDebuggerClassOptionsFrame } TDebuggerClassOptionsFrame = class(TAbstractIDEOptionsEditor) + BtnEditClass: TButton; cmbDebuggerPath: TComboBox; cmbDebuggerType: TComboBox; cmdOpenAdditionalPath: TButton; @@ -52,6 +53,7 @@ type gbAdditionalSearchPath: TGroupBox; gbDebuggerSpecific: TGroupBox; gbDebuggerType: TGroupBox; + LblWarnClassChange: TLabel; lblName: TLabel; Panel1: TPanel; tbDropMenu: TPopupMenu; @@ -63,6 +65,7 @@ type tbCopy: TToolButton; ToolButton3: TToolButton; txtAdditionalPath: TEdit; + procedure BtnEditClassClick(Sender: TObject); procedure cmbDebuggerPathEditingDone(Sender: TObject); procedure cmbDebuggerTypeEditingDone(Sender: TObject); procedure cmdOpenAdditionalPathClick(Sender: TObject); @@ -137,6 +140,13 @@ begin FSelectedDbgPropertiesConfig.DebuggerFilename := cmbDebuggerPath.Text; end; +procedure TDebuggerClassOptionsFrame.BtnEditClassClick(Sender: TObject); +begin + cmbDebuggerType.Enabled := True; + BtnEditClass.Visible := False; + LblWarnClassChange.Visible := True; +end; + procedure TDebuggerClassOptionsFrame.cmdOpenAdditionalPathClick( Sender: TObject); begin @@ -231,6 +241,10 @@ begin FillNameDropDown; UpdateDebuggerClassDropDown; FetchDebuggerSpecificOptions; + + cmbDebuggerType.Enabled := True; + BtnEditClass.Visible := False; + LblWarnClassChange.Visible := False; end; procedure TDebuggerClassOptionsFrame.tbCopyClick(Sender: TObject); @@ -257,6 +271,10 @@ begin FillNameDropDown; UpdateDebuggerClassDropDown; FetchDebuggerSpecificOptions; + + cmbDebuggerType.Enabled := True; + BtnEditClass.Visible := False; + LblWarnClassChange.Visible := False; end; procedure TDebuggerClassOptionsFrame.tbDeleteClick(Sender: TObject); @@ -321,6 +339,10 @@ procedure TDebuggerClassOptionsFrame.UpdateDebuggerClass; var c: TDebuggerClass; begin + cmbDebuggerType.Enabled := False; + BtnEditClass.Visible := True; + LblWarnClassChange.Visible := False; + if FSelectedDbgPropertiesConfig = nil then exit; c := GetDebuggerClassFromDropDown; @@ -622,6 +644,8 @@ begin tbCopy.Caption := lisCopy; tbDelete.Caption := lisDelete; lblName.Caption := lisDebugOptionsFrmName; + BtnEditClass.Caption := lisDebugOptionsFrmEditClass; + LblWarnClassChange.Caption := lisDebugOptionsFrmEditClassWarn; gbDebuggerType.Caption := dlgDebugType; gbAdditionalSearchPath.Caption := lisDebugOptionsFrmAdditionalSearchPath; gbDebuggerSpecific.Caption := lisDebugOptionsFrmDebuggerSpecific;