Skip to content

Commit 9bb43fd

Browse files
committed
✨ 增加标签节点的巨大化设置开关
1 parent 1fec4a6 commit 9bb43fd

File tree

6 files changed

+44
-21
lines changed

6 files changed

+44
-21
lines changed

app/src/core/render/canvas2d/renderer.tsx

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { Canvas } from "../../stage/Canvas";
1515
import { Stage } from "../../stage/Stage";
1616
import { StageHistoryManager } from "../../stage/stageManager/StageHistoryManager";
1717
import { StageManager } from "../../stage/stageManager/StageManager";
18+
import { TextNode } from "../../stage/stageObject/entity/TextNode";
1819
import { CurveRenderer } from "./basicRenderer/curveRenderer";
1920
import { ShapeRenderer } from "./basicRenderer/shapeRenderer";
2021
import { TextRenderer } from "./basicRenderer/textRenderer";
@@ -103,6 +104,7 @@ export namespace Renderer {
103104
let isShowBackgroundCartesian = false;
104105
export let isAlwaysShowDetails = false;
105106
export let protectingPrivacy = false;
107+
export let enableTagTextNodesBigDisplay = false;
106108
let isRenderCenterPointer = true;
107109

108110
// 确保这个函数在软件打开的那一次调用
@@ -133,6 +135,7 @@ export namespace Renderer {
133135
Settings.watch("alwaysShowDetails", (value) => (isAlwaysShowDetails = value));
134136
Settings.watch("protectingPrivacy", (value) => (protectingPrivacy = value));
135137
Settings.watch("isRenderCenterPointer", (value) => (isRenderCenterPointer = value));
138+
Settings.watch("enableTagTextNodesBigDisplay", (value) => (enableTagTextNodesBigDisplay = value));
136139
}
137140

138141
/**
@@ -430,27 +433,28 @@ export namespace Renderer {
430433
StageStyleManager.currentStyle.StageObjectBorderColor,
431434
2 * Camera.currentScale,
432435
);
433-
// 用户不建议放大标签,所以这里注释掉了
434-
435-
// if (Camera.currentScale < 0.25 && tagObject instanceof TextNode) {
436-
// const backRect = rect.clone();
437-
// backRect.location = transformWorld2View(rect.center).add(new Vector(-rect.size.x / 2, -rect.size.y / 2));
438-
// const rectBgc = StageStyleManager.currentStyle.BackgroundColor.clone();
439-
// rectBgc.a = 0.5;
440-
// ShapeRenderer.renderRect(
441-
// backRect,
442-
// rectBgc,
443-
// StageStyleManager.currentStyle.StageObjectBorderColor,
444-
// 1,
445-
// NODE_ROUNDED_RADIUS,
446-
// );
447-
// TextRenderer.renderTextFromCenter(
448-
// tagObject.text,
449-
// transformWorld2View(rect.center),
450-
// FONT_SIZE,
451-
// StageStyleManager.currentStyle.StageObjectBorderColor,
452-
// );
453-
// }
436+
// 用户不建议放大标签,所以这里注释掉了,但又有用户觉得这个也挺好,所以加个设置项
437+
if (Renderer.enableTagTextNodesBigDisplay) {
438+
if (Camera.currentScale < 0.25 && tagObject instanceof TextNode) {
439+
const backRect = rect.clone();
440+
backRect.location = transformWorld2View(rect.center).add(new Vector(-rect.size.x / 2, -rect.size.y / 2));
441+
const rectBgc = StageStyleManager.currentStyle.BackgroundColor.clone();
442+
rectBgc.a = 0.5;
443+
ShapeRenderer.renderRect(
444+
backRect,
445+
rectBgc,
446+
StageStyleManager.currentStyle.StageObjectBorderColor,
447+
1,
448+
NODE_ROUNDED_RADIUS,
449+
);
450+
TextRenderer.renderTextFromCenter(
451+
tagObject.text,
452+
transformWorld2View(rect.center),
453+
FONT_SIZE,
454+
StageStyleManager.currentStyle.StageObjectBorderColor,
455+
);
456+
}
457+
}
454458
}
455459
}
456460
/**

app/src/core/service/Settings.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export namespace Settings {
2525
showBackgroundDots: boolean;
2626
showBackgroundCartesian: boolean;
2727
windowBackgroundAlpha: number;
28+
enableTagTextNodesBigDisplay: boolean;
2829
showDebug: boolean;
2930
alwaysShowDetails: boolean;
3031
protectingPrivacy: boolean;
@@ -94,6 +95,7 @@ export namespace Settings {
9495
showBackgroundDots: true,
9596
showBackgroundCartesian: false,
9697
windowBackgroundAlpha: 0.9,
98+
enableTagTextNodesBigDisplay: false,
9799
showDebug: false, // 从1.4.7开始,以后用户安装软件后不默认显示调试信息,进而避免出现让用户感到困惑“这一大堆字是什么”
98100
alwaysShowDetails: false,
99101
protectingPrivacy: false,

app/src/locales/en.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,11 @@ settings:
151151
Usually used by developers.
152152
When enabled, debug information will be displayed in the top left corner of the canvas.
153153
It is recommended to enable this option when reporting bugs with screenshots.
154+
enableTagTextNodesBigDisplay:
155+
title: Bigify Tag Text Nodes Display
156+
description: |
157+
When enabled, tag text nodes will be displayed in a larger size when the canvas is zoomed out to a broad global view,
158+
making it easier to identify the layout and distribution of the entire file.
154159
alwaysShowDetails:
155160
title: Always Show Node Details
156161
description: |

app/src/locales/zh_CN.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,11 @@ settings:
141141
通常为开发者使用
142142
开启后,画布左上角将会显示调试信息。
143143
若您遇到bug截图反馈时,建议开启此选项。
144+
enableTagTextNodesBigDisplay:
145+
title: 标签文本节点巨大化显示
146+
description: |
147+
开启后,标签文本节点的显示在画布缩小到广袤的全局视野时,
148+
标签会巨大化显示,以便更容易辨识整个文件的布局分布
144149
alwaysShowDetails:
145150
title: 始终显示节点详细信息
146151
description: |

app/src/locales/zh_TW.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ settings:
123123
通常為開發者使用
124124
開啟後,畫布左上角將會顯示除錯資訊。
125125
若您遇到bug截圖回饋時,建議開啟此選項。
126+
enableTagTextNodesBigDisplay:
127+
title: 标签文本节点巨大化显示
128+
description: |
129+
开启后,标签文本节点的显示在画布缩小到广袤的全局视野时,
130+
标签会巨大化显示,以便更容易辨识整个文件的布局分布
126131
alwaysShowDetails:
127132
title: 始終顯示節點詳細資訊
128133
description: |

app/src/pages/settings/visual.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
Scaling,
1717
Space,
1818
Spline,
19+
Tag,
1920
VenetianMask,
2021
} from "lucide-react";
2122
import { SettingField } from "./_field";
@@ -34,6 +35,7 @@ export default function Visual() {
3435
<SettingField icon={<Move3d />} settingKey="showBackgroundCartesian" type="switch" />
3536
<SettingField icon={<Blend />} settingKey="windowBackgroundAlpha" type="slider" min={0} max={1} step={0.01} />
3637
<SettingField icon={<Bug />} settingKey="showDebug" type="switch" />
38+
<SettingField icon={<Tag />} settingKey="enableTagTextNodesBigDisplay" type="switch" />
3739
<SettingField icon={<VenetianMask />} settingKey="protectingPrivacy" type="switch" />
3840

3941
<SettingField icon={<ListCollapse />} settingKey="alwaysShowDetails" type="switch" />

0 commit comments

Comments
 (0)