Make TProject own an instance of IDEOptions instead of inheriting from it.

git-svn-id: trunk@45802 -
This commit is contained in:
juha 2014-07-06 22:37:43 +00:00
parent 11731e7aa8
commit 2fc0b188b7
13 changed files with 89 additions and 55 deletions

View File

@ -104,7 +104,6 @@ type
TAbstractIDEEnvironmentOptions = class(TAbstractIDEOptions); TAbstractIDEEnvironmentOptions = class(TAbstractIDEOptions);
TAbstractIDEHelpOptions = class(TAbstractIDEEnvironmentOptions); TAbstractIDEHelpOptions = class(TAbstractIDEEnvironmentOptions);
TAbstractIDEProjectOptions = class(TAbstractIDEOptions);
TAbstractIDEPackageOptions = class(TAbstractIDEOptions); TAbstractIDEPackageOptions = class(TAbstractIDEOptions);
TAbstractIDECompilerOptions = class(TAbstractIDEOptions); TAbstractIDECompilerOptions = class(TAbstractIDEOptions);

View File

@ -368,7 +368,7 @@ type
petUnit petUnit
); );
TLazProject = class(TAbstractIDEProjectOptions) TLazProject = class(TPersistent)
private private
FCleanOutputFileMask: string; FCleanOutputFileMask: string;
FCleanSourcesFileMask: string; FCleanSourcesFileMask: string;
@ -388,6 +388,7 @@ type
procedure SetFPDocPaths(const AValue: string); procedure SetFPDocPaths(const AValue: string);
procedure SetUseAppBundle(AValue: Boolean); procedure SetUseAppBundle(AValue: Boolean);
protected protected
FIDEOptions: TAbstractIDEOptions; //actually TProjectIDEOptions;
FLazCompilerOptions: TLazCompilerOptions; FLazCompilerOptions: TLazCompilerOptions;
FFlags: TProjectFlags; FFlags: TProjectFlags;
FResources: TObject; FResources: TObject;

View File

@ -2661,7 +2661,7 @@ procedure TBuildManager.SetBuildTargetProject1(Quiet: boolean;
begin begin
FBuildTarget:=Project1; FBuildTarget:=Project1;
if FBuildTarget<>nil then if FBuildTarget<>nil then
TProject(FBuildTarget).AddHandlerDestroy(@OnProjectDestroy); TProject(FBuildTarget).IDEOptions.AddHandlerDestroy(@OnProjectDestroy);
SetBuildTarget('','','',ScanFPCSrc,Quiet); SetBuildTarget('','','',ScanFPCSrc,Quiet);
end; end;

View File

@ -246,7 +246,7 @@ procedure TProjectApplicationOptionsFrame.ReadSettings(AOptions: TAbstractIDEOpt
var var
AStream: TStream; AStream: TStream;
begin begin
FProject := AOptions as TProject; FProject := (AOptions as TProjectIDEOptions).Project;
with FProject do with FProject do
begin begin
TitleEdit.Text := Title; TitleEdit.Text := Title;
@ -273,7 +273,7 @@ procedure TProjectApplicationOptionsFrame.WriteSettings(AOptions: TAbstractIDEOp
var var
AStream: TStream; AStream: TStream;
begin begin
with AOptions as TProject do with (AOptions as TProjectIDEOptions).Project {AOptions as TProject} do
begin begin
Title := TitleEdit.Text; Title := TitleEdit.Text;
if fIconChanged then if fIconChanged then
@ -298,7 +298,7 @@ end;
class function TProjectApplicationOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectApplicationOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -192,7 +192,7 @@ end;
procedure TProjectFormsOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TProjectFormsOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
var var
Project: TProject absolute AOptions; Project: TProject;
procedure FillAutoCreateFormsListbox; procedure FillAutoCreateFormsListbox;
var var
@ -257,23 +257,24 @@ var
end; end;
begin begin
Project := (AOptions as TProjectIDEOptions).Project;
FillAutoCreateFormsListbox; FillAutoCreateFormsListbox;
FillAvailFormsListBox; FillAvailFormsListBox;
FormsAutoCreateNewFormsCheckBox.Checked := Project.AutoCreateForms; FormsAutoCreateNewFormsCheckBox.Checked := Project.AutoCreateForms;
end; end;
procedure TProjectFormsOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions); procedure TProjectFormsOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
var var
Project: TProject absolute AOptions; Project: TProject;
begin begin
Project := (AOptions as TProjectIDEOptions).Project;
Project.AutoCreateForms := FormsAutoCreateNewFormsCheckBox.Checked; Project.AutoCreateForms := FormsAutoCreateNewFormsCheckBox.Checked;
Project.TmpAutoCreatedForms := FormsAutoCreatedListBox.Items; Project.TmpAutoCreatedForms := FormsAutoCreatedListBox.Items;
end; end;
class function TProjectFormsOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectFormsOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -85,7 +85,7 @@ end;
procedure TProjectI18NOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TProjectI18NOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin begin
FProject := AOptions as TProject; FProject := (AOptions as TProjectIDEOptions).Project;
with FProject do with FProject do
begin begin
POOutDirEdit.Text := POOutputDirectory; POOutDirEdit.Text := POOutputDirectory;
@ -97,7 +97,7 @@ end;
procedure TProjectI18NOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions); procedure TProjectI18NOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
begin begin
with AOptions as TProject do with (AOptions as TProjectIDEOptions).Project do
begin begin
POOutputDirectory := POOutDirEdit.Text; POOutputDirectory := POOutDirEdit.Text;
EnableI18N := EnableI18NCheckBox.Checked; EnableI18N := EnableI18NCheckBox.Checked;
@ -107,7 +107,7 @@ end;
class function TProjectI18NOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectI18NOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -120,7 +120,7 @@ end;
procedure TProjectFPDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TProjectFPDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin begin
with AOptions as TProject do begin with (AOptions as TProjectIDEOptions).Project do begin
SplitString(FPDocPaths, ';', PathsListBox.Items, True); SplitString(FPDocPaths, ';', PathsListBox.Items, True);
if FPDocPackageName='' then if FPDocPackageName='' then
FPDocPackageNameEdit.Text:=lisDefaultPlaceholder FPDocPackageNameEdit.Text:=lisDefaultPlaceholder
@ -131,7 +131,7 @@ end;
procedure TProjectFPDocOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions); procedure TProjectFPDocOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
begin begin
with AOptions as TProject do begin with (AOptions as TProjectIDEOptions).Project do begin
FPDocPaths := StringListToText(PathsListBox.Items, ';', True); FPDocPaths := StringListToText(PathsListBox.Items, ';', True);
FPDocPackageName:=GetFPDocPkgNameEditValue; FPDocPackageName:=GetFPDocPkgNameEditValue;
end; end;
@ -139,7 +139,7 @@ end;
class function TProjectFPDocOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectFPDocOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -74,7 +74,7 @@ end;
procedure TProjectMiscOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TProjectMiscOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin begin
with AOptions as TProject do with (AOptions as TProjectIDEOptions).Project do
begin begin
MainUnitIsPascalSourceCheckBox.Checked := (pfMainUnitIsPascalSource in Flags); MainUnitIsPascalSourceCheckBox.Checked := (pfMainUnitIsPascalSource in Flags);
MainUnitHasUsesSectionForAllUnitsCheckBox.Checked := (pfMainUnitHasUsesSectionForAllUnits in Flags); MainUnitHasUsesSectionForAllUnitsCheckBox.Checked := (pfMainUnitHasUsesSectionForAllUnits in Flags);
@ -100,7 +100,7 @@ end;
procedure TProjectMiscOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions); procedure TProjectMiscOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
var var
Project: TProject absolute AOptions; Project: TProject;
NewFlags: TProjectFlags; NewFlags: TProjectFlags;
procedure SetProjectFlag(AFlag: TProjectFlag; AValue: Boolean); procedure SetProjectFlag(AFlag: TProjectFlag; AValue: Boolean);
@ -112,6 +112,7 @@ var
end; end;
begin begin
Project := (AOptions as TProjectIDEOptions).Project;
NewFlags := Project.Flags; NewFlags := Project.Flags;
SetProjectFlag(pfMainUnitIsPascalSource, SetProjectFlag(pfMainUnitIsPascalSource,
MainUnitIsPascalSourceCheckBox.Checked); MainUnitIsPascalSourceCheckBox.Checked);
@ -139,7 +140,7 @@ end;
class function TProjectMiscOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectMiscOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -185,13 +185,12 @@ end;
procedure TResourcesOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TResourcesOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
var var
Project: TProject absolute AOptions;
List: TResourceList; List: TResourceList;
I: Integer; I: Integer;
begin begin
FProject := Project; FProject := (AOptions as TProjectIDEOptions).Project;
lbResources.Items.Clear; lbResources.Items.Clear;
List := Project.ProjResources.UserResources.List; List := FProject.ProjResources.UserResources.List;
lbResources.Items.BeginUpdate; lbResources.Items.BeginUpdate;
try try
for I := 0 to List.Count - 1 do for I := 0 to List.Count - 1 do
@ -204,9 +203,10 @@ end;
procedure TResourcesOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions); procedure TResourcesOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
var var
Project: TProject absolute AOptions; Project: TProject;
I: Integer; I: Integer;
begin begin
Project := (AOptions as TProjectIDEOptions).Project;
Project.ProjResources.UserResources.List.Clear; Project.ProjResources.UserResources.List.Clear;
for I := 0 to lbResources.Items.Count - 1 do for I := 0 to lbResources.Items.Count - 1 do
Project.ProjResources.UserResources.List.AddResource(lbResources.Items[I].Caption, Project.ProjResources.UserResources.List.AddResource(lbResources.Items[I].Caption,
@ -215,7 +215,7 @@ end;
class function TResourcesOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TResourcesOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -88,9 +88,9 @@ end;
procedure TProjectSaveOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); procedure TProjectSaveOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin begin
if not (AOptions is TProject) then exit; if not (AOptions is TProjectIDEOptions) then exit;
fProject:=TProject(AOptions); fProject:=(AOptions as TProjectIDEOptions).Project;
with AOptions as TProject do with fProject do
begin begin
SaveClosedUnitInfoCheckBox.Checked := (pfSaveClosedUnits in Flags); SaveClosedUnitInfoCheckBox.Checked := (pfSaveClosedUnits in Flags);
SaveOnlyProjectUnitInfoCheckBox.Checked := (pfSaveOnlyProjectUnits in Flags); SaveOnlyProjectUnitInfoCheckBox.Checked := (pfSaveOnlyProjectUnits in Flags);
@ -104,8 +104,8 @@ procedure TProjectSaveOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
var var
AFlags: TProjectFlags; AFlags: TProjectFlags;
begin begin
if not (AOptions is TProject) then exit; if not (AOptions is TProjectIDEOptions) then exit;
with AOptions as TProject do with (AOptions as TProjectIDEOptions).Project do
begin begin
AFlags := Flags; AFlags := Flags;
if SaveClosedUnitInfoCheckBox.Checked then if SaveClosedUnitInfoCheckBox.Checked then
@ -132,7 +132,7 @@ end;
class function TProjectSaveOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectSaveOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -170,7 +170,7 @@ var
i: integer; i: integer;
Attr: TProjectVersionAttribute; Attr: TProjectVersionAttribute;
begin begin
FVersionInfo := (AOptions as TProject).ProjResources.VersionInfo; FVersionInfo := (AOptions as TProjectIDEOptions).Project.ProjResources.VersionInfo;
UseVersionInfoCheckBox.Checked := FVersionInfo.UseVersionInfo; UseVersionInfoCheckBox.Checked := FVersionInfo.UseVersionInfo;
MajorVersionSpinEdit.Value := FVersionInfo.MajorVersionNr; MajorVersionSpinEdit.Value := FVersionInfo.MajorVersionNr;
@ -212,7 +212,7 @@ var
t: TProjectVersionStringTable; t: TProjectVersionStringTable;
attrs: TProjectVersionAttributes; attrs: TProjectVersionAttributes;
begin begin
VersionInfo := (AOptions as TProject).ProjResources.VersionInfo; VersionInfo := (AOptions as TProjectIDEOptions).Project.ProjResources.VersionInfo;
VersionInfo.UseVersionInfo := UseVersionInfoCheckBox.Checked; VersionInfo.UseVersionInfo := UseVersionInfoCheckBox.Checked;
VersionInfo.AutoIncrementBuild := AutomaticallyIncreaseBuildCheckBox.Checked; VersionInfo.AutoIncrementBuild := AutomaticallyIncreaseBuildCheckBox.Checked;
VersionInfo.MajorVersionNr := MajorVersionSpinEdit.Value; VersionInfo.MajorVersionNr := MajorVersionSpinEdit.Value;
@ -240,7 +240,7 @@ end;
class function TProjectVersionInfoOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass; class function TProjectVersionInfoOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin begin
Result := TProject; Result := TProjectIDEOptions;
end; end;
initialization initialization

View File

@ -425,8 +425,7 @@ type
procedure OnLoadIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions); procedure OnLoadIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
procedure OnSaveIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions); procedure OnSaveIDEOptions(Sender: TObject; AOptions: TAbstractIDEOptions);
procedure DoOpenIDEOptions(AEditor: TAbstractIDEOptionsEditorClass; procedure DoOpenIDEOptions(AEditor: TAbstractIDEOptionsEditorClass;
ACaption: String; ACaption: String; AOptionsFilter: array of TAbstractIDEOptionsClass;
AOptionsFilter: array of TAbstractIDEOptionsClass;
ASettings: TIDEOptionsEditorSettings); override; ASettings: TIDEOptionsEditorSettings); override;
procedure DoEnvironmentOptionsBeforeRead(Sender: TObject); procedure DoEnvironmentOptionsBeforeRead(Sender: TObject);
@ -4238,7 +4237,7 @@ procedure TMainIDE.mnuProjectOptionsClicked(Sender: TObject);
begin begin
if Project1=nil then exit; if Project1=nil then exit;
DoOpenIDEOptions(nil, Format(dlgProjectOptionsFor, [Project1.GetTitleOrName]), DoOpenIDEOptions(nil, Format(dlgProjectOptionsFor, [Project1.GetTitleOrName]),
[TAbstractIDEProjectOptions, TProjectCompilerOptions], []); [TProjectIDEOptions, TProjectCompilerOptions], []);
end; end;
function TMainIDE.UpdateProjectPOFile(AProject: TProject): TModalResult; function TMainIDE.UpdateProjectPOFile(AProject: TProject): TModalResult;
@ -5004,7 +5003,7 @@ begin
//debugln(['TMainIDE.DoProjectOptionsBeforeRead ',DbgSName(Sender)]); //debugln(['TMainIDE.DoProjectOptionsBeforeRead ',DbgSName(Sender)]);
ActiveSrcEdit:=nil; ActiveSrcEdit:=nil;
BeginCodeTool(ActiveSrcEdit, ActiveUnitInfo, []); BeginCodeTool(ActiveSrcEdit, ActiveUnitInfo, []);
AProject:=TProject(Sender); AProject:=(Sender as TProjectIDEOptions).Project;
AProject.BackupSession; AProject.BackupSession;
AProject.BackupBuildModes; AProject.BackupBuildModes;
AProject.UpdateExecutableType; AProject.UpdateExecutableType;
@ -5013,7 +5012,7 @@ end;
procedure TMainIDE.DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean); procedure TMainIDE.DoProjectOptionsAfterWrite(Sender: TObject; Restore: boolean);
var var
AProject: TProject absolute Sender; AProject: TProject;
aFilename: String; aFilename: String;
function GetTitle: String; function GetTitle: String;
@ -5099,6 +5098,7 @@ var
begin begin
//debugln(['TMainIDE.DoProjectOptionsAfterWrite ',DbgSName(Sender),' Restore=',Restore]); //debugln(['TMainIDE.DoProjectOptionsAfterWrite ',DbgSName(Sender),' Restore=',Restore]);
AProject:=(Sender as TProjectIDEOptions).Project;
if not Restore then if not Restore then
begin begin
SetTitle; SetTitle;
@ -6189,8 +6189,8 @@ begin
Result.OnSaveUnitSessionInfo:=@OnSaveProjectUnitSessionInfo; Result.OnSaveUnitSessionInfo:=@OnSaveProjectUnitSessionInfo;
Result.OnGetTestDirectory:=@OnProjectGetTestDirectory; Result.OnGetTestDirectory:=@OnProjectGetTestDirectory;
Result.OnChangeProjectInfoFile:=@OnProjectChangeInfoFile; Result.OnChangeProjectInfoFile:=@OnProjectChangeInfoFile;
Result.OnBeforeRead:=@DoProjectOptionsBeforeRead; Result.IDEOptions.OnBeforeRead:=@DoProjectOptionsBeforeRead;
Result.OnAfterWrite:=@DoProjectOptionsAfterWrite; Result.IDEOptions.OnAfterWrite:=@DoProjectOptionsAfterWrite;
end; end;
function TMainIDE.DoNewProject(ProjectDesc: TProjectDescriptor): TModalResult; function TMainIDE.DoNewProject(ProjectDesc: TProjectDescriptor): TModalResult;
@ -9279,8 +9279,7 @@ begin
Owners.Free; Owners.Free;
end; end;
end; end;
if FilenameIsAbsolute(CodeToolsOpts.IndentationFileName) if FilenameIsAbsolute(CodeToolsOpts.IndentationFileName) then
then
AddFile(CodeToolsOpts.IndentationFileName); AddFile(CodeToolsOpts.IndentationFileName);
end; end;

View File

@ -725,6 +725,19 @@ type
property SessionMatrixOptions: TBuildMatrixOptions read FSessionMatrixOptions; property SessionMatrixOptions: TBuildMatrixOptions read FSessionMatrixOptions;
end; end;
{ TProjectIDEOptions }
TProjectIDEOptions = class(TAbstractIDEOptions)
private
FProject: TProject;
public
constructor Create(AProject: TProject);
destructor Destroy; override;
class function GetInstance: TAbstractIDEOptions; override;
class function GetGroupCaption: string; override;
property Project: TProject read FProject;
end;
{ TProject } { TProject }
TEndUpdateProjectEvent = TEndUpdateProjectEvent =
@ -819,6 +832,7 @@ type
function GetFirstPartOfProject: TUnitInfo; function GetFirstPartOfProject: TUnitInfo;
function GetFirstUnitWithComponent: TUnitInfo; function GetFirstUnitWithComponent: TUnitInfo;
function GetFirstUnitWithEditorIndex: TUnitInfo; function GetFirstUnitWithEditorIndex: TUnitInfo;
function GetIDEOptions: TProjectIDEOptions;
function GetMainFilename: String; function GetMainFilename: String;
function GetMainUnitInfo: TUnitInfo; function GetMainUnitInfo: TUnitInfo;
function GetProjResources: TProjectResources; function GetProjResources: TProjectResources;
@ -904,8 +918,6 @@ type
public public
constructor Create(ProjectDescription: TProjectDescriptor); override; constructor Create(ProjectDescription: TProjectDescriptor); override;
destructor Destroy; override; destructor Destroy; override;
class function GetInstance: TAbstractIDEOptions; override;
class function GetGroupCaption: string; override;
procedure Clear; override; procedure Clear; override;
procedure BeginUpdate(Change: boolean); procedure BeginUpdate(Change: boolean);
procedure EndUpdate; procedure EndUpdate;
@ -1098,6 +1110,7 @@ type
property FirstRequiredDependency: TPkgDependency read FFirstRequiredDependency; property FirstRequiredDependency: TPkgDependency read FFirstRequiredDependency;
property FirstUnitWithComponent: TUnitInfo read GetFirstUnitWithComponent; property FirstUnitWithComponent: TUnitInfo read GetFirstUnitWithComponent;
property FirstUnitWithEditorIndex: TUnitInfo read GetFirstUnitWithEditorIndex; property FirstUnitWithEditorIndex: TUnitInfo read GetFirstUnitWithEditorIndex;
property IDEOptions: TProjectIDEOptions read GetIDEOptions;
property JumpHistory: TProjectJumpHistory read FJumpHistory write FJumpHistory; property JumpHistory: TProjectJumpHistory read FJumpHistory write FJumpHistory;
property LastCompilerFileDate: integer read FLastCompilerFileDate property LastCompilerFileDate: integer read FLastCompilerFileDate
write FLastCompilerFileDate; write FLastCompilerFileDate;
@ -2623,6 +2636,29 @@ begin
end; end;
{ TProjectIDEOptions }
constructor TProjectIDEOptions.Create(AProject: TProject);
begin
inherited Create;
FProject := AProject;
end;
destructor TProjectIDEOptions.Destroy;
begin
inherited Destroy;
end;
class function TProjectIDEOptions.GetInstance: TAbstractIDEOptions;
begin
Result := Project1.IDEOptions;
end;
class function TProjectIDEOptions.GetGroupCaption: string;
begin
Result := dlgProjectOptions;
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
TProject Class TProject Class
@ -2661,6 +2697,7 @@ begin
FSourceDirectories:=TFileReferenceList.Create; FSourceDirectories:=TFileReferenceList.Create;
FSourceDirectories.OnChanged:=@SourceDirectoriesChanged; FSourceDirectories.OnChanged:=@SourceDirectoriesChanged;
UpdateProjectDirectory; UpdateProjectDirectory;
FIDEOptions:=TProjectIDEOptions.Create(Self);
FPublishOptions:=TPublishProjectOptions.Create(Self); FPublishOptions:=TPublishProjectOptions.Create(Self);
FRunParameters:=TRunParamsOptions.Create; FRunParameters:=TRunParamsOptions.Create;
Title := ''; Title := '';
@ -2692,6 +2729,7 @@ begin
FreeThenNil(FJumpHistory); FreeThenNil(FJumpHistory);
FreeThenNil(FSourceDirectories); FreeThenNil(FSourceDirectories);
FreeThenNil(FPublishOptions); FreeThenNil(FPublishOptions);
FreeThenNil(FIDEOptions);
FreeThenNil(FRunParameters); FreeThenNil(FRunParameters);
FreeThenNil(FDefineTemplates); FreeThenNil(FDefineTemplates);
@ -3775,16 +3813,6 @@ begin
TProjectXPManifest(ProjResources[TProjectXPManifest]).UseManifest:=AValue; TProjectXPManifest(ProjResources[TProjectXPManifest]).UseManifest:=AValue;
end; end;
class function TProject.GetInstance: TAbstractIDEOptions;
begin
Result := Project1;
end;
class function TProject.GetGroupCaption: string;
begin
Result := dlgProjectOptions;
end;
function TProject.UnitCount:integer; function TProject.UnitCount:integer;
begin begin
Result:=FUnitList.Count; Result:=FUnitList.Count;
@ -4134,6 +4162,11 @@ begin
Result:=fFirst[uilWithEditorIndex]; Result:=fFirst[uilWithEditorIndex];
end; end;
function TProject.GetIDEOptions: TProjectIDEOptions;
begin
Result := TProjectIDEOptions(FIDEOptions);
end;
function TProject.GetMainUnitInfo: TUnitInfo; function TProject.GetMainUnitInfo: TUnitInfo;
begin begin
if (MainUnitID>=0) and (MainUnitID<UnitCount) then if (MainUnitID>=0) and (MainUnitID<UnitCount) then
@ -7316,7 +7349,7 @@ begin
end; end;
initialization initialization
RegisterIDEOptionsGroup(GroupProject, TProject); RegisterIDEOptionsGroup(GroupProject, TProjectIDEOptions);
RegisterIDEOptionsGroup(GroupCompiler, TProjectCompilerOptions); RegisterIDEOptionsGroup(GroupCompiler, TProjectCompilerOptions);
end. end.