mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 07:59:28 +02:00
ide: project inspector: register add popup menuitems
This commit is contained in:
parent
ec56ff310b
commit
07eb443322
@ -400,9 +400,12 @@ var
|
|||||||
DesignerMenuSectionOptions: TIDEMenuSection;
|
DesignerMenuSectionOptions: TIDEMenuSection;
|
||||||
|
|
||||||
// Project inspector
|
// Project inspector
|
||||||
ProjectInspectorMenuRoot: TIDEMenuSection = nil;
|
ProjectInspectorItemsMenuRoot: TIDEMenuSection = nil; // popupmenu of items
|
||||||
ProjInspMenuSectionFiles: TIDEMenuSection; // e.g. open, sort files, clean up files
|
ProjInspMenuSectionFiles: TIDEMenuSection; // e.g. open, sort files, clean up files
|
||||||
ProjInspMenuSectionDependencies: TIDEMenuSection; // e.g. // e.g. open package, remove dependency
|
ProjInspMenuSectionDependencies: TIDEMenuSection; // e.g. // e.g. open package, remove dependency
|
||||||
|
ProjectInspectorAddMenuRoot: TIDEMenuSection = nil; // popupmenu of add button
|
||||||
|
ProjInspAddMenuSectionFiles: TIDEMenuSection;
|
||||||
|
ProjInspAddMenuSectionDependencies: TIDEMenuSection;
|
||||||
|
|
||||||
// Package editor(s)
|
// Package editor(s)
|
||||||
PackageEditorMenuRoot: TIDEMenuSection = nil;
|
PackageEditorMenuRoot: TIDEMenuSection = nil;
|
||||||
|
@ -159,27 +159,8 @@ object ProjectInspectorForm: TProjectInspectorForm
|
|||||||
Top = 112
|
Top = 112
|
||||||
end
|
end
|
||||||
object AddPopupMenu: TPopupMenu
|
object AddPopupMenu: TPopupMenu
|
||||||
|
OnPopup = AddPopupMenuPopup
|
||||||
Left = 74
|
Left = 74
|
||||||
Top = 163
|
Top = 163
|
||||||
object mnuAddDiskFile: TMenuItem
|
|
||||||
Caption = 'Add file from disk'
|
|
||||||
Default = True
|
|
||||||
OnClick = mnuAddDiskFileClick
|
|
||||||
end
|
|
||||||
object MenuItem2: TMenuItem
|
|
||||||
Caption = '-'
|
|
||||||
end
|
|
||||||
object mnuAddEditorFiles: TMenuItem
|
|
||||||
Caption = 'Add editor files'
|
|
||||||
OnClick = mnuAddEditorFilesClick
|
|
||||||
end
|
|
||||||
object mnuAddReq: TMenuItem
|
|
||||||
Caption = 'Add requirement'
|
|
||||||
OnClick = mnuAddReqClick
|
|
||||||
end
|
|
||||||
object mnuAddFPMakeReq: TMenuItem
|
|
||||||
Caption = 'Add FPMake requirement'
|
|
||||||
OnClick = mnuAddFPMakeReqClick
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -77,8 +77,10 @@ uses
|
|||||||
AddToProjectDlg, AddPkgDependencyDlg, AddFPMakeDependencyDlg, LResources;
|
AddToProjectDlg, AddPkgDependencyDlg, AddFPMakeDependencyDlg, LResources;
|
||||||
|
|
||||||
const
|
const
|
||||||
ProjectInspectorMenuRootName = 'ProjectInspector';
|
ProjectInspectorMenuItemsRootName = 'ProjectInspectorItems';
|
||||||
|
ProjectInspectorMenuAddRootName = 'ProjectInspectorAdd';
|
||||||
var
|
var
|
||||||
|
// items popupmenu: files
|
||||||
ProjInspMenuAddDiskFile: TIDEMenuCommand;
|
ProjInspMenuAddDiskFile: TIDEMenuCommand;
|
||||||
ProjInspMenuRemoveNonExistingFiles: TIDEMenuCommand;
|
ProjInspMenuRemoveNonExistingFiles: TIDEMenuCommand;
|
||||||
ProjInspMenuOpenFolder: TIDEMenuCommand;
|
ProjInspMenuOpenFolder: TIDEMenuCommand;
|
||||||
@ -88,6 +90,7 @@ var
|
|||||||
ProjInspMenuEnableI18NForLFM: TIDEMenuCommand;
|
ProjInspMenuEnableI18NForLFM: TIDEMenuCommand;
|
||||||
ProjInspMenuDisableI18NForLFM: TIDEMenuCommand;
|
ProjInspMenuDisableI18NForLFM: TIDEMenuCommand;
|
||||||
|
|
||||||
|
// items popupmenu: dependencies
|
||||||
ProjInspMenuAddDependency: TIDEMenuCommand;
|
ProjInspMenuAddDependency: TIDEMenuCommand;
|
||||||
ProjInspMenuReAddDependency: TIDEMenuCommand;
|
ProjInspMenuReAddDependency: TIDEMenuCommand;
|
||||||
ProjInspMenuMoveDependencyUp: TIDEMenuCommand;
|
ProjInspMenuMoveDependencyUp: TIDEMenuCommand;
|
||||||
@ -96,6 +99,12 @@ var
|
|||||||
ProjInspMenuStoreFilenameAsPreferredOfDependencyDown: TIDEMenuCommand;
|
ProjInspMenuStoreFilenameAsPreferredOfDependencyDown: TIDEMenuCommand;
|
||||||
ProjInspMenuClearPreferredFilenameOfDependencyDown: TIDEMenuCommand;
|
ProjInspMenuClearPreferredFilenameOfDependencyDown: TIDEMenuCommand;
|
||||||
|
|
||||||
|
// add popupmenu
|
||||||
|
ProjInspAddMenuDiskFile: TIDEMenuCommand;
|
||||||
|
ProjInspAddMenuEditorFiles: TIDEMenuCommand;
|
||||||
|
ProjInspAddMenuDependency: TIDEMenuCommand;
|
||||||
|
ProjInspAddMenuFPMakeDependency: TIDEMenuCommand;
|
||||||
|
|
||||||
type
|
type
|
||||||
TOnAddUnitToProject =
|
TOnAddUnitToProject =
|
||||||
function(Sender: TObject; AnUnitInfo: TUnitInfo): TModalresult of object;
|
function(Sender: TObject; AnUnitInfo: TUnitInfo): TModalresult of object;
|
||||||
@ -114,11 +123,6 @@ type
|
|||||||
DirectoryHierarchyButton: TSpeedButton;
|
DirectoryHierarchyButton: TSpeedButton;
|
||||||
FilterEdit: TTreeFilterEdit;
|
FilterEdit: TTreeFilterEdit;
|
||||||
PropsGroupBox: TGroupBox;
|
PropsGroupBox: TGroupBox;
|
||||||
MenuItem2: TMenuItem;
|
|
||||||
mnuAddFPMakeReq: TMenuItem;
|
|
||||||
mnuAddEditorFiles: TMenuItem;
|
|
||||||
mnuAddDiskFile: TMenuItem;
|
|
||||||
mnuAddReq: TMenuItem;
|
|
||||||
OpenButton: TSpeedButton;
|
OpenButton: TSpeedButton;
|
||||||
ItemsTreeView: TTreeView;
|
ItemsTreeView: TTreeView;
|
||||||
ItemsPopupMenu: TPopupMenu;
|
ItemsPopupMenu: TPopupMenu;
|
||||||
@ -131,6 +135,7 @@ type
|
|||||||
RemoveBitBtn: TToolButton;
|
RemoveBitBtn: TToolButton;
|
||||||
OptionsBitBtn: TToolButton;
|
OptionsBitBtn: TToolButton;
|
||||||
HelpBitBtn: TToolButton;
|
HelpBitBtn: TToolButton;
|
||||||
|
procedure AddPopupMenuPopup(Sender: TObject);
|
||||||
procedure CopyMoveToDirMenuItemClick(Sender: TObject);
|
procedure CopyMoveToDirMenuItemClick(Sender: TObject);
|
||||||
procedure DirectoryHierarchyButtonClick(Sender: TObject);
|
procedure DirectoryHierarchyButtonClick(Sender: TObject);
|
||||||
procedure FilterEditKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
|
procedure FilterEditKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
|
||||||
@ -428,10 +433,11 @@ procedure RegisterStandardProjectInspectorMenuItems;
|
|||||||
var
|
var
|
||||||
AParent: TIDEMenuSection;
|
AParent: TIDEMenuSection;
|
||||||
begin
|
begin
|
||||||
ProjectInspectorMenuRoot :=RegisterIDEMenuRoot(ProjectInspectorMenuRootName);
|
// items popupmenu
|
||||||
|
ProjectInspectorItemsMenuRoot:=RegisterIDEMenuRoot(ProjectInspectorMenuItemsRootName);
|
||||||
|
|
||||||
// register the section for operations on selected files
|
// register the section for operations on selected files
|
||||||
ProjInspMenuSectionFiles:=RegisterIDEMenuSection(ProjectInspectorMenuRootName,'Files');
|
ProjInspMenuSectionFiles:=RegisterIDEMenuSection(ProjectInspectorMenuItemsRootName,'Files');
|
||||||
AParent:=ProjInspMenuSectionFiles;
|
AParent:=ProjInspMenuSectionFiles;
|
||||||
ProjInspMenuAddDiskFile:=RegisterIDEMenuCommand(AParent,'Add disk file',lisBtnDlgAdd);
|
ProjInspMenuAddDiskFile:=RegisterIDEMenuCommand(AParent,'Add disk file',lisBtnDlgAdd);
|
||||||
ProjInspMenuRemoveNonExistingFiles:=RegisterIDEMenuCommand(AParent,'Remove non existing files',lisRemoveNonExistingFiles);
|
ProjInspMenuRemoveNonExistingFiles:=RegisterIDEMenuCommand(AParent,'Remove non existing files',lisRemoveNonExistingFiles);
|
||||||
@ -443,7 +449,8 @@ begin
|
|||||||
ProjInspMenuEnableI18NForLFM:=RegisterIDEMenuCommand(AParent,'Enable I18N for LFM',lisEnableI18NForLFM);
|
ProjInspMenuEnableI18NForLFM:=RegisterIDEMenuCommand(AParent,'Enable I18N for LFM',lisEnableI18NForLFM);
|
||||||
ProjInspMenuDisableI18NForLFM:=RegisterIDEMenuCommand(AParent,'Disable I18N for LFM',lisDisableI18NForLFM);
|
ProjInspMenuDisableI18NForLFM:=RegisterIDEMenuCommand(AParent,'Disable I18N for LFM',lisDisableI18NForLFM);
|
||||||
|
|
||||||
ProjInspMenuSectionDependencies:=RegisterIDEMenuSection(ProjectInspectorMenuRootName,'Dependencies');
|
// register the section for operations on dependencies
|
||||||
|
ProjInspMenuSectionDependencies:=RegisterIDEMenuSection(ProjectInspectorMenuItemsRootName,'Dependencies');
|
||||||
AParent:=ProjInspMenuSectionDependencies;
|
AParent:=ProjInspMenuSectionDependencies;
|
||||||
ProjInspMenuReAddDependency:=RegisterIDEMenuCommand(AParent,'ReAdd dependency',lisPckEditReAddDependency);
|
ProjInspMenuReAddDependency:=RegisterIDEMenuCommand(AParent,'ReAdd dependency',lisPckEditReAddDependency);
|
||||||
ProjInspMenuMoveDependencyUp:=RegisterIDEMenuCommand(AParent,'Move dependency up',lisPckEditMoveDependencyUp);
|
ProjInspMenuMoveDependencyUp:=RegisterIDEMenuCommand(AParent,'Move dependency up',lisPckEditMoveDependencyUp);
|
||||||
@ -452,6 +459,20 @@ begin
|
|||||||
ProjInspMenuStoreFilenameAsPreferredOfDependencyDown:=RegisterIDEMenuCommand(AParent,'Store filename as preferred of dependency',lisPckEditStoreFileNameAsPreferredForThisDependency);
|
ProjInspMenuStoreFilenameAsPreferredOfDependencyDown:=RegisterIDEMenuCommand(AParent,'Store filename as preferred of dependency',lisPckEditStoreFileNameAsPreferredForThisDependency);
|
||||||
ProjInspMenuClearPreferredFilenameOfDependencyDown:=RegisterIDEMenuCommand(AParent,'Clear preferred filename of dependency',lisPckEditClearDefaultPreferredFilenameOfDependency);
|
ProjInspMenuClearPreferredFilenameOfDependencyDown:=RegisterIDEMenuCommand(AParent,'Clear preferred filename of dependency',lisPckEditClearDefaultPreferredFilenameOfDependency);
|
||||||
|
|
||||||
|
// add popupmenu
|
||||||
|
ProjectInspectorAddMenuRoot:=RegisterIDEMenuRoot(ProjectInspectorMenuAddRootName);
|
||||||
|
|
||||||
|
// register the section for adding files
|
||||||
|
ProjInspAddMenuSectionFiles:=RegisterIDEMenuSection(ProjectInspectorMenuAddRootName,'Files');
|
||||||
|
AParent:=ProjInspAddMenuSectionFiles;
|
||||||
|
ProjInspAddMenuDiskFile:=RegisterIDEMenuCommand(AParent,'Add disk file',lisBtnDlgAdd);
|
||||||
|
ProjInspAddMenuEditorFiles:=RegisterIDEMenuCommand(AParent,'Add editor files',lisProjAddEditorFile);
|
||||||
|
|
||||||
|
// register the section for adding dependency
|
||||||
|
ProjInspAddMenuSectionDependencies:=RegisterIDEMenuSection(ProjectInspectorMenuAddRootName,'Dependencies');
|
||||||
|
AParent:=ProjInspAddMenuSectionFiles;
|
||||||
|
ProjInspAddMenuDependency:=RegisterIDEMenuCommand(AParent,'Add dependency',lisProjAddNewRequirement);
|
||||||
|
ProjInspAddMenuFPMakeDependency:=RegisterIDEMenuCommand(AParent,'Add fpmake dependency',lisProjAddNewFPMakeRequirement);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -752,6 +773,24 @@ begin
|
|||||||
OnCopyMoveFiles(Self);
|
OnCopyMoveFiles(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectInspectorForm.AddPopupMenuPopup(Sender: TObject);
|
||||||
|
|
||||||
|
procedure SetItem(Item: TIDEMenuCommand; AnOnClick: TNotifyEvent;
|
||||||
|
aShow: boolean = true; AEnable: boolean = true);
|
||||||
|
begin
|
||||||
|
Item.OnClick:=AnOnClick;
|
||||||
|
Item.Visible:=aShow;
|
||||||
|
Item.Enabled:=AEnable;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
ProjectInspectorAddMenuRoot.MenuItem:=AddPopupMenu.Items;
|
||||||
|
SetItem(ProjInspAddMenuDiskFile,@mnuAddDiskFileClick);
|
||||||
|
SetItem(ProjInspAddMenuEditorFiles,@mnuAddEditorFilesClick);
|
||||||
|
SetItem(ProjInspAddMenuDependency,@mnuAddReqClick);
|
||||||
|
SetItem(ProjInspAddMenuFPMakeDependency,@mnuAddFPMakeReqClick);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.DirectoryHierarchyButtonClick(Sender: TObject);
|
procedure TProjectInspectorForm.DirectoryHierarchyButtonClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
ShowDirectoryHierarchy:=DirectoryHierarchyButton.Down;
|
ShowDirectoryHierarchy:=DirectoryHierarchyButton.Down;
|
||||||
@ -845,7 +884,7 @@ var
|
|||||||
OpenItemCapt: String;
|
OpenItemCapt: String;
|
||||||
OnlyFilesNodeSelected, OnlyDependenciesNodeSelected, CanI18NforLFM: Boolean;
|
OnlyFilesNodeSelected, OnlyDependenciesNodeSelected, CanI18NforLFM: Boolean;
|
||||||
begin
|
begin
|
||||||
ProjectInspectorMenuRoot.MenuItem:=ItemsPopupMenu.Items;
|
ProjectInspectorItemsMenuRoot.MenuItem:=ItemsPopupMenu.Items;
|
||||||
|
|
||||||
CanRemoveCount:=0;
|
CanRemoveCount:=0;
|
||||||
CanOpenCount:=0;
|
CanOpenCount:=0;
|
||||||
@ -1280,10 +1319,6 @@ begin
|
|||||||
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisMenuOnlineHelp, 'btn_help', @HelpBitBtnClick);
|
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisMenuOnlineHelp, 'btn_help', @HelpBitBtnClick);
|
||||||
|
|
||||||
AddBitBtn.DropdownMenu:=AddPopupMenu;
|
AddBitBtn.DropdownMenu:=AddPopupMenu;
|
||||||
mnuAddDiskFile.Caption:=lisPckEditAddFilesFromFileSystem;
|
|
||||||
mnuAddEditorFiles.Caption:=lisProjAddEditorFile;
|
|
||||||
mnuAddReq.Caption:=lisProjAddNewRequirement;
|
|
||||||
mnuAddFPMakeReq.Caption:=lisProjAddNewFPMakeRequirement;
|
|
||||||
|
|
||||||
IDEImages.AssignImage(OpenButton, 'laz_open');
|
IDEImages.AssignImage(OpenButton, 'laz_open');
|
||||||
OpenButton.Caption:='';
|
OpenButton.Caption:='';
|
||||||
|
Loading…
Reference in New Issue
Block a user