IDE: In project inspector & package editor, add popup menuitems for opening folder of project/package. Fix visibility of FileType menu.

git-svn-id: trunk@62656 -
This commit is contained in:
juha 2020-02-21 16:34:56 +00:00
parent 3007a4b542
commit 06950eefb7
2 changed files with 57 additions and 41 deletions

View File

@ -57,7 +57,7 @@ interface
uses uses
Classes, SysUtils, Classes, SysUtils,
// LCL // LCL
LCLProc, LCLType, Forms, Controls, Buttons, ComCtrls, LCLProc, LCLType, LCLIntf, Forms, Controls, Buttons, ComCtrls,
Menus, Dialogs, FileUtil, LazFileUtils, LazFileCache, ExtCtrls, Graphics, Menus, Dialogs, FileUtil, LazFileUtils, LazFileCache, ExtCtrls, Graphics,
// LazControls // LazControls
TreeFilterEdit, TreeFilterEdit,
@ -130,6 +130,7 @@ type
procedure mnuAddEditorFilesClick(Sender: TObject); procedure mnuAddEditorFilesClick(Sender: TObject);
procedure mnuAddFPMakeReqClick(Sender: TObject); procedure mnuAddFPMakeReqClick(Sender: TObject);
procedure mnuAddReqClick(Sender: TObject); procedure mnuAddReqClick(Sender: TObject);
procedure mnuOpenFolderClick(Sender: TObject);
procedure MoveDependencyUpClick(Sender: TObject); procedure MoveDependencyUpClick(Sender: TObject);
procedure MoveDependencyDownClick(Sender: TObject); procedure MoveDependencyDownClick(Sender: TObject);
procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject); procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject);
@ -386,6 +387,11 @@ begin
DoAddDepDialog; DoAddDepDialog;
end; end;
procedure TProjectInspectorForm.mnuOpenFolderClick(Sender: TObject);
begin
OpenDocument(LazProject.Directory);
end;
procedure TProjectInspectorForm.MoveDependencyUpClick(Sender: TObject); procedure TProjectInspectorForm.MoveDependencyUpClick(Sender: TObject);
var var
Dependency: TPkgDependency; Dependency: TPkgDependency;
@ -689,6 +695,8 @@ begin
AddPopupMenuItem(lisBtnDlgAdd, @mnuAddBitBtnClick); AddPopupMenuItem(lisBtnDlgAdd, @mnuAddBitBtnClick);
if not LazProject.IsVirtual then if not LazProject.IsVirtual then
AddPopupMenuItem(lisRemoveNonExistingFiles,@RemoveNonExistingFilesMenuItemClick); AddPopupMenuItem(lisRemoveNonExistingFiles,@RemoveNonExistingFilesMenuItemClick);
AddPopupMenuItem(cLineCaption, Nil, False); // Separator
AddPopupMenuItem(lisMenuOpenFolder, @mnuOpenFolderClick);
end end
else if ItemsTreeView.Selected = FDependenciesNode then else if ItemsTreeView.Selected = FDependenciesNode then
begin begin

View File

@ -36,7 +36,7 @@ uses
Classes, SysUtils, contnrs, Classes, SysUtils, contnrs,
// LCL // LCL
Forms, Controls, StdCtrls, ComCtrls, Buttons, Graphics, Menus, Dialogs, Forms, Controls, StdCtrls, ComCtrls, Buttons, Graphics, Menus, Dialogs,
ExtCtrls, LCLType, LCLProc, ExtCtrls, LCLType, LCLProc, LCLIntf,
TreeFilterEdit, TreeFilterEdit,
// LazUtils // LazUtils
FileUtil, LazFileUtils, LazFileCache, AvgLvlTree, FileUtil, LazFileUtils, LazFileCache, AvgLvlTree,
@ -76,6 +76,7 @@ var
PkgEditMenuCollapseDirectory: TIDEMenuCommand; PkgEditMenuCollapseDirectory: TIDEMenuCommand;
PkgEditMenuUseAllUnitsInDirectory: TIDEMenuCommand; PkgEditMenuUseAllUnitsInDirectory: TIDEMenuCommand;
PkgEditMenuUseNoUnitsInDirectory: TIDEMenuCommand; PkgEditMenuUseNoUnitsInDirectory: TIDEMenuCommand;
PkgEditMenuOpenFolder: TIDEMenuCommand;
// dependencies // dependencies
PkgEditMenuRemoveDependency: TIDEMenuCommand; PkgEditMenuRemoveDependency: TIDEMenuCommand;
@ -289,6 +290,7 @@ type
procedure MoveUpBtnClick(Sender: TObject); procedure MoveUpBtnClick(Sender: TObject);
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean); procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
procedure OpenFileMenuItemClick(Sender: TObject); procedure OpenFileMenuItemClick(Sender: TObject);
procedure OpenFolderMenuItemClick(Sender: TObject);
procedure OptionsBitBtnClick(Sender: TObject); procedure OptionsBitBtnClick(Sender: TObject);
procedure PackageEditorFormClose(Sender: TObject; var {%H-}CloseAction: TCloseAction); procedure PackageEditorFormClose(Sender: TObject; var {%H-}CloseAction: TCloseAction);
procedure PackageEditorFormCloseQuery(Sender: TObject; var CanClose: boolean); procedure PackageEditorFormCloseQuery(Sender: TObject; var CanClose: boolean);
@ -601,6 +603,7 @@ begin
PkgEditMenuCollapseDirectory:=RegisterIDEMenuCommand(AParent, 'Collapse directory', lisPECollapseDirectory); PkgEditMenuCollapseDirectory:=RegisterIDEMenuCommand(AParent, 'Collapse directory', lisPECollapseDirectory);
PkgEditMenuUseAllUnitsInDirectory:=RegisterIDEMenuCommand(AParent, 'Use all units in directory', lisPEUseAllUnitsInDirectory); PkgEditMenuUseAllUnitsInDirectory:=RegisterIDEMenuCommand(AParent, 'Use all units in directory', lisPEUseAllUnitsInDirectory);
PkgEditMenuUseNoUnitsInDirectory:=RegisterIDEMenuCommand(AParent, 'Use no units in directory', lisPEUseNoUnitsInDirectory); PkgEditMenuUseNoUnitsInDirectory:=RegisterIDEMenuCommand(AParent, 'Use no units in directory', lisPEUseNoUnitsInDirectory);
PkgEditMenuOpenFolder:=RegisterIDEMenuCommand(AParent, 'Open folder', lisMenuOpenFolder);
// register the section for operations on dependencies // register the section for operations on dependencies
PkgEditMenuSectionDependency:=RegisterIDEMenuSection(PackageEditorMenuFilesRoot,'Dependency'); PkgEditMenuSectionDependency:=RegisterIDEMenuSection(PackageEditorMenuFilesRoot,'Dependency');
@ -801,8 +804,8 @@ var
VirtualFileExists: Boolean; VirtualFileExists: Boolean;
NewMenuItem: TIDEMenuCommand; NewMenuItem: TIDEMenuCommand;
begin begin
if Assigned(SingleSelectedFile) then PkgEditMenuSectionFileType.Visible:=Assigned(SingleSelectedFile);
begin if not PkgEditMenuSectionFileType.Visible then Exit;
PkgEditMenuSectionFileType.Clear; PkgEditMenuSectionFileType.Clear;
VirtualFileExists:=(SingleSelectedFile.FileType=pftVirtualUnit) VirtualFileExists:=(SingleSelectedFile.FileType=pftVirtualUnit)
and FileExistsCached(SingleSelectedFile.GetFullFilename); and FileExistsCached(SingleSelectedFile.GetFullFilename);
@ -819,7 +822,7 @@ var
end else if VirtualFileExists then end else if VirtualFileExists then
// a virtual unit that exists can be changed into anything // a virtual unit that exists can be changed into anything
NewMenuItem.Enabled:=true NewMenuItem.Enabled:=true
else if (not (CurPFT in PkgFileUnitTypes)) then else if not (CurPFT in PkgFileUnitTypes) then
// all other files can be changed into all non unit types // all other files can be changed into all non unit types
NewMenuItem.Enabled:=true NewMenuItem.Enabled:=true
else if FilenameIsPascalUnit(SingleSelectedFile.Filename) then else if FilenameIsPascalUnit(SingleSelectedFile.Filename) then
@ -829,9 +832,6 @@ var
// default is to not allow // default is to not allow
NewMenuItem.Enabled:=false; NewMenuItem.Enabled:=false;
end; end;
end
else
PkgEditMenuSectionFileType.Visible:=False;
end; end;
var var
@ -856,6 +856,7 @@ begin
Writable); Writable);
SetItem(PkgEditMenuAddNewComp, @mnuAddNewCompClick, UserSelection=[pstFilesNode], SetItem(PkgEditMenuAddNewComp, @mnuAddNewCompClick, UserSelection=[pstFilesNode],
Writable); Writable);
// Required packages root node
SetItem(PkgEditMenuAddNewReqr, @mnuAddNewReqrClick, UserSelection=[pstReqPackNode], SetItem(PkgEditMenuAddNewReqr, @mnuAddNewReqrClick, UserSelection=[pstReqPackNode],
Writable); Writable);
SetItem(PkgEditMenuAddNewFPMakeReqr, @mnuAddFPMakeReqClick, UserSelection=[pstReqPackNode], SetItem(PkgEditMenuAddNewFPMakeReqr, @mnuAddFPMakeReqClick, UserSelection=[pstReqPackNode],
@ -863,11 +864,12 @@ begin
// selected files // selected files
SetItem(PkgEditMenuOpenFile, @OpenFileMenuItemClick, SetItem(PkgEditMenuOpenFile, @OpenFileMenuItemClick,
UserSelection*[pstFilesNode,pstReqPackNode,pstFPMake]=[]); UserSelection*[pstFilesNode,pstReqPackNode,pstFPMake]=[]);
SetItem(PkgEditMenuReAddFile, @ReAddMenuItemClick, UserSelection=[pstRemFile]); SetItem(PkgEditMenuRemoveFile, @RemoveBitBtnClick,
UserSelection=[pstFile], RemoveBitBtn.Enabled);
SetItem(PkgEditMenuReAddFile, @ReAddMenuItemClick,
UserSelection=[pstRemFile]);
SetItem(PkgEditMenuCopyMoveToDirectory, @CopyMoveToDirMenuItemClick, SetItem(PkgEditMenuCopyMoveToDirectory, @CopyMoveToDirMenuItemClick,
(UserSelection=[pstFile]) and LazPackage.HasDirectory); (UserSelection=[pstFile]) and LazPackage.HasDirectory);
SetItem(PkgEditMenuRemoveFile, @RemoveBitBtnClick, UserSelection=[pstFile],
RemoveBitBtn.Enabled);
AddFileTypeMenuItem; AddFileTypeMenuItem;
SetItem(PkgEditMenuEditVirtualUnit, @EditVirtualUnitMenuItemClick, SetItem(PkgEditMenuEditVirtualUnit, @EditVirtualUnitMenuItemClick,
Assigned(SingleSelectedFile) and (SingleSelectedFile.FileType=pftVirtualUnit), Assigned(SingleSelectedFile) and (SingleSelectedFile.FileType=pftVirtualUnit),
@ -882,6 +884,7 @@ begin
SetItem(PkgEditMenuCollapseDirectory, @CollapseDirectoryMenuItemClick); SetItem(PkgEditMenuCollapseDirectory, @CollapseDirectoryMenuItemClick);
SetItem(PkgEditMenuUseAllUnitsInDirectory, @UseAllUnitsInDirectoryMenuItemClick); SetItem(PkgEditMenuUseAllUnitsInDirectory, @UseAllUnitsInDirectoryMenuItemClick);
SetItem(PkgEditMenuUseNoUnitsInDirectory, @UseNoUnitsInDirectoryMenuItemClick); SetItem(PkgEditMenuUseNoUnitsInDirectory, @UseNoUnitsInDirectoryMenuItemClick);
SetItem(PkgEditMenuOpenFolder, @OpenFolderMenuItemClick);
end; end;
// items for dependencies, under section PkgEditMenuSectionDependency // items for dependencies, under section PkgEditMenuSectionDependency
@ -1525,11 +1528,6 @@ begin
PackageEditors.UninstallPackage(LazPackage); PackageEditors.UninstallPackage(LazPackage);
end; end;
procedure TPackageEditorForm.UseAllUnitsInDirectoryMenuItemClick(Sender: TObject);
begin
DoUseUnitsInDirectory(true);
end;
procedure TPackageEditorForm.ViewPkgSourceClick(Sender: TObject); procedure TPackageEditorForm.ViewPkgSourceClick(Sender: TObject);
begin begin
PackageEditors.ViewPkgSource(LazPackage); PackageEditors.ViewPkgSource(LazPackage);
@ -1576,11 +1574,21 @@ begin
UpdateApplyDependencyButton; UpdateApplyDependencyButton;
end; end;
procedure TPackageEditorForm.UseAllUnitsInDirectoryMenuItemClick(Sender: TObject);
begin
DoUseUnitsInDirectory(true);
end;
procedure TPackageEditorForm.UseNoUnitsInDirectoryMenuItemClick(Sender: TObject); procedure TPackageEditorForm.UseNoUnitsInDirectoryMenuItemClick(Sender: TObject);
begin begin
DoUseUnitsInDirectory(false); DoUseUnitsInDirectory(false);
end; end;
procedure TPackageEditorForm.OpenFolderMenuItemClick(Sender: TObject);
begin
OpenDocument(LazPackage.Directory);
end;
procedure TPackageEditorForm.mnuAddDiskFileClick(Sender: TObject); procedure TPackageEditorForm.mnuAddDiskFileClick(Sender: TObject);
var var
OpenDialog: TOpenDialog; OpenDialog: TOpenDialog;