Package editor: Duplicate the "Add" button's menu items in tree popup menu. Part of issue #28097.

git-svn-id: trunk@50815 -
This commit is contained in:
juha 2015-12-15 12:47:29 +00:00
parent ed23ab0554
commit 5229da3d5b
2 changed files with 44 additions and 14 deletions

View File

@ -15,7 +15,7 @@ object PackageEditorForm: TPackageEditorForm
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnDropFiles = FormDropFiles OnDropFiles = FormDropFiles
LCLVersion = '1.5' LCLVersion = '1.7'
object ToolBar: TToolBar object ToolBar: TToolBar
Left = 0 Left = 0
Height = 48 Height = 48
@ -354,7 +354,7 @@ object PackageEditorForm: TPackageEditorForm
object mnuAddDiskFile: TMenuItem object mnuAddDiskFile: TMenuItem
Caption = 'Add file...' Caption = 'Add file...'
Default = True Default = True
OnClick = AddBitBtnClick OnClick = mnuAddDiskFileClick
end end
object MenuItem1: TMenuItem object MenuItem1: TMenuItem
Caption = '-' Caption = '-'

View File

@ -54,6 +54,14 @@ const
PackageEditorMenuFilesRootName = 'PackageEditorFiles'; PackageEditorMenuFilesRootName = 'PackageEditorFiles';
PackageEditorWindowPrefix = 'PackageEditor_'; PackageEditorWindowPrefix = 'PackageEditor_';
var var
// General actions for the Files and Required packages root nodes.
// Duplicates actions found under the "Add" button.
PkgEditMenuAddDiskFile: TIDEMenuCommand;
PkgEditMenuAddDiskFiles: TIDEMenuCommand;
PkgEditMenuAddNewFile: TIDEMenuCommand;
PkgEditMenuAddNewComp: TIDEMenuCommand;
PkgEditMenuAddNewReqr: TIDEMenuCommand;
// selected files // selected files
PkgEditMenuOpenFile: TIDEMenuCommand; PkgEditMenuOpenFile: TIDEMenuCommand;
PkgEditMenuRemoveFile: TIDEMenuCommand; PkgEditMenuRemoveFile: TIDEMenuCommand;
@ -224,7 +232,6 @@ type
UsePopupMenu: TPopupMenu; UsePopupMenu: TPopupMenu;
ItemsPopupMenu: TPopupMenu; ItemsPopupMenu: TPopupMenu;
MorePopupMenu: TPopupMenu; MorePopupMenu: TPopupMenu;
procedure AddBitBtnClick(Sender: TObject);
procedure AddToProjectClick(Sender: TObject); procedure AddToProjectClick(Sender: TObject);
procedure AddToUsesPkgSectionCheckBoxChange(Sender: TObject); procedure AddToUsesPkgSectionCheckBoxChange(Sender: TObject);
procedure ApplyDependencyButtonClick(Sender: TObject); procedure ApplyDependencyButtonClick(Sender: TObject);
@ -255,6 +262,7 @@ type
procedure ItemsTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; procedure ItemsTreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); State: TDragState; var Accept: Boolean);
procedure ItemsTreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ItemsTreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure mnuAddDiskFileClick(Sender: TObject);
procedure mnuAddDiskFilesClick(Sender: TObject); procedure mnuAddDiskFilesClick(Sender: TObject);
procedure mnuAddNewCompClick(Sender: TObject); procedure mnuAddNewCompClick(Sender: TObject);
procedure mnuAddNewReqrClick(Sender: TObject); procedure mnuAddNewReqrClick(Sender: TObject);
@ -553,6 +561,12 @@ begin
// register the section for operations on selected files // register the section for operations on selected files
PkgEditMenuSectionFile:=RegisterIDEMenuSection(PackageEditorMenuFilesRoot,'File'); PkgEditMenuSectionFile:=RegisterIDEMenuSection(PackageEditorMenuFilesRoot,'File');
AParent:=PkgEditMenuSectionFile; AParent:=PkgEditMenuSectionFile;
PkgEditMenuAddDiskFile:=RegisterIDEMenuCommand(AParent,'Add disk file',lisPckEditAddFilesFromFileSystem);
PkgEditMenuAddDiskFiles:=RegisterIDEMenuCommand(AParent,'Add disk files',lisAddFilesInDirectory);
PkgEditMenuAddNewFile:=RegisterIDEMenuCommand(AParent,'New file',lisA2PNewFile);
PkgEditMenuAddNewComp:=RegisterIDEMenuCommand(AParent,'New component',lisA2PNewComponent);
PkgEditMenuAddNewReqr:=RegisterIDEMenuCommand(AParent,'New requirement',lisProjAddNewRequirement);
//
PkgEditMenuOpenFile:=RegisterIDEMenuCommand(AParent,'Open File',lisOpen); PkgEditMenuOpenFile:=RegisterIDEMenuCommand(AParent,'Open File',lisOpen);
PkgEditMenuRemoveFile:=RegisterIDEMenuCommand(AParent,'Remove File',lisPckEditRemoveFile); PkgEditMenuRemoveFile:=RegisterIDEMenuCommand(AParent,'Remove File',lisPckEditRemoveFile);
PkgEditMenuReAddFile:=RegisterIDEMenuCommand(AParent,'ReAdd File',lisPckEditReAddFile); PkgEditMenuReAddFile:=RegisterIDEMenuCommand(AParent,'ReAdd File',lisPckEditReAddFile);
@ -681,7 +695,8 @@ begin
end; end;
type type
PackageSelType = (pstFile, pstDir, pstDep, pstRemFile, pstRemDep); PackageSelType = (pstFile, pstDir, pstDep, pstFilesNode, pstReqPackNode,
pstRemFile, pstRemDep);
PackageSelTypes = set of PackageSelType; PackageSelTypes = set of PackageSelType;
procedure TPackageEditorForm.ItemsPopupMenuPopup(Sender: TObject); procedure TPackageEditorForm.ItemsPopupMenuPopup(Sender: TObject);
@ -721,8 +736,12 @@ var
Include(UserSelection, pstDep); Include(UserSelection, pstDep);
end; end;
end end
else if IsDirectoryNode(TVNode) or (TVNode=FFilesNode) then else if IsDirectoryNode(TVNode) then
Include(UserSelection, pstDir); Include(UserSelection, pstDir)
else if TVNode=FFilesNode then
Include(UserSelection, pstFilesNode)
else if TVNode=FRequiredPackagesNode then
Include(UserSelection, pstReqPackNode);
end; end;
end; end;
@ -784,11 +803,24 @@ begin
CollectSelected; CollectSelected;
Writable := not LazPackage.ReadOnly; Writable := not LazPackage.ReadOnly;
// items for selected files, under section PkgEditMenuSectionFile // items for Files node and for selected files, under section PkgEditMenuSectionFile
PkgEditMenuSectionFile.Visible := UserSelection*[pstFile,pstRemFile,pstDep,pstRemDep] <> []; PkgEditMenuSectionFile.Visible := not (pstDir in UserSelection);
if PkgEditMenuSectionFile.Visible then if PkgEditMenuSectionFile.Visible then
begin begin
SetItem(PkgEditMenuOpenFile, @OpenFileMenuItemClick); // Files root node
SetItem(PkgEditMenuAddDiskFile, @mnuAddDiskFileClick, UserSelection=[pstFilesNode],
Writable);
SetItem(PkgEditMenuAddDiskFiles, @mnuAddDiskFilesClick, UserSelection=[pstFilesNode],
Writable);
SetItem(PkgEditMenuAddNewFile, @mnuAddNewFileClick, UserSelection=[pstFilesNode],
Writable);
SetItem(PkgEditMenuAddNewComp, @mnuAddNewCompClick, UserSelection=[pstFilesNode],
Writable);
SetItem(PkgEditMenuAddNewReqr, @mnuAddNewReqrClick, UserSelection=[pstReqPackNode],
Writable);
// selected files
SetItem(PkgEditMenuOpenFile, @OpenFileMenuItemClick,
UserSelection*[pstFilesNode,pstReqPackNode]=[]);
SetItem(PkgEditMenuReAddFile, @ReAddMenuItemClick, UserSelection=[pstRemFile]); SetItem(PkgEditMenuReAddFile, @ReAddMenuItemClick, UserSelection=[pstRemFile]);
SetItem(PkgEditMenuCopyMoveToDirectory, @CopyMoveToDirMenuItemClick, SetItem(PkgEditMenuCopyMoveToDirectory, @CopyMoveToDirMenuItemClick,
(UserSelection=[pstFile]) and LazPackage.HasDirectory); (UserSelection=[pstFile]) and LazPackage.HasDirectory);
@ -801,7 +833,7 @@ begin
end; end;
// items for directories, under section PkgEditMenuSectionDirectory // items for directories, under section PkgEditMenuSectionDirectory
PkgEditMenuSectionDirectory.Visible := UserSelection=[pstDir]; PkgEditMenuSectionDirectory.Visible := UserSelection<=[pstDir,pstFilesNode];
if PkgEditMenuSectionDirectory.Visible then if PkgEditMenuSectionDirectory.Visible then
begin begin
SetItem(PkgEditMenuExpandDirectory, @ExpandDirectoryMenuItemClick); SetItem(PkgEditMenuExpandDirectory, @ExpandDirectoryMenuItemClick);
@ -908,8 +940,6 @@ begin
try try
Writable:=(not LazPackage.ReadOnly); Writable:=(not LazPackage.ReadOnly);
//PkgEditMenuSectionFileType.Clear;
// under section PkgEditMenuSectionFiles // under section PkgEditMenuSectionFiles
SetItem(PkgEditMenuFindInFiles,@FindInFilesMenuItemClick); SetItem(PkgEditMenuFindInFiles,@FindInFilesMenuItemClick);
SetItem(PkgEditMenuSortFiles,@SortFilesMenuItemClick,(LazPackage.FileCount>1),Writable); SetItem(PkgEditMenuSortFiles,@SortFilesMenuItemClick,(LazPackage.FileCount>1),Writable);
@ -1003,7 +1033,7 @@ begin
else if Key = VK_DELETE then else if Key = VK_DELETE then
RemoveBitBtnClick(Nil) RemoveBitBtnClick(Nil)
else if Key = VK_INSERT then else if Key = VK_INSERT then
AddBitBtnClick(Nil) mnuAddDiskFileClick(Nil)
else else
Handled := False; Handled := False;
@ -1568,7 +1598,7 @@ begin
NewIncPaths:=MergeSearchPaths(NewIncPaths,CurDir); NewIncPaths:=MergeSearchPaths(NewIncPaths,CurDir);
end; end;
procedure TPackageEditorForm.AddBitBtnClick(Sender: TObject); procedure TPackageEditorForm.mnuAddDiskFileClick(Sender: TObject);
var var
OpenDialog: TOpenDialog; OpenDialog: TOpenDialog;
i: Integer; i: Integer;