mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-26 20:23:46 +02:00
121 lines
3.4 KiB
ObjectPascal
121 lines
3.4 KiB
ObjectPascal
unit Project_ValConv_Options;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes,
|
|
// LCL
|
|
Forms, ExtCtrls, StdCtrls,
|
|
// LazControls
|
|
DividerBevel,
|
|
// BuildIntf
|
|
IDEOptionsIntf,
|
|
// IdeIntf
|
|
IDEOptEditorIntf,
|
|
// DebuggerIntf
|
|
DbgIntfDebuggerBase,
|
|
// IdeDebugger
|
|
IdeDebuggerStringConstants, IdeDbgValueConverterSettingsFrame, IdeDebuggerOpts,
|
|
IdeDebuggerBackendValueConv, ProjectDebugLink,
|
|
// IDE
|
|
Project, DebugManager, LazarusIDEStrConsts;
|
|
|
|
type
|
|
|
|
{ TIdeProjectValConvOptionsFrame }
|
|
|
|
TIdeProjectValConvOptionsFrame = class(TAbstractIDEOptionsEditor)
|
|
chkUseProjList: TCheckBox;
|
|
chkUseGlobalList: TCheckBox;
|
|
chkStoreInSession: TCheckBox;
|
|
DbgValConvFrame1: TIdeDbgValConvFrame;
|
|
DividerBevel1: TDividerBevel;
|
|
Panel1: TPanel;
|
|
private
|
|
FValConvList: TIdeDbgValueConvertSelectorList;
|
|
public
|
|
destructor Destroy; override;
|
|
function GetTitle: String; override;
|
|
procedure Setup({%H-}ADialog: TAbstractOptionsEditorDialog); override;
|
|
procedure ReadSettings({%H-}AOptions: TAbstractIDEOptions); override;
|
|
procedure WriteSettings({%H-}AOptions: TAbstractIDEOptions); override;
|
|
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TIdeProjectValConvOptionsFrame }
|
|
|
|
destructor TIdeProjectValConvOptionsFrame.Destroy;
|
|
begin
|
|
inherited Destroy;
|
|
FValConvList.Free;
|
|
end;
|
|
|
|
function TIdeProjectValConvOptionsFrame.GetTitle: String;
|
|
begin
|
|
Result := dlgBackConvOptDebugOptions;
|
|
end;
|
|
|
|
procedure TIdeProjectValConvOptionsFrame.Setup(
|
|
ADialog: TAbstractOptionsEditorDialog);
|
|
begin
|
|
DbgValConvFrame1.Setup;
|
|
chkStoreInSession.Caption := drsStoreConverterConfigInSes;
|
|
chkStoreInSession.Hint := drsThisOnlyAffectsTheListOfC;
|
|
chkUseGlobalList.Caption := drsUseTheIDEGlobalListOfConv;
|
|
chkUseProjList.Caption := drsUseTheProjectListOfConver;
|
|
end;
|
|
|
|
procedure TIdeProjectValConvOptionsFrame.ReadSettings(
|
|
AOptions: TAbstractIDEOptions);
|
|
begin
|
|
if FValConvList = nil then
|
|
FValConvList := TIdeDbgValueConvertSelectorList.Create;
|
|
FValConvList.Assign(DbgProjectLink.BackendConverterConfig);
|
|
FValConvList.Changed := False;
|
|
DbgValConvFrame1.ValConvList := FValConvList;
|
|
|
|
chkStoreInSession.Checked := DbgProjectLink.StoreBackendConverterConfigInSession;
|
|
chkUseGlobalList.Checked := DbgProjectLink.UseBackendConverterFromIDE;
|
|
chkUseProjList.Checked := DbgProjectLink.UseBackendConverterFromProject;
|
|
end;
|
|
|
|
procedure TIdeProjectValConvOptionsFrame.WriteSettings(
|
|
AOptions: TAbstractIDEOptions);
|
|
var
|
|
HasChg: Boolean;
|
|
begin
|
|
DbgValConvFrame1.SaveCurrent;
|
|
|
|
HasChg :=
|
|
(DbgProjectLink.UseBackendConverterFromIDE <> chkUseGlobalList.Checked) or
|
|
(DbgProjectLink.UseBackendConverterFromProject <> chkUseProjList.Checked) or
|
|
FValConvList.Changed;
|
|
|
|
DbgProjectLink.StoreBackendConverterConfigInSession := chkStoreInSession.Checked;
|
|
DbgProjectLink.UseBackendConverterFromIDE := chkUseGlobalList.Checked;
|
|
DbgProjectLink.UseBackendConverterFromProject := chkUseProjList.Checked;
|
|
|
|
if FValConvList.Changed then begin
|
|
DbgProjectLink.BackendConverterConfig.Assign(FValConvList);
|
|
DbgProjectLink.BackendConverterConfig.Changed := True;
|
|
|
|
end;
|
|
end;
|
|
|
|
class function TIdeProjectValConvOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
|
begin
|
|
Result := TProjectIDEOptions;
|
|
end;
|
|
|
|
initialization
|
|
RegisterIDEOptionsEditor(GroupProject, TIdeProjectValConvOptionsFrame, ProjectOptionsDbgValueConvert, ProjectOptionsDebug);
|
|
|
|
end.
|
|
|