IDE, Debugger-conf: Make sure debugger path history is saved

git-svn-id: trunk@62024 -
This commit is contained in:
martin 2019-10-10 13:37:46 +00:00
parent 9c7ef38222
commit 51b18e32f4

View File

@ -87,6 +87,7 @@ type
procedure FillDebuggerClassDropDown; procedure FillDebuggerClassDropDown;
procedure UpdateDebuggerClass; procedure UpdateDebuggerClass;
procedure UpdateDebuggerClassDropDown; procedure UpdateDebuggerClassDropDown;
procedure UpdateDebuggerPathHistory;
procedure FetchDebuggerSpecificOptions; procedure FetchDebuggerSpecificOptions;
function GetDebuggerClassFromDropDown: TDebuggerClass; function GetDebuggerClassFromDropDown: TDebuggerClass;
function GetUniqueName(AName: String): String; function GetUniqueName(AName: String): String;
@ -115,6 +116,7 @@ procedure TDebuggerClassOptionsFrame.cmbDebuggerPathEditingDone(Sender: TObject
var var
ParsedFName: String; ParsedFName: String;
begin begin
UpdateDebuggerPathHistory;
if FSelectedDbgPropertiesConfig = nil then if FSelectedDbgPropertiesConfig = nil then
exit; exit;
@ -208,6 +210,7 @@ end;
procedure TDebuggerClassOptionsFrame.tbAddNewClick(Sender: TObject); procedure TDebuggerClassOptionsFrame.tbAddNewClick(Sender: TObject);
begin begin
UpdateDebuggerPathHistory;
edNameExit(nil); edNameExit(nil);
UpdateDebuggerClass; UpdateDebuggerClass;
cmbDebuggerPathEditingDone(nil); cmbDebuggerPathEditingDone(nil);
@ -226,6 +229,7 @@ var
pc: TDebuggerPropertiesConfig; pc: TDebuggerPropertiesConfig;
s: String; s: String;
begin begin
UpdateDebuggerPathHistory;
if FSelectedDbgPropertiesConfig = nil then if FSelectedDbgPropertiesConfig = nil then
exit; exit;
@ -312,7 +316,6 @@ end;
procedure TDebuggerClassOptionsFrame.UpdateDebuggerClass; procedure TDebuggerClassOptionsFrame.UpdateDebuggerClass;
var var
c: TDebuggerClass; c: TDebuggerClass;
i: Integer;
begin begin
if FSelectedDbgPropertiesConfig = nil then if FSelectedDbgPropertiesConfig = nil then
exit; exit;
@ -320,11 +323,7 @@ begin
if SelectedDebuggerClass = c then if SelectedDebuggerClass = c then
exit; exit;
i := FDebuggerFileHistory.IndexOf(SelectedDebuggerClass.ExePathsMruGroup.ClassName); UpdateDebuggerPathHistory;
Assert((i>=0) or (not SelectedDebuggerClass.NeedsExePath), 'Missing dbg lru');
if i >= 0 then // not found if not NeedExePath
TStringList(FDebuggerFileHistory.Objects[i]).Assign(cmbDebuggerPath.Items);
FSelectedDbgPropertiesConfig.ChangeDebuggerClass(c, True); FSelectedDbgPropertiesConfig.ChangeDebuggerClass(c, True);
// TOOD: Ask user? // TOOD: Ask user?
@ -345,10 +344,23 @@ begin
else SetComboBoxText(cmbDebuggerType, SelectedDebuggerClass.Caption,cstCaseInsensitive); else SetComboBoxText(cmbDebuggerType, SelectedDebuggerClass.Caption,cstCaseInsensitive);
end; end;
procedure TDebuggerClassOptionsFrame.UpdateDebuggerPathHistory;
var
i: Integer;
begin
if FSelectedDbgPropertiesConfig = nil then
exit;
i := FDebuggerFileHistory.IndexOf(SelectedDebuggerClass.ExePathsMruGroup.ClassName);
Assert((i>=0) or (not SelectedDebuggerClass.NeedsExePath), 'Missing dbg lru');
if i >= 0 then // not found if not NeedExePath
TStringList(FDebuggerFileHistory.Objects[i]).Assign(cmbDebuggerPath.Items);
end;
procedure TDebuggerClassOptionsFrame.DoNameSelected(Sender: TObject); procedure TDebuggerClassOptionsFrame.DoNameSelected(Sender: TObject);
var var
idx: PtrInt; idx: PtrInt;
begin begin
UpdateDebuggerPathHistory;
idx := TMenuItem(Sender).Tag; idx := TMenuItem(Sender).Tag;
edNameExit(nil); edNameExit(nil);
@ -639,6 +651,7 @@ var
i: Integer; i: Integer;
EnvConf: TDebuggerPropertiesConfigList; EnvConf: TDebuggerPropertiesConfigList;
begin begin
UpdateDebuggerPathHistory;
with EnvironmentOptions do with EnvironmentOptions do
begin begin
for i := 0 to FDebuggerFileHistory.Count - 1 do for i := 0 to FDebuggerFileHistory.Count - 1 do