lazarus/components/projectgroups/prjgrpoptionsfrm.pas
2019-07-09 10:47:53 +00:00

109 lines
3.2 KiB
ObjectPascal

{ IDE options frame for project groups options
Author: Mattias Gaertner
}
unit PrjGrpOptionsFrm;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, ProjectGroupStrConst,
// LCL
Forms, StdCtrls, Dialogs,
// LazUtils
LazFileCache, LazFileUtils, LazLoggerBase,
// IdeIntf
IDEOptionsIntf, IDEOptEditorIntf, ProjectGroup;
type
{ TProjGrpOptionsFrame }
TProjGrpOptionsFrame = class(TAbstractIDEOptionsEditor)
BuildCommandToCompileTargetCheckBox: TCheckBox;
OpenLastGroupOnStartCheckBox: TCheckBox;
ShowTargetPathsCheckBox: TCheckBox;
private
FLastOpenLastGroupOnStart: Boolean;
FLastShowTargetPaths: Boolean;
FLastBuildCommandToCompileTarget: Boolean;
public
function GetTitle: String; override;
procedure Setup({%H-}ADialog: TAbstractOptionsEditorDialog); override;
procedure ReadSettings({%H-}AOptions: TAbstractIDEOptions); override;
procedure WriteSettings({%H-}AOptions: TAbstractIDEOptions); override;
procedure RestoreSettings({%H-}AOptions: TAbstractIDEOptions); override;
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
end;
implementation
{$R *.lfm}
{ TProjGrpOptionsFrame }
function TProjGrpOptionsFrame.GetTitle: String;
begin
Result:=lisProjectGroups;
end;
procedure TProjGrpOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin
OpenLastGroupOnStartCheckBox.Caption:=lisOpenLastGroupOnStart;
OpenLastGroupOnStartCheckBox.Hint:=lisOnIDEStartReopenLastOpenGroup;
ShowTargetPathsCheckBox.Caption:=lisShowTargetPaths;
ShowTargetPathsCheckBox.Hint:=lisEnableToShowTargetFilenamesWithPaths;
BuildCommandToCompileTargetCheckBox.Caption:=lisCompileAndBuildCompileTarget;
BuildCommandToCompileTargetCheckBox.Hint:=
lisIDECommandsCompileAndBuildInvokeCompileBuildSelect;
end;
procedure TProjGrpOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
var
Opts: TIDEProjectGroupOptions;
begin
Opts:=IDEProjectGroupManager.Options;
FLastOpenLastGroupOnStart:=Opts.OpenLastGroupOnStart;
OpenLastGroupOnStartCheckBox.Checked:=FLastOpenLastGroupOnStart;
FLastShowTargetPaths:=Opts.ShowTargetPaths;
ShowTargetPathsCheckBox.Checked:=FLastShowTargetPaths;
FLastBuildCommandToCompileTarget:=Opts.BuildCommandToCompileTarget;
BuildCommandToCompileTargetCheckBox.Checked:=FLastBuildCommandToCompileTarget;
end;
procedure TProjGrpOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
var
Opts: TIDEProjectGroupOptions;
begin
Opts:=IDEProjectGroupManager.Options;
Opts.OpenLastGroupOnStart:=OpenLastGroupOnStartCheckBox.Checked;
Opts.ShowTargetPaths:=ShowTargetPathsCheckBox.Checked;
Opts.BuildCommandToCompileTarget:=BuildCommandToCompileTargetCheckBox.Checked;
if Opts.Modified then begin
Opts.SaveSafe;
if IDEProjectGroupManager.OnEditorOptionsChanged<>nil then
IDEProjectGroupManager.OnEditorOptionsChanged(Self);
end;
end;
procedure TProjGrpOptionsFrame.RestoreSettings(AOptions: TAbstractIDEOptions);
begin
OpenLastGroupOnStartCheckBox.Checked:=FLastOpenLastGroupOnStart;
ShowTargetPathsCheckBox.Checked:=FLastShowTargetPaths;
end;
class function TProjGrpOptionsFrame.
SupportedOptionsClass: TAbstractIDEOptionsClass;
begin
Result:=IDEEditorGroups.GetByIndex(GroupEnvironment)^.GroupClass;
end;
end.