From a469a64f532aec82e8a7e2f59e90af82cb260a06 Mon Sep 17 00:00:00 2001 From: mattias Date: Fri, 1 Aug 2014 12:38:12 +0000 Subject: [PATCH] IDE: package editor: started find in files git-svn-id: trunk@46004 - --- ide/mainbase.pas | 14 ------ packager/packageeditor.pas | 83 +++++++++++++++++++---------------- packager/pkggraphexplorer.pas | 8 ++-- packager/pkgmanager.pas | 23 +++++++++- 4 files changed, 72 insertions(+), 56 deletions(-) diff --git a/ide/mainbase.pas b/ide/mainbase.pas index ed139dbfc0..d3eb11b5a1 100644 --- a/ide/mainbase.pas +++ b/ide/mainbase.pas @@ -1516,20 +1516,6 @@ begin end; end; -//function TMainIDEBase.DoJumpToCodePos(ActiveSrcEdit: TSourceEditor; ActiveUnitInfo: TUnitInfo; -// NewSource: TCodeBuffer; NewX, NewY, NewTopLine: integer; AddJumpPoint: boolean; -// FocusEditor: Boolean; MarkLine: Boolean): TModalResult; -//var -// Flags: TJumpToCodePosFlags; -//begin -// Flags := []; -// if FocusEditor then Include(Flags, jfFocusEditor); -// if AddJumpPoint then Include(Flags, jfAddJumpPoint); -// if MarkLine then Include(Flags, jfMarkLine); -// DoJumpToCodePosition(ActiveSrcEdit, ActiveUnitInfo, NewSource, NewX, NewY, NewTopLine, -// Flags) -//end; - procedure TMainIDEBase.FindInFilesPerDialog(AProject: TProject); begin FindInFilesDialog.FindInFilesPerDialog(AProject); diff --git a/packager/packageeditor.pas b/packager/packageeditor.pas index 23f55b382c..01cbe1580c 100644 --- a/packager/packageeditor.pas +++ b/packager/packageeditor.pas @@ -77,6 +77,7 @@ var PkgEditMenuCleanDependencies: TIDEMenuCommand; // all files + PkgEditMenuFindInFiles: TIDEMenuCommand; PkgEditMenuSortFiles: TIDEMenuCommand; PkgEditMenuFixFilesCase: TIDEMenuCommand; PkgEditMenuShowMissingFiles: TIDEMenuCommand; @@ -96,6 +97,7 @@ var PkgEditMenuViewPackageSource: TIDEMenuCommand; type + TOnPkgEvent = function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnAddPkgToProject = function(Sender: TObject; APackage: TLazPackage; OnlyTestIfPossible: boolean): TModalResult of object; @@ -104,35 +106,17 @@ type CompileClean, CompileRequired: boolean): TModalResult of object; TOnCreateNewPkgFile = function(Sender: TObject; Params: TAddToPkgResult): TModalResult of object; - TOnCreatePkgFpmakeFile = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; - TOnCreatePkgMakefile = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnDeleteAmbiguousFiles = function(Sender: TObject; APackage: TLazPackage; const Filename: string): TModalResult of object; TOnFreePkgEditor = procedure(APackage: TLazPackage) of object; - TOnInstallPackage = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnOpenFile = function(Sender: TObject; const Filename: string): TModalResult of object; - TOnOpenPackage = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnOpenPkgFile = function(Sender: TObject; PkgFile: TPkgFile): TModalResult of object; - TOnPublishPackage = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; - TOnRevertPackage = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TOnSavePackage = function(Sender: TObject; APackage: TLazPackage; SaveAs: boolean): TModalResult of object; - TOnUninstallPackage = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; - TOnViewPackageSource = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; - TOnViewPackageToDos = - function(Sender: TObject; APackage: TLazPackage): TModalResult of object; TPENodeType = ( penFile, @@ -251,6 +235,7 @@ type procedure DisableI18NForLFMCheckBoxChange(Sender: TObject); procedure EditVirtualUnitMenuItemClick(Sender: TObject); procedure ExpandDirectoryMenuItemClick(Sender: TObject); + procedure FindInFilesMenuItemClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormDropFiles(Sender: TObject; const FileNames: array of String); @@ -348,6 +333,7 @@ type constructor Create(TheOwner: TComponent); override; destructor Destroy; override; procedure DoCompile(CompileClean, CompileRequired: boolean); + procedure DoFindInFiles; procedure DoFixFilesCase; procedure DoShowMissingFiles; procedure DoMoveCurrentFile(Offset: integer); @@ -404,24 +390,25 @@ type FOnCompilePackage: TOnCompilePackage; FOnCopyMoveFiles: TNotifyEvent; FOnCreateNewFile: TOnCreateNewPkgFile; - FOnCreateMakefile: TOnCreatePkgMakefile; - FOnCreateFpmakeFile: TOnCreatePkgFpmakeFile; + FOnCreateMakefile: TOnPkgEvent; + FOnCreateFpmakeFile: TOnPkgEvent; FOnDeleteAmbiguousFiles: TOnDeleteAmbiguousFiles; FOnDragDropTreeView: TDragDropEvent; FOnDragOverTreeView: TOnDragOverTreeView; + FOnShowFindInFiles: TOnPkgEvent; FOnFreeEditor: TOnFreePkgEditor; FOnGetIDEFileInfo: TGetIDEFileStateEvent; FOnGetUnitRegisterInfo: TOnGetUnitRegisterInfo; - FOnInstallPackage: TOnInstallPackage; + FOnInstallPackage: TOnPkgEvent; FOnOpenFile: TOnOpenFile; - FOnOpenPackage: TOnOpenPackage; + FOnOpenPackage: TOnPkgEvent; FOnOpenPkgFile: TOnOpenPkgFile; - FOnPublishPackage: TOnPublishPackage; - FOnRevertPackage: TOnRevertPackage; + FOnPublishPackage: TOnPkgEvent; + FOnRevertPackage: TOnPkgEvent; FOnSavePackage: TOnSavePackage; - FOnUninstallPackage: TOnUninstallPackage; - FOnViewPackageSource: TOnViewPackageSource; - FOnViewPackageToDos: TOnViewPackageToDos; + FOnUninstallPackage: TOnPkgEvent; + FOnViewPackageSource: TOnPkgEvent; + FOnViewPackageToDos: TOnPkgEvent; function GetEditors(Index: integer): TPackageEditorForm; public constructor Create; @@ -449,6 +436,7 @@ type function UninstallPackage(APackage: TLazPackage): TModalResult; function ViewPkgSource(APackage: TLazPackage): TModalResult; function ViewPkgToDos(APackage: TLazPackage): TModalResult; + function FindInFiles(APackage: TLazPackage): TModalResult; function DeleteAmbiguousFiles(APackage: TLazPackage; const Filename: string): TModalResult; function AddToProject(APackage: TLazPackage; @@ -468,10 +456,10 @@ type write FOnCompilePackage; property OnCopyMoveFiles: TNotifyEvent read FOnCopyMoveFiles write FOnCopyMoveFiles; - property OnCreateMakeFile: TOnCreatePkgMakefile read FOnCreateMakefile - write FOnCreateMakefile; - property OnCreateFpmakeFile: TOnCreatePkgFpmakeFile read FOnCreateFpmakeFile + property OnCreateFpmakeFile: TOnPkgEvent read FOnCreateFpmakeFile write FOnCreateFpmakeFile; + property OnCreateMakeFile: TOnPkgEvent read FOnCreateMakefile + write FOnCreateMakefile; property OnCreateNewFile: TOnCreateNewPkgFile read FOnCreateNewFile write FOnCreateNewFile; property OnDeleteAmbiguousFiles: TOnDeleteAmbiguousFiles @@ -480,30 +468,31 @@ type write FOnDragDropTreeView; property OnDragOverTreeView: TOnDragOverTreeView read FOnDragOverTreeView write FOnDragOverTreeView; + property OnShowFindInFiles: TOnPkgEvent read FOnShowFindInFiles write FOnShowFindInFiles; property OnFreeEditor: TOnFreePkgEditor read FOnFreeEditor write FOnFreeEditor; property OnGetIDEFileInfo: TGetIDEFileStateEvent read FOnGetIDEFileInfo write FOnGetIDEFileInfo; property OnGetUnitRegisterInfo: TOnGetUnitRegisterInfo read FOnGetUnitRegisterInfo write FOnGetUnitRegisterInfo; - property OnInstallPackage: TOnInstallPackage read FOnInstallPackage + property OnInstallPackage: TOnPkgEvent read FOnInstallPackage write FOnInstallPackage; property OnOpenFile: TOnOpenFile read FOnOpenFile write FOnOpenFile; - property OnOpenPackage: TOnOpenPackage read FOnOpenPackage + property OnOpenPackage: TOnPkgEvent read FOnOpenPackage write FOnOpenPackage; property OnOpenPkgFile: TOnOpenPkgFile read FOnOpenPkgFile write FOnOpenPkgFile; - property OnPublishPackage: TOnPublishPackage read FOnPublishPackage + property OnPublishPackage: TOnPkgEvent read FOnPublishPackage write FOnPublishPackage; - property OnRevertPackage: TOnRevertPackage read FOnRevertPackage + property OnRevertPackage: TOnPkgEvent read FOnRevertPackage write FOnRevertPackage; property OnSavePackage: TOnSavePackage read FOnSavePackage write FOnSavePackage; - property OnUninstallPackage: TOnUninstallPackage read FOnUninstallPackage + property OnUninstallPackage: TOnPkgEvent read FOnUninstallPackage write FOnUninstallPackage; - property OnViewPackageSource: TOnViewPackageSource read FOnViewPackageSource + property OnViewPackageSource: TOnPkgEvent read FOnViewPackageSource write FOnViewPackageSource; - property OnViewPackageToDos: TOnViewPackageToDos read FOnViewPackageToDos + property OnViewPackageToDos: TOnPkgEvent read FOnViewPackageToDos write FOnViewPackageToDos; end; @@ -571,6 +560,7 @@ begin // register the section for operations on all files PkgEditMenuSectionFiles:=RegisterIDEMenuSection(PackageEditorMenuRoot,'Files'); AParent:=PkgEditMenuSectionFiles; + PkgEditMenuFindInFiles:=RegisterIDEMenuCommand(AParent,'Find in files',srkmecFindInFiles); PkgEditMenuSortFiles:=RegisterIDEMenuCommand(AParent,'Sort Files Permanently',lisPESortFiles); PkgEditMenuFixFilesCase:=RegisterIDEMenuCommand(AParent,'Fix Files Case',lisPEFixFilesCase); PkgEditMenuShowMissingFiles:=RegisterIDEMenuCommand(AParent, 'Show Missing Files', lisPEShowMissingFiles); @@ -901,6 +891,7 @@ begin PkgEditMenuSectionFileType.Clear; // under section PkgEditMenuSectionFiles + SetItem(PkgEditMenuFindInFiles,@FindInFilesMenuItemClick); SetItem(PkgEditMenuSortFiles,@SortFilesMenuItemClick,(LazPackage.FileCount>1),Writable); SetItem(PkgEditMenuFixFilesCase,@FixFilesCaseMenuItemClick,(LazPackage.FileCount>0),Writable); SetItem(PkgEditMenuShowMissingFiles,@ShowMissingFilesMenuItemClick,(LazPackage.FileCount>0),Writable); @@ -1309,6 +1300,11 @@ begin DoExpandDirectory; end; +procedure TPackageEditorForm.FindInFilesMenuItemClick(Sender: TObject); +begin + DoFindInFiles; +end; + procedure TPackageEditorForm.FormCreate(Sender: TObject); begin FPlugins:=TStringList.Create; @@ -3007,6 +3003,11 @@ begin UpdateStatusBar; end; +procedure TPackageEditorForm.DoFindInFiles; +begin + PackageEditors.FindInFiles(LazPackage); +end; + procedure TPackageEditorForm.DoRevert; begin if MessageDlg(lisPkgEditRevertPackage, @@ -3351,6 +3352,14 @@ begin Result:=mrCancel; end; +function TPackageEditors.FindInFiles(APackage: TLazPackage): TModalResult; +begin + if Assigned(OnShowFindInFiles) then + Result:=OnShowFindInFiles(Self,APackage) + else + Result:=mrCancel; +end; + function TPackageEditors.DeleteAmbiguousFiles(APackage: TLazPackage; const Filename: string): TModalResult; begin diff --git a/packager/pkggraphexplorer.pas b/packager/pkggraphexplorer.pas index 2f88e4fa33..f7a8899032 100644 --- a/packager/pkggraphexplorer.pas +++ b/packager/pkggraphexplorer.pas @@ -78,7 +78,7 @@ type procedure UninstallMenuItemClick(Sender: TObject); private FOnOpenProject: TOnOpenProject; - FOnUninstallPackage: TOnUninstallPackage; + FOnUninstallPackage: TOnPkgEvent; ImgIndexProject: integer; ImgIndexPackage: integer; ImgIndexInstallPackage: integer; @@ -86,7 +86,7 @@ type ImgIndexUninstallPackage: integer; ImgIndexCyclePackage: integer; ImgIndexMissingPackage: integer; - FOnOpenPackage: TOnOpenPackage; + FOnOpenPackage: TOnPkgEvent; FChangedDuringLock: boolean; FUpdateLock: integer; FUpdatingSelection: boolean; @@ -115,9 +115,9 @@ type function FindLvlGraphNodeWithText(const s: string): TLvlGraphNode; procedure ShowPath(PathList: TFPList); public - property OnOpenPackage: TOnOpenPackage read FOnOpenPackage write FOnOpenPackage; + property OnOpenPackage: TOnPkgEvent read FOnOpenPackage write FOnOpenPackage; property OnOpenProject: TOnOpenProject read FOnOpenProject write FOnOpenProject; - property OnUninstallPackage: TOnUninstallPackage read FOnUninstallPackage + property OnUninstallPackage: TOnPkgEvent read FOnUninstallPackage write FOnUninstallPackage; end; diff --git a/packager/pkgmanager.pas b/packager/pkgmanager.pas index 6985196156..d4d8256e04 100644 --- a/packager/pkgmanager.pas +++ b/packager/pkgmanager.pas @@ -62,7 +62,7 @@ uses Project, ComponentReg, OldCustomCompDlg, PackageEditor, AddToPackageDlg, PackageDefs, PackageLinks, PackageSystem, OpenInstalledPkgDlg, PkgGraphExplorer, BrokenDependenciesDlg, CompilerOptions, - IDETranslations, TransferMacros, BuildLazDialog, NewDialog, + IDETranslations, TransferMacros, BuildLazDialog, NewDialog, FindInFilesDlg, IDEDialogs, UnitResources, ProjectInspector, ComponentPalette, SourceEditor, AddFileToAPackageDlg, LazarusPackageIntf, PublishProjectDlg, PkgLinksDlg, InstallPkgSetDlg, ConfirmPkgListDlg, NewPkgComponentDlg, @@ -94,6 +94,8 @@ type function OnPackageEditorDragOverTreeView(Sender, Source: TObject; X, Y: Integer; out TargetTVNode: TTreeNode; out TargetTVType: TTreeViewInsertMarkType): boolean; + function OnPackageEditorFindInFiles(Sender: TObject; APackage: TLazPackage + ): TModalResult; function OnPackageEditorInstallPackage(Sender: TObject; APackage: TLazPackage): TModalResult; function OnPackageEditorOpenPackage(Sender: TObject; APackage: TLazPackage): TModalResult; @@ -240,6 +242,7 @@ type InObject: TObject): TPkgFile; override; function SearchUnitInDesigntimePackages(const AnUnitName: string; InObject: TObject): TPkgFile; override; + function ShowFindInPackageFilesDlg(APackage: TLazPackage): TModalResult; // package graph function AddPackageToGraph(APackage: TLazPackage; Replace: boolean): TModalResult; @@ -868,6 +871,12 @@ begin aDependencyCount, aDirectoryCount, TargetTVNode, TargetTVType); end; +function TPkgManager.OnPackageEditorFindInFiles(Sender: TObject; + APackage: TLazPackage): TModalResult; +begin + Result:=ShowFindInPackageFilesDlg(APackage); +end; + function TPkgManager.OnPackageEditorAddToProject(Sender: TObject; APackage: TLazPackage; OnlyTestIfPossible: boolean): TModalResult; begin @@ -2937,6 +2946,7 @@ begin PackageEditors.OnDeleteAmbiguousFiles:=@OnPackageEditorDeleteAmbiguousFiles; PackageEditors.OnDragDropTreeView:=@OnPackageEditorDragDropTreeView; PackageEditors.OnDragOverTreeView:=@OnPackageEditorDragOverTreeView; + PackageEditors.OnShowFindInFiles:=@OnPackageEditorFindInFiles; PackageEditors.OnFreeEditor:=@OnPackageEditorFreeEditor; PackageEditors.OnGetIDEFileInfo:=@MainIDE.GetIDEFileState; PackageEditors.OnGetUnitRegisterInfo:=@OnPackageEditorGetUnitRegisterInfo; @@ -4960,6 +4970,17 @@ begin Result:=nil; end; +function TPkgManager.ShowFindInPackageFilesDlg(APackage: TLazPackage + ): TModalResult; +var + Dlg: TLazFindInFilesDialog; +begin + Result:=mrOk; + Dlg:=FindInFilesDialog; + Dlg.DirectoriesComboBox.Text:=''; + Dlg.FindInFilesPerDialog(Project1); +end; + function TPkgManager.AddDependencyToUnitOwners(const OwnedFilename, RequiredUnitname: string): TModalResult; var