Skip to content

Commit 015a046

Browse files
committed
fix: 修复两个大型分组框直接的普通连线上的文字过大的问题
1 parent 788043b commit 015a046

2 files changed

Lines changed: 4 additions & 19 deletions

File tree

app/src/core/render/canvas2d/entityRenderer/edge/concrete/StraightEdgeRenderer.tsx

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { ConnectableEntity } from "@/core/stage/stageObject/abstract/Connectable
1010
import { LineEdge } from "@/core/stage/stageObject/association/LineEdge";
1111
import { Edge } from "@/core/stage/stageObject/association/Edge";
1212
import { ConnectPoint } from "@/core/stage/stageObject/entity/ConnectPoint";
13-
import { Section } from "@/core/stage/stageObject/entity/Section";
1413
import { TextNode } from "@/core/stage/stageObject/entity/TextNode";
1514
import { SvgUtils } from "@/core/render/svg/SvgUtils";
1615
import { EdgeRendererClass } from "@/core/render/canvas2d/entityRenderer/edge/EdgeRendererClass";
@@ -110,14 +109,7 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
110109
: edge.color;
111110

112111
let edgeWidth = 2;
113-
if (Settings.enableAutoEdgeWidth && edge.target instanceof Section && edge.source instanceof Section) {
114-
const rect1 = edge.source.collisionBox.getRectangle();
115-
const rect2 = edge.target.collisionBox.getRectangle();
116-
edgeWidth = Math.min(
117-
Math.min(Math.max(rect1.width, rect1.height), Math.max(rect2.width, rect2.height)) / 100,
118-
100,
119-
);
120-
} else if (edge.source instanceof TextNode) {
112+
if (edge.source instanceof TextNode) {
121113
edgeWidth = edge.source.getBorderWidth();
122114
}
123115
const straightBodyLine = edge.bodyLine;
@@ -151,13 +143,12 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
151143
}
152144

153145
public getNormalStageSvg(edge: LineEdge): React.ReactNode {
154-
let lineBody: React.ReactNode = <></>;
155-
let textNode: React.ReactNode = <></>;
156146
const edgeColor = edge.color.equals(Color.Transparent)
157147
? this.project.stageStyleManager.currentStyle.StageObjectBorder
158148
: edge.color;
159-
lineBody = SvgUtils.line(edge.bodyLine.start, edge.bodyLine.end, edgeColor, 2);
149+
const lineBody = SvgUtils.line(edge.bodyLine.start, edge.bodyLine.end, edgeColor, 2);
160150

151+
let textNode: React.ReactNode = <></>;
161152
if (edge.text.trim() !== "") {
162153
textNode = SvgUtils.textFromCenterWithStroke(
163154
edge.text,

app/src/core/stage/stageObject/association/LineEdge.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import { Project } from "@/core/Project";
22
import { Renderer } from "@/core/render/canvas2d/renderer";
3-
import { Settings } from "@/core/service/Settings";
43
import { ConnectableEntity } from "@/core/stage/stageObject/abstract/ConnectableEntity";
54
import { Edge } from "@/core/stage/stageObject/association/Edge";
65
import { EdgeCollisionBoxGetter } from "@/core/stage/stageObject/association/EdgeCollisionBoxGetter";
76
import { CollisionBox } from "@/core/stage/stageObject/collisionBox/collisionBox";
8-
import { Section } from "@/core/stage/stageObject/entity/Section";
97
import { TextNode } from "@/core/stage/stageObject/entity/TextNode";
108
import { getMultiLineTextSize } from "@/utils/font";
119
import { Color, Vector } from "@graphif/data-structures";
@@ -84,11 +82,7 @@ export class LineEdge extends Edge {
8482

8583
/** 与渲染器保持一致的线宽,用于字号等比缩放 */
8684
get edgeWidth(): number {
87-
if (Settings.enableAutoEdgeWidth && this.target instanceof Section && this.source instanceof Section) {
88-
const rect1 = this.source.collisionBox.getRectangle();
89-
const rect2 = this.target.collisionBox.getRectangle();
90-
return Math.min(Math.min(Math.max(rect1.width, rect1.height), Math.max(rect2.width, rect2.height)) / 100, 100);
91-
} else if (this.source instanceof TextNode) {
85+
if (this.source instanceof TextNode) {
9286
return this.source.getBorderWidth();
9387
}
9488
return 2;

0 commit comments

Comments
 (0)