IDE, SourceEditor: "Close tabs on right". Issue #0029929 / Added key combo

git-svn-id: trunk@60017 -
This commit is contained in:
martin 2019-01-06 19:44:58 +00:00
parent 781767973e
commit d0017b194c
5 changed files with 37 additions and 6 deletions

View File

@ -174,6 +174,8 @@ const
ecRestart = ecFirstLazarus + 213;
ecQuit = ecFirstLazarus + 214;
ecOpenUnit = ecFirstLazarus + 215;
ecCloseOtherTabs = ecFirstLazarus + 216;
ecCloseRightTabs = ecFirstLazarus + 217;
// edit menu
ecMultiPaste = ecFirstLazarus + 230;
@ -1924,7 +1926,7 @@ begin
end;
const
IDEEditorCommandStrs: array[0..319] of TIdentMapEntry = (
IDEEditorCommandStrs: array[0..321] of TIdentMapEntry = (
// search
(Value: ecFind; Name: 'ecFind'),
(Value: ecFindAgain; Name: 'ecFindAgain'),
@ -2042,6 +2044,8 @@ const
(Value: ecCleanDirectory; Name: 'ecCleanDirectory'),
(Value: ecRestart; Name: 'ecRestart'),
(Value: ecQuit; Name: 'ecQuit'),
(Value: ecCloseOtherTabs; Name: 'ecCloseOtherTabs'),
(Value: ecCloseRightTabs; Name: 'ecCloseRightTabs'),
// edit menu
(Value: ecMultiPaste; Name: 'ecMultiPaste'),

View File

@ -515,6 +515,8 @@ begin
ecSaveAll : Result:= lisSaveAll;
ecClose : Result:= lisClose;
ecCloseAll : Result:= lisMenuCloseAll;
ecCloseOtherTabs : Result:= uemCloseOtherPages;
ecCloseRightTabs : Result:= uemCloseOtherPagesRight;
ecCleanDirectory : Result:= lisMenuCleanDirectory;
ecRestart : Result:= lisRestart;
ecQuit : Result:= lisQuit;
@ -1258,6 +1260,8 @@ begin
ecSaveAll: SetSingle(VK_S,[XCtrl,ssShift]);
ecClose: SetSingle(VK_F4,[XCtrl]);
ecCloseAll: SetSingle(VK_UNKNOWN,[]);
ecCloseOtherTabs: SetSingle(VK_UNKNOWN,[]);
ecCloseRightTabs: SetSingle(VK_UNKNOWN,[]);
ecCleanDirectory: SetSingle(VK_UNKNOWN,[]);
ecRestart: SetSingle(VK_UNKNOWN,[]);
ecQuit: SetSingle(VK_UNKNOWN,[]);
@ -1703,6 +1707,8 @@ begin
ecSaveAll: SetSingle(VK_F2,[ssShift]);
ecClose: SetSingle(VK_F3,[ssAlt]);
ecCloseAll: SetSingle(VK_UNKNOWN,[]);
ecCloseOtherTabs: SetSingle(VK_UNKNOWN,[]);
ecCloseRightTabs: SetSingle(VK_UNKNOWN,[]);
ecCleanDirectory: SetSingle(VK_UNKNOWN,[]);
ecRestart: SetSingle(VK_UNKNOWN,[]);
ecQuit: SetSingle(VK_X,[ssAlt]);
@ -2331,6 +2337,8 @@ begin
ecSaveAll: SetSingle(VK_S,[ssMeta,ssAlt]);
ecClose: SetSingle(VK_W,[ssMeta,ssShift]);
ecCloseAll: SetSingle(VK_UNKNOWN,[]);
ecCloseOtherTabs: SetSingle(VK_UNKNOWN,[]);
ecCloseRightTabs: SetSingle(VK_UNKNOWN,[]);
ecCleanDirectory: SetSingle(VK_UNKNOWN,[]);
ecRestart: SetSingle(VK_UNKNOWN,[]);
ecQuit: SetSingle(VK_UNKNOWN,[]);
@ -3025,6 +3033,8 @@ begin
AddDefault(C, 'SaveAll', lisKMSaveAll, ecSaveAll);
AddDefault(C, 'Close', lisClose, ecClose);
AddDefault(C, 'CloseAll', lisCloseAll, ecCloseAll);
AddDefault(C, 'CloseAllOther', uemCloseOtherPagesPlain, ecCloseOtherTabs);
AddDefault(C, 'CloseAllRight', uemCloseOtherPagesRightPlain, ecCloseRightTabs);
AddDefault(C, 'Clean Directory', lisClDirCleanDirectory, ecCleanDirectory);
AddDefault(C, 'Restart', lisRestart, ecRestart);
AddDefault(C, 'Quit', lisQuit, ecQuit);

View File

@ -2816,6 +2816,8 @@ resourcestring
uemClosePage = '&Close Page';
uemCloseOtherPages = 'Close All &Other Pages';
uemCloseOtherPagesRight = 'Close Pages on the &Right';
uemCloseOtherPagesPlain = 'Close All Other Pages';
uemCloseOtherPagesRightPlain = 'Close Pages on the Right';
uemLockPage = '&Lock Page';
uemCopyToNewWindow = 'Clone to New Window';
uemCopyToOtherWindow = 'Clone to Other Window';

View File

@ -8,11 +8,11 @@ object SourceNotebook: TSourceNotebook
ClientHeight = 300
ClientWidth = 400
OnMouseUp = FormMouseUp
LCLVersion = '1.9.0.0'
LCLVersion = '2.1.0.0'
object StatusBar: TStatusBar
Left = 0
Height = 20
Top = 280
Height = 23
Top = 277
Width = 400
Panels = <
item
@ -40,8 +40,8 @@ object SourceNotebook: TSourceNotebook
OnDrawPanel = StatusBarDrawPanel
end
object StatusPopUpMenu: TPopupMenu
Left = 48
Top = 36
left = 48
top = 36
object GoToLineMenuItem: TMenuItem
Caption = 'Goto line ...'
OnClick = GoToLineMenuItemClick

View File

@ -1215,7 +1215,9 @@ type
private
// Context-Menu
procedure CloseOtherPagesClicked(Sender: TObject);
procedure CloseOtherPagesClickedAsync(Sender: PtrInt);
procedure CloseRightPagesClicked(Sender: TObject);
procedure CloseRightPagesClickedAsync(Sender: PtrInt);
procedure ReadOnlyClicked(Sender: TObject);
procedure ToggleLineNumbersClicked(Sender: TObject);
procedure ToggleI18NForLFMClicked(Sender: TObject);
@ -4178,6 +4180,9 @@ Begin
Manager.OnClearBookmarkId(Self, i);
end;
ecCloseOtherTabs: Application.QueueAsyncCall(@Manager.CloseOtherPagesClickedAsync, PtrInt(SourceNotebook.GetNoteBookPage(SourceNotebook.FindPageWithEditor(Self))));
ecCloseRightTabs: Application.QueueAsyncCall(@Manager.CloseRightPagesClickedAsync, PtrInt(SourceNotebook.GetNoteBookPage(SourceNotebook.FindPageWithEditor(Self))));
else
begin
Handled:=false;
@ -11328,12 +11333,22 @@ begin
OnCloseClicked(Sender, [ceoCloseOthers]);
end;
procedure TSourceEditorManager.CloseOtherPagesClickedAsync(Sender: PtrInt);
begin
CloseOtherPagesClicked(TObject(Sender));
end;
procedure TSourceEditorManager.CloseRightPagesClicked(Sender: TObject);
begin
if Assigned(OnCloseClicked) then
OnCloseClicked(Sender, [ceoCloseOthersOnRightSide]);
end;
procedure TSourceEditorManager.CloseRightPagesClickedAsync(Sender: PtrInt);
begin
CloseRightPagesClicked(TObject(Sender));
end;
procedure TSourceEditorManager.ReadOnlyClicked(Sender: TObject);
var ActEdit: TSourceEditor;
begin