From 2ddafa3c8b7aaa41b51bd676290a7086de500a47 Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 4 Nov 2019 00:09:26 +0000 Subject: [PATCH] IDE: Add ec-commands for "move line up/down", "duplicate line", "copy/cut add to existing clipboard", "copy/cut (add) line/sel to clip" git-svn-id: trunk@62186 - --- ide/keymapping.pp | 30 ++++++++++++++++++++++++++++++ ide/lazarusidestrconsts.pas | 10 ++++++++++ ide/sourceeditor.pp | 2 +- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/ide/keymapping.pp b/ide/keymapping.pp index 993cfd5bc3..b92f89ad49 100644 --- a/ide/keymapping.pp +++ b/ide/keymapping.pp @@ -414,6 +414,15 @@ begin ecCut : Result:= srkmecCut; ecCopy : Result:= srkmecCopy; ecPaste : Result:= srkmecPaste; + ecCopyAdd : Result:= srkmecCopyAdd; + ecCutAdd : Result:= srkmecCutAdd; + ecCopyCurrentLine : Result:= srkmecCopyCurrentLine; + ecCopyAddCurrentLine : Result:= srkmecCopyAddCurrentLine; + ecCutCurrentLine : Result:= srkmecCutCurrentLine; + ecCutAddCurrentLine : Result:= srkmecCutAddCurrentLine; + ecMoveLineUp : Result:= srkmecMoveLineUp; + ecMoveLineDown : Result:= srkmecMoveLineDown; + ecDuplicateLine : Result:= srkmecDuplicateLine; ecMultiPaste : Result:= srkmecMultiPaste; ecScrollUp : Result:= srkmecScrollUp; ecScrollDown : Result:= srkmecScrollDown; @@ -1008,6 +1017,18 @@ begin ecCopy: SetSingle(VK_C,[XCtrl], VK_Insert,[XCtrl]); ecCut: SetSingle(VK_X,[XCtrl], VK_Delete,[ssShift]); ecPaste: SetSingle(VK_V,[XCtrl], VK_Insert,[ssShift]); + + ecCopyAdd: SetSingle(VK_C,[XCtrl, ssAlt]); + ecCutAdd: SetSingle(VK_X,[XCtrl, ssAlt]); + ecCopyCurrentLine: SetSingle(VK_Y,[ssAlt]); + ecCopyAddCurrentLine: SetSingle(VK_Y,[ssAlt, ssShift]); + ecCutCurrentLine: SetSingle(VK_D,[ssAlt]); + ecCutAddCurrentLine: SetSingle(VK_D,[ssAlt, ssShift]); + + ecMoveLineUp: SetSingle(VK_UP,[XCtrl, ssShift, ssAlt]); + ecMoveLineDown: SetSingle(VK_DOWN,[XCtrl, ssShift, ssAlt]); + ecDuplicateLine: SetSingle(VK_INSERT,[XCtrl, ssShift, ssAlt]); + ecMultiPaste: SetSingle(VK_UNKNOWN,[]); ecNormalSelect: SetSingle(VK_UNKNOWN,[]); ecColumnSelect: SetSingle(VK_UNKNOWN,[]); @@ -2669,6 +2690,12 @@ begin AddDefault(C, 'Copy selection to clipboard', srkmecCopy, ecCopy); AddDefault(C, 'Cut selection to clipboard', srkmecCut, ecCut); AddDefault(C, 'Paste clipboard to current position', srkmecPaste, ecPaste); + AddDefault(C, 'Copy - Add to Clipboard', srkmecCopyAdd, ecCopyAdd); + AddDefault(C, 'Cut - Add to Clipboard', srkmecCutAdd, ecCutAdd); + AddDefault(C, 'Copy current line', srkmecCopyCurrentLine, ecCopyCurrentLine); + AddDefault(C, 'Copy current line - Add to Clipboard', srkmecCopyAddCurrentLine, ecCopyAddCurrentLine); + AddDefault(C, 'Cut current line', srkmecCutCurrentLine, ecCutCurrentLine); + AddDefault(C, 'Cut current line - Add to Clipboard', srkmecCutAddCurrentLine, ecCutAddCurrentLine); AddDefault(C, 'Multi paste clipboard to current position', srkmecMultiPaste, ecMultiPaste); AddDefault(C, 'Normal selection mode', srkmecNormalSelect, ecNormalSelect); AddDefault(C, 'Column selection mode', srkmecColumnSelect, ecColumnSelect); @@ -2766,6 +2793,9 @@ begin AddDefault(C, 'Delete whole text', srkmecClearAll, ecClearAll); AddDefault(C, 'Break line and move cursor', srkmecLineBreak, ecLineBreak); AddDefault(C, 'Break line, leave cursor', srkmecInsertLine, ecInsertLine); + AddDefault(C, 'Move one line up', srkmecMoveLineUp, ecMoveLineUp); + AddDefault(C, 'Move one line down', srkmecMoveLineDown, ecMoveLineDown); + AddDefault(C, 'Duplicate line or lines in selection', srkmecDuplicateLine, ecDuplicateLine); AddDefault(C, 'Enclose in $IFDEF', lisEncloseInIFDEF, ecSelectionEncloseIFDEF); AddDefault(C, 'Insert from Character Map', lisMenuInsertCharacter, ecInsertCharacter); AddDefault(C, 'Insert GPL notice', srkmecInsertGPLNotice, ecInsertGPLNotice); diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index e45598cd88..ee72968995 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -3115,6 +3115,16 @@ resourcestring srkmecCut = 'Cut'; srkmecCopy = 'Copy'; srkmecPaste = 'Paste'; + srkmecCopyAdd = 'Copy (Add to Clipboard)'; + srkmecCutAdd = 'Cut (Add to Clipboard)'; + srkmecCopyCurrentLine = 'Copy current line'; + srkmecCopyAddCurrentLine = 'Copy current line (Add to Clipboard)'; + srkmecCutCurrentLine = 'Cut current line'; + srkmecCutAddCurrentLine = 'Cut current line (Add to Clipboard)'; + srkmecMoveLineUp = 'Move one line up'; + srkmecMoveLineDown = 'Move one line down'; + srkmecDuplicateLine = 'Duplicate line (or lines in selection)'; + srkmecMultiPaste = 'MultiPaste'; srkmecScrollUp = 'Scroll up one line'; srkmecScrollDown = 'Scroll down one line'; diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp index 27d2f1041a..ca3f36e241 100644 --- a/ide/sourceeditor.pp +++ b/ide/sourceeditor.pp @@ -3934,7 +3934,7 @@ begin Manager.AddJumpPointClicked(Self); end; - ecCopy,ecCut: + ecCopy,ecCut,ecCopyAdd,ecCutAdd: begin if (not FEditor.SelAvail) then begin // nothing selected