diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index e8868b0eae..ffcc2f54be 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -2270,6 +2270,7 @@ resourcestring lisPckEditRecompileAllRequired = 'Recompile all required'; lisPckEditInstall = 'Install'; lisPckEditUninstall = 'Uninstall'; + lisPckEditViewPackgeSource = 'View Package Source'; lisPckEditGeneralOptions = 'General Options'; lisPckEditSaveChanges = 'Save Changes?'; lisPckEditPackageHasChangedSavePackage = 'Package %s%s%s has changed.%sSave ' diff --git a/packager/packageeditor.pas b/packager/packageeditor.pas index 02ac275961..1ebc65b879 100644 --- a/packager/packageeditor.pas +++ b/packager/packageeditor.pas @@ -63,6 +63,8 @@ type function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnUninstallPackage = function(Sender: TObject; APackage: TLazPackage): TModalResult of object; + TOnViewPackageSource = + function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnCreateNewPkgFile = function(Sender: TObject; Params: TAddToPkgResult): TModalResult of object; TOnDeleteAmbigiousFiles = @@ -152,6 +154,7 @@ type procedure SaveAsClick(Sender: TObject); procedure SortFilesMenuItemClick(Sender: TObject); procedure UninstallClick(Sender: TObject); + procedure ViewPkgSourceClick(Sender: TObject); procedure UseMaxVersionCheckBoxClick(Sender: TObject); procedure UseMinVersionCheckBoxClick(Sender: TObject); private @@ -211,6 +214,7 @@ type FOnRevertPackage: TOnRevertPackage; FOnSavePackage: TOnSavePackage; FOnUninstallPackage: TOnUninstallPackage; + FOnViewPackageSource: TOnViewPackageSource; function GetEditors(Index: integer): TPackageEditorForm; procedure ApplyLayout(AnEditor: TPackageEditorForm); procedure SaveLayout(AnEditor: TPackageEditorForm); @@ -239,6 +243,7 @@ type procedure UpdateAllEditors; function InstallPackage(APackage: TLazPackage): TModalResult; function UninstallPackage(APackage: TLazPackage): TModalResult; + function ViewPkgSourcePackage(APackage: TLazPackage): TModalResult; function DeleteAmbigiousFiles(APackage: TLazPackage; const Filename: string): TModalResult; public @@ -266,6 +271,8 @@ type write FOnInstallPackage; property OnUninstallPackage: TOnUninstallPackage read FOnUninstallPackage write FOnUninstallPackage; + property OnViewPackageSource: TOnViewPackageSource read FOnViewPackageSource + write FOnViewPackageSource; property OnDeleteAmbigiousFiles: TOnDeleteAmbigiousFiles read FOnDeleteAmbigiousFiles write FOnDeleteAmbigiousFiles; property OnImExportCompilerOptions: TNotifyEvent @@ -539,7 +546,9 @@ begin OptionsBitBtn.Enabled); AddPopupMenuItem(dlgCompilerOptions, @CompilerOptionsBitBtnClick, CompilerOptionsBitBtn.Enabled); + AddPopupMenuItem(lisPckEditViewPackgeSource, @ViewPkgSourceClick,true); + // remove unneeded menu items while FilesPopupMenu.Items.Count>ItemCnt do FilesPopupMenu.Items.Delete(FilesPopupMenu.Items.Count-1); end; @@ -794,6 +803,11 @@ begin PackageEditors.UninstallPackage(LazPackage); end; +procedure TPackageEditorForm.ViewPkgSourceClick(Sender: TObject); +begin + PackageEditors.ViewPkgSourcePackage(LazPackage); +end; + procedure TPackageEditorForm.UseMaxVersionCheckBoxClick(Sender: TObject); begin MaxVersionEdit.Enabled:=UseMaxVersionCheckBox.Checked; @@ -2105,6 +2119,13 @@ begin Result:=OnUninstallPackage(Self,APackage); end; +function TPackageEditors.ViewPkgSourcePackage(APackage: TLazPackage + ): TModalResult; +begin + if Assigned(OnViewPackageSource) then + Result:=OnViewPackageSource(Self,APackage); +end; + function TPackageEditors.DeleteAmbigiousFiles(APackage: TLazPackage; const Filename: string): TModalResult; begin diff --git a/packager/pkgmanager.pas b/packager/pkgmanager.pas index 63ff30071f..8722e485ca 100644 --- a/packager/pkgmanager.pas +++ b/packager/pkgmanager.pas @@ -82,6 +82,8 @@ type ): TModalResult; function OnPackageEditorSavePackage(Sender: TObject; APackage: TLazPackage; SaveAs: boolean): TModalResult; + function OnPackageEditorViewPkgSourcePackage(Sender: TObject; + APackage: TLazPackage): TModalResult; procedure OnPackageEditorFreeEditor(APackage: TLazPackage); procedure OnPackageEditorGetUnitRegisterInfo(Sender: TObject; const AFilename: string; var TheUnitName: string; @@ -227,6 +229,7 @@ type function ShowConfigureCustomComponents: TModalResult; override; function DoInstallPackage(APackage: TLazPackage): TModalResult; function DoUninstallPackage(APackage: TLazPackage): TModalResult; + function DoOpenPackageSource(APackage: TLazPackage): TModalResult; function DoCompileAutoInstallPackages(Flags: TPkgCompileFlags ): TModalResult; override; function DoSaveAutoInstallConfig: TModalResult; override; @@ -482,6 +485,12 @@ begin Result:=DoSavePackage(APackage,[]); end; +function TPkgManager.OnPackageEditorViewPkgSourcePackage(Sender: TObject; + APackage: TLazPackage): TModalResult; +begin + Result:=DoOpenPackageSource(APackage); +end; + procedure TPkgManager.PackageGraphBeginUpdate(Sender: TObject); begin if PackageGraphExplorer<>nil then PackageGraphExplorer.BeginUpdate; @@ -1517,6 +1526,7 @@ begin PackageEditors.OnCompilePackage:=@OnPackageEditorCompilePackage; PackageEditors.OnInstallPackage:=@OnPackageEditorInstallPackage; PackageEditors.OnUninstallPackage:=@OnPackageEditorUninstallPackage; + PackageEditors.OnViewPackageSource:=@OnPackageEditorViewPkgSourcePackage; PackageEditors.OnDeleteAmbigiousFiles:=@OnPackageEditorDeleteAmbigiousFiles; PackageEditors.OnImExportCompilerOptions:=@OnPackageEditorImExportCompilerOptions; @@ -2416,7 +2426,7 @@ begin +RegistrationCode +'end.'+e; Src:=CodeToolBoss.SourceChangeCache.BeautifyCodeOptions. - BeautifyStatement(Src,0); + BeautifyStatement(Src,0); Src:=HeaderSrc+Src; // check if old code is already uptodate @@ -3013,6 +3023,11 @@ begin Result:=mrOk; end; +function TPkgManager.DoOpenPackageSource(APackage: TLazPackage): TModalResult; +begin + Result:=MainIDE.DoOpenEditorFile(APackage.GetSrcFilename,-1,[ofRegularFile]); +end; + function TPkgManager.DoCompileAutoInstallPackages( Flags: TPkgCompileFlags): TModalResult; var