From b0aa6a6970d1aedef9f796fb93ca4a8a435adda4 Mon Sep 17 00:00:00 2001 From: liujinchang Date: Fri, 30 Oct 2026 03:11:07 +0800 Subject: [PATCH] fix: unify lineNumberAreaWidth to resolve wide left panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Root cause: LeftAreaTextEdit::lineNumberAreaWidth() returned an inflated width (13 + adv*digits + 40) while TextEdit's version returned max(15, adv*digits), causing LineNumberArea::sizeHint() to use the inflated value for initial layout 2. Fix: delegate to m_pTextEdit->lineNumberAreaWidth() so sizeHint() and setFixedWidth() use the same width, eliminating the conflict 3. Impact: blank tab left panel no longer starts oversized; no change to normal width after updateLeftWidgetWidth() correction Log: fix blank tab left panel width inconsistency on startup Influence: 1. Verify blank tab left panel width is correct on startup 2. Verify left panel width after closing and reopening tabs 3. Test line number area width with large files fix: 统一行号区宽度计算消除左侧栏偏宽 1. 根因:LeftAreaTextEdit::lineNumberAreaWidth() 返回膨胀宽度 (13 + adv*digits + 40),而 TextEdit 版本返回 max(15, adv*digits), 导致 LineNumberArea::sizeHint() 用膨胀值做初始布局 2. 方案:委托调用 m_pTextEdit->lineNumberAreaWidth(),使 sizeHint() 与 setFixedWidth() 使用同一宽度值,消除双实现冲突 3. 影响:空白标签页左侧栏不再初始偏宽;updateLeftWidgetWidth() 纠正后的宽度无变化 Log: 修复空白标签页左侧栏宽度偏大的问题 Influence: 1. 验证打开空白标签页时左侧栏宽度正常 2. 验证关闭后重新打开标签页的左侧栏宽度 3. 测试大文件场景下行号区宽度 PMS: BUG-174621 --- src/editor/leftareaoftextedit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/editor/leftareaoftextedit.cpp b/src/editor/leftareaoftextedit.cpp index 36ff6fac..313061b7 100644 --- a/src/editor/leftareaoftextedit.cpp +++ b/src/editor/leftareaoftextedit.cpp @@ -61,7 +61,7 @@ int LeftAreaTextEdit::lineNumberAreaWidth() } qCDebug(appLog) << "LeftAreaTextEdit lineNumberAreaWidth return"; - return 13 + fontMetrics().horizontalAdvance(QLatin1Char('9')) * digits + 40; + return m_pTextEdit->lineNumberAreaWidth(); }