fix(sidebar): align catalog scrollbar to far-right edge - #347
Conversation
1. Set mainLayout contentsMargins to (0,0,0,0) in CatalogWidget 2. CatalogTreeView vertical scrollbar no longer floats 9px inside 3. Aligns CatalogWidget with other 4 sidebar scroll components Log: fix catalog sidebar scrollbar floating inside 9px gutter Influence: catalog scrollbar now lands on sidebar far-right edge fix(sidebar): 目录侧边栏滚动条对齐至右边缘 1. 设置 CatalogWidget mainLayout contentsMargins 为 (0,0,0,0) 2. 目录树垂直滚动条不再内缩 9px 3. 与侧边栏其余 4 个滚动组件统一边距 Log: 修复目录侧边栏滚动条内缩 9px 的问题 PMS: BUG-375255 Influence: 目录滚动条现贴齐侧边栏右边缘,与其他组件一致
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: F-windy The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Reviewer's guide (collapsed on small PRs)Reviewer's GuideFixes the CatalogWidget scrollbar’s 9px inset by explicitly setting its main layout margins to zero, bringing it into alignment with the other scrollable sidebar components and the DTK/UOS layout-density requirement. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
deepin pr auto review🤖 AI 代码审查报告📊 总体评价
🔍 详细分析1. 语法逻辑 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 语法正确,逻辑清晰。mainLayout->setContentsMargins(0, 0, 0, 0) 是 Qt QVBoxLayout 的标准 API 调用,参数类型和数量正确,调用位置在 mainLayout 创建之后、添加子控件之前,逻辑合理。 2. 代码质量 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 代码结构清晰,修改精准。仅1行代码变更,直接解决问题,与侧边栏其余4个组件(缩略图、书签、批注、搜索)的 setContentsMargins 调用保持一致,无重复代码,无需额外注释。 3. 代码性能 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 性能良好,资源使用合理。setContentsMargins 是 O(1) 操作,仅设置布局边距属性,不涉及任何计算或资源分配,对性能无影响。 4. 代码安全 🔒评价: 优秀 ✅ 通过
安全漏洞详情: 建议: 存在0个安全漏洞。本次修改仅设置布局边距,不涉及用户输入、文件操作、网络通信或内存管理,无安全风险。 💡 改进建议代码示例// 本次修改无需改进,代码已是最优实现
// reader/sidebar/CatalogWidget.cpp - initWidget()
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->setContentsMargins(0, 0, 0, 0); // 设置边距为0,滚动条贴齐右边缘本报告由 AI 代码审查工具自动生成 |
概述
修复 CatalogWidget 目录侧边栏垂直滚动条内缩 9px 的问题,使其与侧边栏其余 4 个可滚动组件(缩略图、书签、批注、搜索)统一为 0px 右边距,滚动条贴齐侧边栏右边缘。
问题
CatalogWidget的mainLayout(QVBoxLayout)未设置contentsMargins,使用 Qt 默认 9px 四边边距,导致CatalogTreeView的垂直滚动条距侧边栏右边缘内缩 9px,"floating inside an inset gutter"。其余 4 个侧边栏组件均显式设置了
setContentsMargins(0, *, 0, 0),唯独 CatalogWidget 遗漏。修改
仅 1 行,在
reader/sidebar/CatalogWidget.cpp:51添加:设计规范依据
依据 DTK/UOS Design 规范
layout-density.md:hard-fails.md亦将 "vertical scrollbar still floats inside an inset gutter" 列为阻断性缺陷。验证
关联
PMS: BUG-375255
Summary by Sourcery
Bug Fixes: