File tree Expand file tree Collapse file tree 8 files changed +89
-38
lines changed Expand file tree Collapse file tree 8 files changed +89
-38
lines changed Original file line number Diff line number Diff line change @@ -63,6 +63,8 @@ export namespace Settings {
6363 textNodeContentLineBreak : "enter" | "ctrlEnter" | "altEnter" | "shiftEnter" ;
6464 textNodeExitEditMode : "enter" | "ctrlEnter" | "altEnter" | "shiftEnter" ;
6565 textNodeStartEditMode : "enter" | "ctrlEnter" | "altEnter" | "shiftEnter" ;
66+ textNodeSelectAllWhenStartEditByKeyboard : boolean ;
67+ textNodeSelectAllWhenStartEditByMouseClick : boolean ;
6668 // 音效相关
6769 soundEnabled : boolean ;
6870 cuttingLineStartSoundFile : string ;
@@ -126,6 +128,8 @@ export namespace Settings {
126128 textNodeContentLineBreak : "enter" ,
127129 textNodeExitEditMode : "ctrlEnter" ,
128130 textNodeStartEditMode : "enter" ,
131+ textNodeSelectAllWhenStartEditByKeyboard : false ,
132+ textNodeSelectAllWhenStartEditByMouseClick : true ,
129133 // 音效相关
130134 soundEnabled : true ,
131135 cuttingLineStartSoundFile : "" ,
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ import { UrlNode } from "../../../../stage/stageObject/entity/UrlNode";
77import { Controller } from "../Controller" ;
88import { ControllerClass } from "../ControllerClass" ;
99import { editNodeDetails , editTextNode , editUrlNodeTitle } from "./utilsControl" ;
10+ import { Stage } from "../../../../stage/Stage" ;
1011/**
1112 * 包含编辑节点文字,编辑详细信息等功能的控制器
1213 *
@@ -30,7 +31,7 @@ ControllerNodeEdit.mouseDoubleClick = (event: MouseEvent) => {
3031 editNodeDetails ( clickedEntity ) ;
3132 } else {
3233 if ( clickedEntity instanceof TextNode ) {
33- editTextNode ( clickedEntity ) ;
34+ editTextNode ( clickedEntity , Stage . textNodeSelectAllWhenStartEditByMouseClick ) ;
3435 } else if ( clickedEntity instanceof UrlNode ) {
3536 const diffNodeLeftTopLocation = pressLocation . subtract ( clickedEntity . rectangle . leftTop ) ;
3637 if ( diffNodeLeftTopLocation . y < UrlNode . titleHeight ) {
Original file line number Diff line number Diff line change @@ -29,13 +29,17 @@ export namespace KeyboardOnlyEngine {
2929 }
3030
3131 let textNodeStartEditMode : Settings . Settings [ "textNodeStartEditMode" ] = "enter" ;
32+ let textNodeSelectAllWhenStartEditByKeyboard : boolean = true ;
3233
3334 export function init ( ) {
3435 bindKeyEvents ( ) ;
3536 targetLocationController . init ( ) ;
3637 Settings . watch ( "textNodeStartEditMode" , ( value ) => {
3738 textNodeStartEditMode = value ;
3839 } ) ;
40+ Settings . watch ( "textNodeSelectAllWhenStartEditByKeyboard" , ( value ) => {
41+ textNodeSelectAllWhenStartEditByKeyboard = value ;
42+ } ) ;
3943 }
4044
4145 export function logicTick ( ) {
@@ -61,7 +65,7 @@ export namespace KeyboardOnlyEngine {
6165 event . preventDefault ( ) ; // 这个prevent必须开启,否则会立刻在刚创建的输入框里输入一个换行符。
6266 addSuccessEffect ( ) ;
6367 // 编辑节点
64- editTextNode ( selectedNode , false ) ;
68+ editTextNode ( selectedNode , textNodeSelectAllWhenStartEditByKeyboard ) ;
6569 } else {
6670 // 用户可能记错了快捷键
6771 addFailEffect ( ) ;
Original file line number Diff line number Diff line change @@ -109,6 +109,8 @@ export namespace Stage {
109109 export let mouseRightDragBackground = "cut" ;
110110 export let enableDragAutoAlign = true ;
111111
112+ export let textNodeSelectAllWhenStartEditByMouseClick = true ;
113+
112114 export function init ( ) {
113115 autoSaveEngine . init ( ) ;
114116 autoBackupEngine . init ( ) ;
@@ -118,5 +120,8 @@ export namespace Stage {
118120 Settings . watch ( "enableDragAutoAlign" , ( value ) => {
119121 enableDragAutoAlign = value ;
120122 } ) ;
123+ Settings . watch ( "textNodeSelectAllWhenStartEditByMouseClick" , ( value ) => {
124+ textNodeSelectAllWhenStartEditByMouseClick = value ;
125+ } ) ;
121126 }
122127}
Original file line number Diff line number Diff line change @@ -313,31 +313,41 @@ settings:
313313 textNodeContentLineBreak :
314314 title : 文本节点换行方案
315315 options :
316- enter : enter
317- ctrlEnter : ctrlEnter
318- altEnter : altEnter
319- shiftEnter : shiftEnter
316+ enter : Enter
317+ ctrlEnter : ctrl + Enter
318+ altEnter : alt + Enter
319+ shiftEnter : shift + Enter
320320 description : |
321321 注意不要和文本节点退出编辑模式的按键一样了,这样会导致冲突
322322 进而导致无法换行
323323 textNodeStartEditMode :
324324 title : 文本节点进入编辑模式
325325 options :
326- enter : enter
327- ctrlEnter : ctrlEnter
328- altEnter : altEnter
329- shiftEnter : shiftEnter
326+ enter : Enter
327+ ctrlEnter : ctrl + Enter
328+ altEnter : alt + Enter
329+ shiftEnter : shift + Enter
330330 description : |
331331 实际上按F2键也可以进入编辑模式,这里还可以再加选一种
332332 textNodeExitEditMode :
333333 title : 文本节点退出编辑模式
334334 options :
335- enter : enter
336- ctrlEnter : ctrlEnter
337- altEnter : altEnter
338- shiftEnter : shiftEnter
335+ enter : Enter
336+ ctrlEnter : ctrl + Enter
337+ altEnter : alt + Enter
338+ shiftEnter : shift + Enter
339339 description : |
340340 实际上按Esc键也可以退出,这里还可以再加选一种
341+ textNodeSelectAllWhenStartEditByMouseClick :
342+ title : 文本节点通过双击开始编辑时自动全选内容
343+ description : |
344+ 开启后,在文本节点开始编辑时,会全选文本内容
345+ 如果您编辑内容通常是想为了直接更改全部内容,建议开启此选项
346+ 如果更可能是想为了追加内容,建议关闭此选项
347+ textNodeSelectAllWhenStartEditByKeyboard :
348+ title : 文本节点通过键盘开始编辑时自动全选内容
349+ description : |
350+ 开启后,在您按下文本节点编辑模式的按键时,会全选文本内容
341351 enableDragAutoAlign :
342352 title : Enable Drag Auto Align Nodes
343353 description : |
Original file line number Diff line number Diff line change @@ -296,31 +296,41 @@ settings:
296296 textNodeContentLineBreak :
297297 title : 文本节点换行方案
298298 options :
299- enter : enter
300- ctrlEnter : ctrlEnter
301- altEnter : altEnter
302- shiftEnter : shiftEnter
299+ enter : Enter
300+ ctrlEnter : ctrl + Enter
301+ altEnter : alt + Enter
302+ shiftEnter : shift + Enter
303303 description : |
304304 注意不要和文本节点退出编辑模式的按键一样了,这样会导致冲突
305305 进而导致无法换行
306306 textNodeStartEditMode :
307307 title : 文本节点进入编辑模式
308308 options :
309- enter : enter
310- ctrlEnter : ctrlEnter
311- altEnter : altEnter
312- shiftEnter : shiftEnter
309+ enter : Enter
310+ ctrlEnter : ctrl + Enter
311+ altEnter : alt + Enter
312+ shiftEnter : shift + Enter
313313 description : |
314314 实际上按F2键也可以进入编辑模式,这里还可以再加选一种
315315 textNodeExitEditMode :
316316 title : 文本节点退出编辑模式
317317 options :
318- enter : enter
319- ctrlEnter : ctrlEnter
320- altEnter : altEnter
321- shiftEnter : shiftEnter
318+ enter : Enter
319+ ctrlEnter : ctrl + Enter
320+ altEnter : alt + Enter
321+ shiftEnter : shift + Enter
322322 description : |
323323 实际上按Esc键也可以退出,这里还可以再加选一种
324+ textNodeSelectAllWhenStartEditByMouseClick :
325+ title : 文本节点通过双击开始编辑时自动全选内容
326+ description : |
327+ 开启后,在文本节点开始编辑时,会全选文本内容
328+ 如果您编辑内容通常是想为了直接更改全部内容,建议开启此选项
329+ 如果更可能是想为了追加内容,建议关闭此选项
330+ textNodeSelectAllWhenStartEditByKeyboard :
331+ title : 文本节点通过键盘开始编辑时自动全选内容
332+ description : |
333+ 开启后,在您按下文本节点编辑模式的按键时,会全选文本内容
324334 enableDragAutoAlign :
325335 title : 鼠标拖动自动吸附对齐节点
326336 description : |
Original file line number Diff line number Diff line change @@ -284,31 +284,41 @@ settings:
284284 textNodeContentLineBreak :
285285 title : 文本节点换行方案
286286 options :
287- enter : enter
288- ctrlEnter : ctrlEnter
289- altEnter : altEnter
290- shiftEnter : shiftEnter
287+ enter : Enter
288+ ctrlEnter : ctrl + Enter
289+ altEnter : alt + Enter
290+ shiftEnter : shift + Enter
291291 description : |
292292 注意不要和文本节点退出编辑模式的按键一样了,这样会导致冲突
293293 进而导致无法换行
294294 textNodeStartEditMode :
295295 title : 文本节点进入编辑模式
296296 options :
297- enter : enter
298- ctrlEnter : ctrlEnter
299- altEnter : altEnter
300- shiftEnter : shiftEnter
297+ enter : Enter
298+ ctrlEnter : ctrl + Enter
299+ altEnter : alt + Enter
300+ shiftEnter : shift + Enter
301301 description : |
302302 实际上按F2键也可以进入编辑模式,这里还可以再加选一种
303303 textNodeExitEditMode :
304304 title : 文本节点退出编辑模式
305305 options :
306- enter : enter
307- ctrlEnter : ctrlEnter
308- altEnter : altEnter
309- shiftEnter : shiftEnter
306+ enter : Enter
307+ ctrlEnter : ctrl + Enter
308+ altEnter : alt + Enter
309+ shiftEnter : shift + Enter
310310 description : |
311311 实际上按Esc键也可以退出,这里还可以再加选一种
312+ textNodeSelectAllWhenStartEditByMouseClick :
313+ title : 文本节点通过双击开始编辑时自动全选内容
314+ description : |
315+ 开启后,在文本节点开始编辑时,会全选文本内容
316+ 如果您编辑内容通常是想为了直接更改全部内容,建议开启此选项
317+ 如果更可能是想为了追加内容,建议关闭此选项
318+ textNodeSelectAllWhenStartEditByKeyboard :
319+ title : 文本节点通过键盘开始编辑时自动全选内容
320+ description : |
321+ 开启后,在您按下文本节点编辑模式的按键时,会全选文本内容
312322 enableDragAutoAlign :
313323 title : 鼠标拖动自动对齐节点
314324 description : |
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import {
1212 RotateCw ,
1313 ScanEye ,
1414 Skull ,
15+ TextCursorInput ,
1516 TextSelect ,
1617} from "lucide-react" ;
1718import { FieldGroup , SettingField } from "./_field" ;
@@ -28,6 +29,12 @@ export default function Control() {
2829 < SettingField icon = { < ListRestart /> } settingKey = "textNodeStartEditMode" type = "select" />
2930 < SettingField icon = { < ListEnd /> } settingKey = "textNodeContentLineBreak" type = "select" />
3031 < SettingField icon = { < ListCheck /> } settingKey = "textNodeExitEditMode" type = "select" />
32+ < SettingField
33+ icon = { < TextCursorInput /> }
34+ settingKey = "textNodeSelectAllWhenStartEditByMouseClick"
35+ type = "switch"
36+ />
37+ < SettingField icon = { < TextCursorInput /> } settingKey = "textNodeSelectAllWhenStartEditByKeyboard" type = "switch" />
3138 </ FieldGroup >
3239
3340 < FieldGroup title = "Edge 连线" icon = { < GitCompareArrows /> } >
You can’t perform that action at this time.
0 commit comments