Skip to content

fix(ui): fix long filename display in save dialog#289

Merged
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
add-uos:fix-339267-fix-long-filename-display-in-save-dialog
Jul 9, 2026
Merged

fix(ui): fix long filename display in save dialog#289
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
add-uos:fix-339267-fix-long-filename-display-in-save-dialog

Conversation

@add-uos

@add-uos add-uos commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Add file name length limiting to prevent layout issues with long filenames in the exit save dialog.

添加文件名长度限制,防止长文件名在退出保存对话框中导致布局问题。

Log: 修复保存对话框长文件名显示异常
PMS: BUG-339267
Influence: 修复了长文件名在保存对话框中显示异常的问题,避免界面布局错乱,提升用户体验。

Add file name length limiting to prevent layout issues with long filenames
in the exit save dialog.

添加文件名长度限制,防止长文件名在退出保存对话框中导致布局问题。

Log: 修复保存对话框长文件名显示异常
PMS: BUG-339267
Influence: 修复了长文件名在保存对话框中显示异常的问题,避免界面布局错乱,提升用户体验。

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @add-uos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: add-uos, lzwind

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

★ 总体评分:100分

■ 【总体评价】

代码通过QFontMetrics实现了文件名过长时的中间省略显示,修复了UI显示过宽的问题。
逻辑正确,代码规范,无安全漏洞和性能问题,故给予满分。

■ 【详细分析】

  • 1.语法逻辑(完全正确)✓

在SaveDialog::showExitDialog函数中,使用QFontMetrics获取应用字体,并调用elidedText配合Qt::ElideMiddle对fileName进行省略处理,最后将处理后的showName用于DDialog的文本显示。栈上创建的对象生命周期管理正确,无内存泄漏风险。
潜在问题:无
建议:无

  • 2.代码质量(优秀)✓

新增的kMaxFileNameWidth常量放在匿名命名空间中,限制了作用域,符合C++最佳实践。头文件包含准确,变量命名showName清晰表达了意图,日志记录保留了原始fileName信息,便于调试。
潜在问题:无
建议:无

  • 3.代码性能(无性能问题)✓

QFontMetrics的创建和elidedText的计算均为轻量级操作,且仅在对话框弹出时执行一次,不会对程序性能产生负面影响。
潜在问题:无
建议:无

  • 4.代码安全(存在0个安全漏洞)✓

漏洞对比统计:新增漏洞 0 个,减少漏洞 0 个,持平 0 个
本次修改仅涉及UI文本的省略显示,未引入任何外部输入执行、内存越界或注入风险,无安全攻击面。

  • 建议:无

■ 【改进建议代码示例】

// 当前代码已非常优秀,无需额外修复,以下为保持上下文完整的代码示例
constexpr int kMaxFileNameWidth = 400;

int SaveDialog::showExitDialog(QString fileName, QWidget  *parent)
{
    qCDebug(appLog) << "Showing save dialog for file:" << fileName << ", parent:" << parent;
    QFontMetrics fm(QGuiApplication::font());
    QString showName = fm.elidedText(fileName, Qt::ElideMiddle, kMaxFileNameWidth);
    DDialog dlg(tr("Save the changes to \"%1\"?").arg(showName), "", parent);
    dlg.setIcon(QIcon::fromTheme("deepin-reader"));
    dlg.addButtons(QStringList() <<  tr("Cancel", "button") << tr("Discard", "button"));
    dlg.addButton(tr("Save", "button"), true, DDialog::ButtonRecommend);
    // 假设后续有 return dlg.exec(); 等返回逻辑
    return dlg.exec();
}

@add-uos

add-uos commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

/merge

@deepin-bot deepin-bot Bot merged commit 6d45eb6 into linuxdeepin:master Jul 9, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants