Merge branch 'IDE/Editor/StatusBar/CopyFileName' into 'main'

IDE/SourceEditor: Add a file name copy command to the status bar context menu

See merge request freepascal.org/lazarus/lazarus!520
This commit is contained in:
Maxim Ganetsky 2025-07-03 23:33:10 +03:00
commit 0852c1a313
2 changed files with 13 additions and 0 deletions

View File

@ -49,6 +49,10 @@ object SourceNotebook: TSourceNotebook
Caption = 'Goto line ...'
OnClick = GoToLineMenuItemClick
end
object CopyFullPathMenuItem: TMenuItem
Caption = 'Copy full path'
OnClick = CopyFullPathMenuItemClick
end
object OpenFolderMenuItem: TMenuItem
Caption = 'Open folder ...'
OnClick = OpenFolderMenuItemClick

View File

@ -684,6 +684,7 @@ type
TSourceNotebook = class(TSourceEditorWindowInterface)
GoToLineMenuItem: TMenuItem;
CopyFullPathMenuItem: TMenuItem;
OpenFolderMenuItem: TMenuItem;
StatusPopUpMenu: TPopupMenu;
StatusBar: TStatusBar;
@ -691,6 +692,7 @@ type
{%H-}Shift: TShiftState; {%H-}X, {%H-}Y: Integer);
procedure FormResize(Sender: TObject);
procedure GoToLineMenuItemClick(Sender: TObject);
procedure CopyFullPathMenuItemClick(Sender: TObject);
procedure OpenFolderMenuItemClick(Sender: TObject);
procedure StatusBarClick(Sender: TObject);
procedure StatusBarDblClick(Sender: TObject);
@ -7692,6 +7694,7 @@ begin
end;
GoToLineMenuItem.Caption := lisMenuGotoLine;
CopyFullPathMenuItem.Caption := uemCopyFilename;
OpenFolderMenuItem.Caption := lisMenuOpenFolder;
{$IFDEF VerboseMenuIntf}
SrcPopupMenu.Items.WriteDebugReport('TSourceNotebook.BuildPopupMenu ');
@ -8885,6 +8888,7 @@ var
begin
i := StatusBar.GetPanelIndexAt(MousePos.X, MousePos.Y);
GoToLineMenuItem.Visible := i=CStatusPanelXY;
CopyFullPathMenuItem.Visible := i=CStatusPanelFile;
OpenFolderMenuItem.Visible := i=CStatusPanelFile;
if i in [CStatusPanelXY, CStatusPanelFile] then
StatusPopUpMenu.PopUp
@ -9120,6 +9124,11 @@ begin
Manager.GotoLineClicked(nil);
end;
procedure TSourceNotebook.CopyFullPathMenuItemClick(Sender: TObject);
begin
Clipboard.AsText := Statusbar.Panels[CStatusPanelFile].Text;
end;
procedure TSourceNotebook.OpenFolderMenuItemClick(Sender: TObject);
begin
SelectInFolder(Statusbar.Panels[CStatusPanelFile].Text);