mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 09:09:17 +02:00
Make TLazPackage own an instance of IDEOptions instead of inheriting from it.
git-svn-id: trunk@45803 -
This commit is contained in:
parent
2fc0b188b7
commit
e8889c7f72
@ -103,8 +103,6 @@ type
|
||||
|
||||
TAbstractIDEEnvironmentOptions = class(TAbstractIDEOptions);
|
||||
TAbstractIDEHelpOptions = class(TAbstractIDEEnvironmentOptions);
|
||||
|
||||
TAbstractIDEPackageOptions = class(TAbstractIDEOptions);
|
||||
TAbstractIDECompilerOptions = class(TAbstractIDEOptions);
|
||||
|
||||
TOnLoadIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
||||
|
@ -112,10 +112,11 @@ type
|
||||
|
||||
{ TLazPackageID }
|
||||
|
||||
TLazPackageID = class(TAbstractIDEPackageOptions)
|
||||
TLazPackageID = class(TPersistent)
|
||||
private
|
||||
FIDAsWord: string;
|
||||
protected
|
||||
FIDEOptions: TAbstractIDEOptions; //actually TPackageIDEOptions;
|
||||
FName: string;
|
||||
FVersion: TPkgVersion;
|
||||
FIDAsString: string;
|
||||
@ -130,9 +131,6 @@ type
|
||||
function Compare(PackageID2: TLazPackageID): integer;
|
||||
function CompareMask(ExactPackageID: TLazPackageID): integer;
|
||||
procedure AssignID(Source: TLazPackageID); virtual;
|
||||
// IDE options
|
||||
class function GetGroupCaption: string; override;
|
||||
class function GetInstance: TAbstractIDEOptions; override;
|
||||
public
|
||||
property Name: string read FName write SetName;
|
||||
property Version: TPkgVersion read FVersion;
|
||||
@ -690,16 +688,6 @@ begin
|
||||
Version.Assign(Source.Version);
|
||||
end;
|
||||
|
||||
class function TLazPackageID.GetGroupCaption: string;
|
||||
begin
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
class function TLazPackageID.GetInstance: TAbstractIDEOptions;
|
||||
begin
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
{ TIDEPackage }
|
||||
|
||||
procedure TIDEPackage.AssignOptions(Source: TPersistent);
|
||||
|
@ -63,8 +63,9 @@ end;
|
||||
|
||||
procedure TPackageDescriptionOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
DescriptionMemo.Text := LazPackage.Description;
|
||||
AuthorEdit.Text := LazPackage.Author;
|
||||
LicenseMemo.Text := LazPackage.License;
|
||||
@ -76,12 +77,13 @@ end;
|
||||
|
||||
procedure TPackageDescriptionOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
NewVersion: TPkgVersion;
|
||||
BrokenDependencies: TFPList;
|
||||
RenameDependencies: boolean;
|
||||
MsgResult: TModalResult;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
LazPackage.Description := DescriptionMemo.Text;
|
||||
LazPackage.Author := AuthorEdit.Text;
|
||||
LazPackage.License := LicenseMemo.Text;
|
||||
@ -118,7 +120,7 @@ end;
|
||||
|
||||
class function TPackageDescriptionOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
||||
begin
|
||||
Result := TLazPackage;
|
||||
Result := TPackageIDEOptions;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -64,26 +64,24 @@ begin
|
||||
EnableI18NCheckBox.Caption := rsEnableI18n;
|
||||
I18NGroupBox.Caption := rsI18nOptions;
|
||||
PoOutDirlabel.Caption := rsPOOutputDirectory;
|
||||
PoForFormsCheckBox.Caption:=lisCreateUpdatePoFileWhenSavingALfmFile;
|
||||
PoForFormsCheckBox.Hint:=
|
||||
lisYouCanDisableThisForIndividualFormsViaThePackageEd;
|
||||
PoForFormsCheckBox.Caption := lisCreateUpdatePoFileWhenSavingALfmFile;
|
||||
PoForFormsCheckBox.Hint := lisYouCanDisableThisForIndividualFormsViaThePackageEd;
|
||||
end;
|
||||
|
||||
procedure TPackageI18NOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
begin
|
||||
FLazPackage := LazPackage;
|
||||
EnableI18NCheckBox.Checked := LazPackage.EnableI18N;
|
||||
I18NGroupBox.Enabled := LazPackage.EnableI18N;
|
||||
POOutDirEdit.Text := LazPackage.POOutputDirectory;
|
||||
PoForFormsCheckBox.Checked:=LazPackage.EnableI18NForLFM;
|
||||
FLazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
EnableI18NCheckBox.Checked := FLazPackage.EnableI18N;
|
||||
I18NGroupBox.Enabled := FLazPackage.EnableI18N;
|
||||
POOutDirEdit.Text := FLazPackage.POOutputDirectory;
|
||||
PoForFormsCheckBox.Checked:=FLazPackage.EnableI18NForLFM;
|
||||
end;
|
||||
|
||||
procedure TPackageI18NOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
LazPackage.EnableI18N := EnableI18NCheckBox.Checked;
|
||||
LazPackage.POOutputDirectory := POOutDirEdit.Text;
|
||||
LazPackage.EnableI18NForLFM := PoForFormsCheckBox.Checked;
|
||||
@ -91,7 +89,7 @@ end;
|
||||
|
||||
class function TPackageI18NOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
||||
begin
|
||||
Result := TLazPackage;
|
||||
Result := TPackageIDEOptions;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -218,23 +218,21 @@ begin
|
||||
end;
|
||||
|
||||
procedure TPackageIntegrationOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
begin
|
||||
FLazPackage := LazPackage;
|
||||
FStoredPkgType := LazPackage.PackageType;
|
||||
FLazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
FStoredPkgType := FLazPackage.PackageType;
|
||||
SetSelectedPkgType(FStoredPkgType);
|
||||
case LazPackage.AutoUpdate of
|
||||
case FLazPackage.AutoUpdate of
|
||||
pupAsNeeded: UpdateRadioGroup.ItemIndex := 0;
|
||||
pupOnRebuildingAll: UpdateRadioGroup.ItemIndex := 1;
|
||||
else
|
||||
UpdateRadioGroup.ItemIndex := 2;
|
||||
end;
|
||||
FPDocSearchPathsEdit.Text:=LazPackage.FPDocPaths;
|
||||
if LazPackage.FPDocPackageName='' then
|
||||
FPDocSearchPathsEdit.Text:=FLazPackage.FPDocPaths;
|
||||
if FLazPackage.FPDocPackageName='' then
|
||||
FPDocPackageNameEdit.Text:=lisDefaultPlaceholder
|
||||
else
|
||||
FPDocPackageNameEdit.Text:=LazPackage.FPDocPackageName;
|
||||
FPDocPackageNameEdit.Text:=FLazPackage.FPDocPackageName;
|
||||
end;
|
||||
|
||||
function TPackageIntegrationOptionsFrame.ShowMsgPackageTypeMustBeDesign: boolean;
|
||||
@ -278,8 +276,9 @@ end;
|
||||
|
||||
procedure TPackageIntegrationOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
LazPackage.PackageType := GetSelectedPkgType;
|
||||
case UpdateRadioGroup.ItemIndex of
|
||||
2: LazPackage.AutoUpdate := pupManually;
|
||||
@ -293,7 +292,7 @@ end;
|
||||
|
||||
class function TPackageIntegrationOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
||||
begin
|
||||
Result := TLazPackage;
|
||||
Result := TPackageIDEOptions;
|
||||
end;
|
||||
|
||||
function TPackageIntegrationOptionsFrame.PkgTypeToCaption(t: TLazPackageType
|
||||
|
@ -41,21 +41,23 @@ end;
|
||||
|
||||
procedure TPackageProvidesOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
ProvidesMemo.Lines.Assign(LazPackage.Provides);
|
||||
end;
|
||||
|
||||
procedure TPackageProvidesOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
LazPackage.Provides := ProvidesMemo.Lines;
|
||||
end;
|
||||
|
||||
class function TPackageProvidesOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
||||
begin
|
||||
Result := TLazPackage;
|
||||
Result := TPackageIDEOptions;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -248,11 +248,9 @@ begin
|
||||
end;
|
||||
|
||||
procedure TPackageUsageOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
begin
|
||||
FLazPackage := LazPackage;
|
||||
with LazPackage.UsageOptions do
|
||||
FLazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
with FLazPackage.UsageOptions do
|
||||
begin
|
||||
UnitPathEdit.Text := UnitPath;
|
||||
IncludePathEdit.Text := IncludePath;
|
||||
@ -261,13 +259,14 @@ begin
|
||||
LinkerOptionsMemo.Text := LinkerOptions;
|
||||
CustomOptionsMemo.Text := CustomOptions;
|
||||
end;
|
||||
AddPackageUnitToProjectCheckBox.Checked := LazPackage.AddToProjectUsesSection;
|
||||
AddPackageUnitToProjectCheckBox.Checked := FLazPackage.AddToProjectUsesSection;
|
||||
end;
|
||||
|
||||
procedure TPackageUsageOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
var
|
||||
LazPackage: TLazPackage absolute AOptions;
|
||||
LazPackage: TLazPackage;
|
||||
begin
|
||||
LazPackage := (AOptions as TPackageIDEOptions).Package;
|
||||
with LazPackage.UsageOptions do
|
||||
begin
|
||||
UnitPath := TrimSearchPath(UnitPathEdit.Text, '');
|
||||
@ -282,7 +281,7 @@ end;
|
||||
|
||||
class function TPackageUsageOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
|
||||
begin
|
||||
Result := TLazPackage;
|
||||
Result := TPackageIDEOptions;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -531,10 +531,22 @@ type
|
||||
podFallback // used when podDefault is not writable
|
||||
);
|
||||
|
||||
TIterateComponentClassesEvent =
|
||||
procedure(PkgComponent: TPkgComponent) of object;
|
||||
TPkgChangeNameEvent = procedure(Pkg: TLazPackage;
|
||||
const OldName: string) of object;
|
||||
TIterateComponentClassesEvent = procedure(PkgComponent: TPkgComponent) of object;
|
||||
TPkgChangeNameEvent = procedure(Pkg: TLazPackage; const OldName: string) of object;
|
||||
|
||||
{ TPackageIDEOptions }
|
||||
|
||||
TPackageIDEOptions = class(TAbstractIDEOptions)
|
||||
private
|
||||
FPackage: TLazPackage;
|
||||
public
|
||||
constructor Create(APackage: TLazPackage);
|
||||
destructor Destroy; override;
|
||||
class function GetInstance: TAbstractIDEOptions; override;
|
||||
class function GetGroupCaption: string; override;
|
||||
property Package: TLazPackage read FPackage;
|
||||
end;
|
||||
|
||||
|
||||
{ TLazPackage }
|
||||
|
||||
@ -594,6 +606,7 @@ type
|
||||
function GetComponents(Index: integer): TPkgComponent;
|
||||
function GetRemovedFiles(Index: integer): TPkgFile;
|
||||
function GetFiles(Index: integer): TPkgFile;
|
||||
function GetIDEOptions: TPackageIDEOptions;
|
||||
procedure SetAddToProjectUsesSection(const AValue: boolean);
|
||||
procedure SetAuthor(const AValue: string);
|
||||
procedure SetAutoIncrementVersionOnBuild(const AValue: boolean);
|
||||
@ -636,12 +649,10 @@ type
|
||||
function GetRemovedPkgFiles(Index: integer): TLazPackageFile; override;
|
||||
procedure SetAutoInstall(AValue: TPackageInstallType); override;
|
||||
public
|
||||
procedure AssignOptions(Source: TPersistent); override;
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
procedure AssignOptions(Source: TPersistent); override;
|
||||
// IDE options
|
||||
class function GetGroupCaption: string; override;
|
||||
class function GetInstance: TAbstractIDEOptions; override;
|
||||
procedure BackupOptions;
|
||||
procedure RestoreOptions;
|
||||
// modified
|
||||
@ -785,6 +796,7 @@ type
|
||||
property Flags: TLazPackageFlags read FFlags write SetFlags;
|
||||
property HoldPackageCount: integer read FHoldPackageCount;
|
||||
property IconFile: string read FIconFile write SetIconFile;
|
||||
property IDEOptions: TPackageIDEOptions read GetIDEOptions;
|
||||
property Installed: TPackageInstallType read FInstalled write SetInstalled;
|
||||
property FPDocPaths: string read FFPDocPaths write SetFPDocPaths;
|
||||
property FPDocPackageName: string read FFPDocPackageName write SetFPDocPackageName;
|
||||
@ -2174,6 +2186,29 @@ begin
|
||||
Result:=AFilename;
|
||||
end;
|
||||
|
||||
{ TPackageIDEOptions }
|
||||
|
||||
constructor TPackageIDEOptions.Create(APackage: TLazPackage);
|
||||
begin
|
||||
inherited Create;
|
||||
FPackage := APackage;
|
||||
end;
|
||||
|
||||
destructor TPackageIDEOptions.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
class function TPackageIDEOptions.GetInstance: TAbstractIDEOptions;
|
||||
begin
|
||||
Result := Package1.IDEOptions;
|
||||
end;
|
||||
|
||||
class function TPackageIDEOptions.GetGroupCaption: string;
|
||||
begin
|
||||
Result := lisPckOptsPackageOptions;
|
||||
end;
|
||||
|
||||
{ TLazPackage }
|
||||
|
||||
procedure TLazPackage.OnMacroListSubstitution(TheMacro: TTransferMacro;
|
||||
@ -2364,6 +2399,11 @@ begin
|
||||
Result:=TPkgFile(FFiles[Index]);
|
||||
end;
|
||||
|
||||
function TLazPackage.GetIDEOptions: TPackageIDEOptions;
|
||||
begin
|
||||
Result := TPackageIDEOptions(FIDEOptions);
|
||||
end;
|
||||
|
||||
function TLazPackage.GetModified: boolean;
|
||||
begin
|
||||
Result:=(lpfModified in FFlags) or CompilerOptions.Modified;
|
||||
@ -2611,6 +2651,7 @@ begin
|
||||
FRemovedFiles:=TFPList.Create;
|
||||
FMacros:=TTransferMacroList.Create;
|
||||
FMacros.OnSubstitution:=@OnMacroListSubstitution;
|
||||
FIDEOptions:=TPackageIDEOptions.Create(Self);
|
||||
FCompilerOptions:=TPkgCompilerOptions.Create(Self);
|
||||
FLazCompilerOptions:=FCompilerOptions;
|
||||
FCompilerOptions.ParsedOpts.InvalidateParseOnChange:=true;
|
||||
@ -2637,22 +2678,13 @@ begin
|
||||
FreeAndNil(FFiles);
|
||||
FreeAndNil(FComponents);
|
||||
FreeAndNil(FCompilerOptions);
|
||||
FreeAndNil(FIDEOptions);
|
||||
FreeAndNil(FUsageOptions);
|
||||
FreeAndNil(FMacros);
|
||||
FreeAndNil(FSourceDirectories);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
class function TLazPackage.GetGroupCaption: string;
|
||||
begin
|
||||
Result := lisPckOptsPackageOptions;
|
||||
end;
|
||||
|
||||
class function TLazPackage.GetInstance: TAbstractIDEOptions;
|
||||
begin
|
||||
Result := Package1;
|
||||
end;
|
||||
|
||||
procedure TLazPackage.BackupOptions;
|
||||
begin
|
||||
if FOptionsBackup=nil then
|
||||
@ -4719,7 +4751,7 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterIDEOptionsGroup(GroupPackage, TLazPackage);
|
||||
RegisterIDEOptionsGroup(GroupPackage, TPackageIDEOptions);
|
||||
RegisterIDEOptionsGroup(GroupPkgCompiler, TPkgCompilerOptions);
|
||||
PackageDependencies:=TAVLTree.Create(@ComparePkgDependencyNames);
|
||||
|
||||
|
@ -1111,11 +1111,11 @@ const
|
||||
);
|
||||
begin
|
||||
Package1 := LazPackage;
|
||||
Package1.OnBeforeRead:=PackageEditors.OnBeforeReadPackage;
|
||||
Package1.OnAfterWrite:=PackageEditors.OnAfterWritePackage;
|
||||
Package1.IDEOptions.OnBeforeRead:=PackageEditors.OnBeforeReadPackage;
|
||||
Package1.IDEOptions.OnAfterWrite:=PackageEditors.OnAfterWritePackage;
|
||||
LazarusIDE.DoOpenIDEOptions(nil,
|
||||
Format(lisPckEditCompilerOptionsForPackage, [LazPackage.IDAsString]),
|
||||
[TLazPackage, TPkgCompilerOptions], Settings[LazPackage.ReadOnly]);
|
||||
[TPackageIDEOptions, TPkgCompilerOptions], Settings[LazPackage.ReadOnly]);
|
||||
UpdateTitle;
|
||||
UpdateButtons;
|
||||
UpdateStatusBar;
|
||||
|
@ -681,20 +681,16 @@ begin
|
||||
end;
|
||||
|
||||
procedure TPkgManager.OnAfterWritePackage(Sender: TObject; Restore: boolean);
|
||||
var
|
||||
APackage: TLazPackage absolute Sender;
|
||||
begin
|
||||
//debugln(['TPkgManager.OnAfterWritePackage ',DbgSName(APackage),' Restore=',Restore]);
|
||||
if Restore then
|
||||
APackage.RestoreOptions;
|
||||
(Sender as TPackageIDEOptions).Package.RestoreOptions;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.OnBeforeReadPackage(Sender: TObject);
|
||||
var
|
||||
APackage: TLazPackage absolute Sender;
|
||||
begin
|
||||
//debugln(['TPkgManager.OnBeforeReadPackage ',DbgSName(APackage)]);
|
||||
APackage.BackupOptions;
|
||||
(Sender as TPackageIDEOptions).Package.BackupOptions;
|
||||
end;
|
||||
|
||||
function TPkgManager.OnPackageEditorCompilePackage(Sender: TObject;
|
||||
|
Loading…
Reference in New Issue
Block a user