mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 22:09:28 +02:00
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:
parent
3007a4b542
commit
06950eefb7
@ -57,7 +57,7 @@ interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
LCLProc, LCLType, Forms, Controls, Buttons, ComCtrls,
|
||||
LCLProc, LCLType, LCLIntf, Forms, Controls, Buttons, ComCtrls,
|
||||
Menus, Dialogs, FileUtil, LazFileUtils, LazFileCache, ExtCtrls, Graphics,
|
||||
// LazControls
|
||||
TreeFilterEdit,
|
||||
@ -130,6 +130,7 @@ type
|
||||
procedure mnuAddEditorFilesClick(Sender: TObject);
|
||||
procedure mnuAddFPMakeReqClick(Sender: TObject);
|
||||
procedure mnuAddReqClick(Sender: TObject);
|
||||
procedure mnuOpenFolderClick(Sender: TObject);
|
||||
procedure MoveDependencyUpClick(Sender: TObject);
|
||||
procedure MoveDependencyDownClick(Sender: TObject);
|
||||
procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject);
|
||||
@ -386,6 +387,11 @@ begin
|
||||
DoAddDepDialog;
|
||||
end;
|
||||
|
||||
procedure TProjectInspectorForm.mnuOpenFolderClick(Sender: TObject);
|
||||
begin
|
||||
OpenDocument(LazProject.Directory);
|
||||
end;
|
||||
|
||||
procedure TProjectInspectorForm.MoveDependencyUpClick(Sender: TObject);
|
||||
var
|
||||
Dependency: TPkgDependency;
|
||||
@ -689,6 +695,8 @@ begin
|
||||
AddPopupMenuItem(lisBtnDlgAdd, @mnuAddBitBtnClick);
|
||||
if not LazProject.IsVirtual then
|
||||
AddPopupMenuItem(lisRemoveNonExistingFiles,@RemoveNonExistingFilesMenuItemClick);
|
||||
AddPopupMenuItem(cLineCaption, Nil, False); // Separator
|
||||
AddPopupMenuItem(lisMenuOpenFolder, @mnuOpenFolderClick);
|
||||
end
|
||||
else if ItemsTreeView.Selected = FDependenciesNode then
|
||||
begin
|
||||
|
@ -36,7 +36,7 @@ uses
|
||||
Classes, SysUtils, contnrs,
|
||||
// LCL
|
||||
Forms, Controls, StdCtrls, ComCtrls, Buttons, Graphics, Menus, Dialogs,
|
||||
ExtCtrls, LCLType, LCLProc,
|
||||
ExtCtrls, LCLType, LCLProc, LCLIntf,
|
||||
TreeFilterEdit,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, LazFileCache, AvgLvlTree,
|
||||
@ -76,6 +76,7 @@ var
|
||||
PkgEditMenuCollapseDirectory: TIDEMenuCommand;
|
||||
PkgEditMenuUseAllUnitsInDirectory: TIDEMenuCommand;
|
||||
PkgEditMenuUseNoUnitsInDirectory: TIDEMenuCommand;
|
||||
PkgEditMenuOpenFolder: TIDEMenuCommand;
|
||||
|
||||
// dependencies
|
||||
PkgEditMenuRemoveDependency: TIDEMenuCommand;
|
||||
@ -289,6 +290,7 @@ type
|
||||
procedure MoveUpBtnClick(Sender: TObject);
|
||||
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
|
||||
procedure OpenFileMenuItemClick(Sender: TObject);
|
||||
procedure OpenFolderMenuItemClick(Sender: TObject);
|
||||
procedure OptionsBitBtnClick(Sender: TObject);
|
||||
procedure PackageEditorFormClose(Sender: TObject; var {%H-}CloseAction: TCloseAction);
|
||||
procedure PackageEditorFormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
@ -601,6 +603,7 @@ begin
|
||||
PkgEditMenuCollapseDirectory:=RegisterIDEMenuCommand(AParent, 'Collapse directory', lisPECollapseDirectory);
|
||||
PkgEditMenuUseAllUnitsInDirectory:=RegisterIDEMenuCommand(AParent, 'Use all units in directory', lisPEUseAllUnitsInDirectory);
|
||||
PkgEditMenuUseNoUnitsInDirectory:=RegisterIDEMenuCommand(AParent, 'Use no units in directory', lisPEUseNoUnitsInDirectory);
|
||||
PkgEditMenuOpenFolder:=RegisterIDEMenuCommand(AParent, 'Open folder', lisMenuOpenFolder);
|
||||
|
||||
// register the section for operations on dependencies
|
||||
PkgEditMenuSectionDependency:=RegisterIDEMenuSection(PackageEditorMenuFilesRoot,'Dependency');
|
||||
@ -801,37 +804,34 @@ var
|
||||
VirtualFileExists: Boolean;
|
||||
NewMenuItem: TIDEMenuCommand;
|
||||
begin
|
||||
if Assigned(SingleSelectedFile) then
|
||||
begin
|
||||
PkgEditMenuSectionFileType.Clear;
|
||||
VirtualFileExists:=(SingleSelectedFile.FileType=pftVirtualUnit)
|
||||
and FileExistsCached(SingleSelectedFile.GetFullFilename);
|
||||
for CurPFT:=Low(TPkgFileType) to High(TPkgFileType) do begin
|
||||
NewMenuItem:=RegisterIDEMenuCommand(PkgEditMenuSectionFileType,
|
||||
'SetFileType'+IntToStr(ord(CurPFT)),
|
||||
GetPkgFileTypeLocalizedName(CurPFT),
|
||||
@ChangeFileTypeMenuItemClick);
|
||||
if CurPFT=SingleSelectedFile.FileType then
|
||||
begin
|
||||
// menuitem to keep the current type
|
||||
NewMenuItem.Enabled:=true;
|
||||
NewMenuItem.Checked:=true;
|
||||
end else if VirtualFileExists then
|
||||
// a virtual unit that exists can be changed into anything
|
||||
NewMenuItem.Enabled:=true
|
||||
else if (not (CurPFT in PkgFileUnitTypes)) then
|
||||
// all other files can be changed into all non unit types
|
||||
NewMenuItem.Enabled:=true
|
||||
else if FilenameIsPascalUnit(SingleSelectedFile.Filename) then
|
||||
// a pascal file can be changed into anything
|
||||
NewMenuItem.Enabled:=true
|
||||
else
|
||||
// default is to not allow
|
||||
NewMenuItem.Enabled:=false;
|
||||
end;
|
||||
end
|
||||
else
|
||||
PkgEditMenuSectionFileType.Visible:=False;
|
||||
PkgEditMenuSectionFileType.Visible:=Assigned(SingleSelectedFile);
|
||||
if not PkgEditMenuSectionFileType.Visible then Exit;
|
||||
PkgEditMenuSectionFileType.Clear;
|
||||
VirtualFileExists:=(SingleSelectedFile.FileType=pftVirtualUnit)
|
||||
and FileExistsCached(SingleSelectedFile.GetFullFilename);
|
||||
for CurPFT:=Low(TPkgFileType) to High(TPkgFileType) do begin
|
||||
NewMenuItem:=RegisterIDEMenuCommand(PkgEditMenuSectionFileType,
|
||||
'SetFileType'+IntToStr(ord(CurPFT)),
|
||||
GetPkgFileTypeLocalizedName(CurPFT),
|
||||
@ChangeFileTypeMenuItemClick);
|
||||
if CurPFT=SingleSelectedFile.FileType then
|
||||
begin
|
||||
// menuitem to keep the current type
|
||||
NewMenuItem.Enabled:=true;
|
||||
NewMenuItem.Checked:=true;
|
||||
end else if VirtualFileExists then
|
||||
// a virtual unit that exists can be changed into anything
|
||||
NewMenuItem.Enabled:=true
|
||||
else if not (CurPFT in PkgFileUnitTypes) then
|
||||
// all other files can be changed into all non unit types
|
||||
NewMenuItem.Enabled:=true
|
||||
else if FilenameIsPascalUnit(SingleSelectedFile.Filename) then
|
||||
// a pascal file can be changed into anything
|
||||
NewMenuItem.Enabled:=true
|
||||
else
|
||||
// default is to not allow
|
||||
NewMenuItem.Enabled:=false;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
@ -856,6 +856,7 @@ begin
|
||||
Writable);
|
||||
SetItem(PkgEditMenuAddNewComp, @mnuAddNewCompClick, UserSelection=[pstFilesNode],
|
||||
Writable);
|
||||
// Required packages root node
|
||||
SetItem(PkgEditMenuAddNewReqr, @mnuAddNewReqrClick, UserSelection=[pstReqPackNode],
|
||||
Writable);
|
||||
SetItem(PkgEditMenuAddNewFPMakeReqr, @mnuAddFPMakeReqClick, UserSelection=[pstReqPackNode],
|
||||
@ -863,11 +864,12 @@ begin
|
||||
// selected files
|
||||
SetItem(PkgEditMenuOpenFile, @OpenFileMenuItemClick,
|
||||
UserSelection*[pstFilesNode,pstReqPackNode,pstFPMake]=[]);
|
||||
SetItem(PkgEditMenuReAddFile, @ReAddMenuItemClick, UserSelection=[pstRemFile]);
|
||||
SetItem(PkgEditMenuRemoveFile, @RemoveBitBtnClick,
|
||||
UserSelection=[pstFile], RemoveBitBtn.Enabled);
|
||||
SetItem(PkgEditMenuReAddFile, @ReAddMenuItemClick,
|
||||
UserSelection=[pstRemFile]);
|
||||
SetItem(PkgEditMenuCopyMoveToDirectory, @CopyMoveToDirMenuItemClick,
|
||||
(UserSelection=[pstFile]) and LazPackage.HasDirectory);
|
||||
SetItem(PkgEditMenuRemoveFile, @RemoveBitBtnClick, UserSelection=[pstFile],
|
||||
RemoveBitBtn.Enabled);
|
||||
AddFileTypeMenuItem;
|
||||
SetItem(PkgEditMenuEditVirtualUnit, @EditVirtualUnitMenuItemClick,
|
||||
Assigned(SingleSelectedFile) and (SingleSelectedFile.FileType=pftVirtualUnit),
|
||||
@ -882,6 +884,7 @@ begin
|
||||
SetItem(PkgEditMenuCollapseDirectory, @CollapseDirectoryMenuItemClick);
|
||||
SetItem(PkgEditMenuUseAllUnitsInDirectory, @UseAllUnitsInDirectoryMenuItemClick);
|
||||
SetItem(PkgEditMenuUseNoUnitsInDirectory, @UseNoUnitsInDirectoryMenuItemClick);
|
||||
SetItem(PkgEditMenuOpenFolder, @OpenFolderMenuItemClick);
|
||||
end;
|
||||
|
||||
// items for dependencies, under section PkgEditMenuSectionDependency
|
||||
@ -1525,11 +1528,6 @@ begin
|
||||
PackageEditors.UninstallPackage(LazPackage);
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.UseAllUnitsInDirectoryMenuItemClick(Sender: TObject);
|
||||
begin
|
||||
DoUseUnitsInDirectory(true);
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.ViewPkgSourceClick(Sender: TObject);
|
||||
begin
|
||||
PackageEditors.ViewPkgSource(LazPackage);
|
||||
@ -1576,11 +1574,21 @@ begin
|
||||
UpdateApplyDependencyButton;
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.UseAllUnitsInDirectoryMenuItemClick(Sender: TObject);
|
||||
begin
|
||||
DoUseUnitsInDirectory(true);
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.UseNoUnitsInDirectoryMenuItemClick(Sender: TObject);
|
||||
begin
|
||||
DoUseUnitsInDirectory(false);
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.OpenFolderMenuItemClick(Sender: TObject);
|
||||
begin
|
||||
OpenDocument(LazPackage.Directory);
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.mnuAddDiskFileClick(Sender: TObject);
|
||||
var
|
||||
OpenDialog: TOpenDialog;
|
||||
|
Loading…
Reference in New Issue
Block a user