IDE: Debugger Backend Options, prevent accidental class change, instead of using new backend.

git-svn-id: trunk@64996 -
This commit is contained in:
martin 2021-04-14 18:22:47 +00:00
parent 34fc70c20f
commit 4177f7a5e0
2 changed files with 75 additions and 18 deletions

View File

@ -28,32 +28,32 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
Style = tbsButtonDrop Style = tbsButtonDrop
end end
object tbAddNew: TToolButton object tbAddNew: TToolButton
Left = 78 Left = 76
Top = 0 Top = 0
Caption = 'tbAddNew' Caption = 'tbAddNew'
OnClick = tbAddNewClick OnClick = tbAddNewClick
end end
object tbCopy: TToolButton object tbCopy: TToolButton
Left = 143 Left = 141
Top = 0 Top = 0
Caption = 'tbCopy' Caption = 'tbCopy'
OnClick = tbCopyClick OnClick = tbCopyClick
end end
object ToolButton2: TToolButton object ToolButton2: TToolButton
Left = 203 Left = 201
Height = 22 Height = 22
Top = 0 Top = 0
Caption = 'ToolButton2' Caption = 'ToolButton2'
Style = tbsDivider Style = tbsDivider
end end
object tbDelete: TToolButton object tbDelete: TToolButton
Left = 208 Left = 206
Top = 0 Top = 0
Caption = 'tbDelete' Caption = 'tbDelete'
OnClick = tbDeleteClick OnClick = tbDeleteClick
end end
object ToolButton3: TToolButton object ToolButton3: TToolButton
Left = 73 Left = 71
Height = 22 Height = 22
Top = 0 Top = 0
Caption = 'ToolButton3' Caption = 'ToolButton3'
@ -107,27 +107,27 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
AnchorSideRight.Control = Panel1 AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 84 Height = 105
Top = 35 Top = 35
Width = 519 Width = 519
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
AutoSize = True AutoSize = True
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'Debugger type and path' Caption = 'Debugger type and path'
ClientHeight = 64 ClientHeight = 85
ClientWidth = 515 ClientWidth = 515
TabOrder = 1 TabOrder = 1
object cmbDebuggerType: TComboBox object cmbDebuggerType: TComboBox
AnchorSideLeft.Control = gbDebuggerType AnchorSideLeft.Control = gbDebuggerType
AnchorSideTop.Control = gbDebuggerType AnchorSideTop.Control = gbDebuggerType
AnchorSideRight.Control = gbDebuggerType AnchorSideRight.Control = BtnEditClass
AnchorSideRight.Side = asrBottom
Left = 6 Left = 6
Height = 23 Height = 23
Top = 6 Top = 6
Width = 503 Width = 406
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Enabled = False
ItemHeight = 15 ItemHeight = 15
OnEditingDone = cmbDebuggerTypeEditingDone OnEditingDone = cmbDebuggerTypeEditingDone
OnSelect = cmbDebuggerTypeEditingDone OnSelect = cmbDebuggerTypeEditingDone
@ -136,12 +136,12 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
end end
object cmbDebuggerPath: TComboBox object cmbDebuggerPath: TComboBox
AnchorSideLeft.Control = gbDebuggerType AnchorSideLeft.Control = gbDebuggerType
AnchorSideTop.Control = cmbDebuggerType AnchorSideTop.Control = LblWarnClassChange
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = cmdOpenDebuggerPath AnchorSideRight.Control = cmdOpenDebuggerPath
Left = 6 Left = 6
Height = 23 Height = 23
Top = 35 Top = 56
Width = 480 Width = 480
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
@ -160,7 +160,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 486 Left = 486
Height = 23 Height = 23
Top = 35 Top = 56
Width = 23 Width = 23
Anchors = [akTop, akRight, akBottom] Anchors = [akTop, akRight, akBottom]
BorderSpacing.Right = 6 BorderSpacing.Right = 6
@ -168,6 +168,39 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
OnClick = cmdOpenDebuggerPathClick OnClick = cmdOpenDebuggerPathClick
TabOrder = 2 TabOrder = 2
end 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 end
object gbAdditionalSearchPath: TGroupBox object gbAdditionalSearchPath: TGroupBox
AnchorSideLeft.Control = Panel1 AnchorSideLeft.Control = Panel1
@ -177,7 +210,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 55 Height = 55
Top = 125 Top = 146
Width = 519 Width = 519
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
AutoSize = True AutoSize = True
@ -227,8 +260,8 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
AnchorSideBottom.Control = Panel1 AnchorSideBottom.Control = Panel1
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 0 Left = 0
Height = 215 Height = 194
Top = 186 Top = 207
Width = 519 Width = 519
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
@ -237,7 +270,7 @@ object DebuggerClassOptionsFrame: TDebuggerClassOptionsFrame
end end
end end
object tbDropMenu: TPopupMenu object tbDropMenu: TPopupMenu
left = 294 Left = 294
top = 5 Top = 5
end end
end end

View File

@ -44,6 +44,7 @@ type
{ TDebuggerClassOptionsFrame } { TDebuggerClassOptionsFrame }
TDebuggerClassOptionsFrame = class(TAbstractIDEOptionsEditor) TDebuggerClassOptionsFrame = class(TAbstractIDEOptionsEditor)
BtnEditClass: TButton;
cmbDebuggerPath: TComboBox; cmbDebuggerPath: TComboBox;
cmbDebuggerType: TComboBox; cmbDebuggerType: TComboBox;
cmdOpenAdditionalPath: TButton; cmdOpenAdditionalPath: TButton;
@ -52,6 +53,7 @@ type
gbAdditionalSearchPath: TGroupBox; gbAdditionalSearchPath: TGroupBox;
gbDebuggerSpecific: TGroupBox; gbDebuggerSpecific: TGroupBox;
gbDebuggerType: TGroupBox; gbDebuggerType: TGroupBox;
LblWarnClassChange: TLabel;
lblName: TLabel; lblName: TLabel;
Panel1: TPanel; Panel1: TPanel;
tbDropMenu: TPopupMenu; tbDropMenu: TPopupMenu;
@ -63,6 +65,7 @@ type
tbCopy: TToolButton; tbCopy: TToolButton;
ToolButton3: TToolButton; ToolButton3: TToolButton;
txtAdditionalPath: TEdit; txtAdditionalPath: TEdit;
procedure BtnEditClassClick(Sender: TObject);
procedure cmbDebuggerPathEditingDone(Sender: TObject); procedure cmbDebuggerPathEditingDone(Sender: TObject);
procedure cmbDebuggerTypeEditingDone(Sender: TObject); procedure cmbDebuggerTypeEditingDone(Sender: TObject);
procedure cmdOpenAdditionalPathClick(Sender: TObject); procedure cmdOpenAdditionalPathClick(Sender: TObject);
@ -137,6 +140,13 @@ begin
FSelectedDbgPropertiesConfig.DebuggerFilename := cmbDebuggerPath.Text; FSelectedDbgPropertiesConfig.DebuggerFilename := cmbDebuggerPath.Text;
end; end;
procedure TDebuggerClassOptionsFrame.BtnEditClassClick(Sender: TObject);
begin
cmbDebuggerType.Enabled := True;
BtnEditClass.Visible := False;
LblWarnClassChange.Visible := True;
end;
procedure TDebuggerClassOptionsFrame.cmdOpenAdditionalPathClick( procedure TDebuggerClassOptionsFrame.cmdOpenAdditionalPathClick(
Sender: TObject); Sender: TObject);
begin begin
@ -231,6 +241,10 @@ begin
FillNameDropDown; FillNameDropDown;
UpdateDebuggerClassDropDown; UpdateDebuggerClassDropDown;
FetchDebuggerSpecificOptions; FetchDebuggerSpecificOptions;
cmbDebuggerType.Enabled := True;
BtnEditClass.Visible := False;
LblWarnClassChange.Visible := False;
end; end;
procedure TDebuggerClassOptionsFrame.tbCopyClick(Sender: TObject); procedure TDebuggerClassOptionsFrame.tbCopyClick(Sender: TObject);
@ -257,6 +271,10 @@ begin
FillNameDropDown; FillNameDropDown;
UpdateDebuggerClassDropDown; UpdateDebuggerClassDropDown;
FetchDebuggerSpecificOptions; FetchDebuggerSpecificOptions;
cmbDebuggerType.Enabled := True;
BtnEditClass.Visible := False;
LblWarnClassChange.Visible := False;
end; end;
procedure TDebuggerClassOptionsFrame.tbDeleteClick(Sender: TObject); procedure TDebuggerClassOptionsFrame.tbDeleteClick(Sender: TObject);
@ -321,6 +339,10 @@ procedure TDebuggerClassOptionsFrame.UpdateDebuggerClass;
var var
c: TDebuggerClass; c: TDebuggerClass;
begin begin
cmbDebuggerType.Enabled := False;
BtnEditClass.Visible := True;
LblWarnClassChange.Visible := False;
if FSelectedDbgPropertiesConfig = nil then if FSelectedDbgPropertiesConfig = nil then
exit; exit;
c := GetDebuggerClassFromDropDown; c := GetDebuggerClassFromDropDown;
@ -622,6 +644,8 @@ begin
tbCopy.Caption := lisCopy; tbCopy.Caption := lisCopy;
tbDelete.Caption := lisDelete; tbDelete.Caption := lisDelete;
lblName.Caption := lisDebugOptionsFrmName; lblName.Caption := lisDebugOptionsFrmName;
BtnEditClass.Caption := lisDebugOptionsFrmEditClass;
LblWarnClassChange.Caption := lisDebugOptionsFrmEditClassWarn;
gbDebuggerType.Caption := dlgDebugType; gbDebuggerType.Caption := dlgDebugType;
gbAdditionalSearchPath.Caption := lisDebugOptionsFrmAdditionalSearchPath; gbAdditionalSearchPath.Caption := lisDebugOptionsFrmAdditionalSearchPath;
gbDebuggerSpecific.Caption := lisDebugOptionsFrmDebuggerSpecific; gbDebuggerSpecific.Caption := lisDebugOptionsFrmDebuggerSpecific;