Repository navigation
Conversation
1. Root cause: FocusBoxBorder hardcoded paddings as borderWidth + DS.Style.control.focusBorderPaddings (2+1=3px), making the focus indicator too small to see on Slider's 20x24px handle 2. Fix: add overridable focusBorderPaddings property to FocusBoxBorder (default unchanged), add DS.Style.slider.focusBorderPaddings: 5 in FlowStyle, and pass it from Slider.qml so Slider gets 7px total padding instead of 3px 3. Impact: only Slider focus border becomes more visible; Switch, ComboBox, EditPanel, DelayButton, ButtonPanel keep default 3px Log: Slider focus indicator is now visually visible on Tab focus Influence: 1. Test Slider Tab focus visibility in control center volume/brightness 2. Verify Switch/ComboBox focus border appearance unchanged 3. Verify EditPanel/DelayButton focus border appearance unchanged fix(slider): 增大 Slider 焦点边框间距以提升可见性 1. 根因:FocusBoxBorder 硬编码 paddings 为 borderWidth + DS.Style.control.focusBorderPaddings(2+1=3px),在 Slider 的 20x24px 手柄上焦点指示器过小不可见 2. 方案:在 FocusBoxBorder 新增可覆盖的 focusBorderPaddings 属性 (默认值不变),在 FlowStyle 新增 DS.Style.slider.focusBorderPaddings: 5,并在 Slider.qml 中传入,使 Slider 总间距从 3px 增至 7px 3. 影响:仅 Slider 焦点边框变得更醒目;Switch、ComboBox、EditPanel、 DelayButton、ButtonPanel 保持默认 3px 不变 Log: Slider Tab 聚焦时焦点指示器现在清晰可见 Influence: 1. 测试控制中心音量/亮度滑块 Tab 聚焦时的焦点指示器可见性 2. 验证 Switch/ComboBox 焦点边框外观无变化 3. 验证 EditPanel/DelayButton 焦点边框外观无变化 PMS: BUG-341415
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: mhduiy 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 GuideMakes Slider keyboard-focus indicators more visible by allowing FocusBoxBorder padding to be overridden and configuring Slider with 5px component padding, while retaining the existing 1px default for all other controls. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
deepin pr auto review🤖 AI 代码审查报告📊 总体评价
🔍 详细分析1. 语法逻辑 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 语法正确,逻辑清晰,无需修改 2. 代码质量 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 建议在 FlowStyle.qml 中新增的 focusBorderPaddings 属性旁添加简短注释,说明为何 Slider 需要不同于默认 control 的焦点边框间距值 3. 代码性能 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 性能良好,资源使用合理,无需修改 4. 代码安全 🔒评价: 优秀 ✅ 通过
安全漏洞详情: 建议: 安全合规,无需修改 💡 改进建议代码示例// 本次修改无需修复代码示例,代码实现正确
// FlowStyle.qml - 新增 slider 专属焦点边框间距
property int focusBorderPaddings: 5
// FocusBoxBorder.qml - 使 focusBorderPaddings 可配置,默认值保持向后兼容
property real focusBorderPaddings: DS.Style.control.focusBorderPaddings
readonly property real paddings: borderWidth + control.focusBorderPaddings
// Slider.qml - 传入 slider 专属间距值
FocusBoxBorder {
focusBorderPaddings: DS.Style.slider.focusBorderPaddings
}本报告由 AI 代码审查工具自动生成 |
| property color color: palette.highlight | ||
| property real borderWidth: DS.Style.control.focusBorderWidth | ||
| property real radius: DS.Style.control.radius | ||
| property real focusBorderPaddings: DS.Style.control.focusBorderPaddings |
There was a problem hiding this comment.
这个变量名称改一下吧,控件已经是FocusBox的,不需要加这种前缀,
|
TAG Bot New tag: 6.7.51 |
Root Cause Analysis
The DTK QML
Slidercomponent usesFocusBoxBorderfor its focus indicator, butFocusBoxBorderhardcodedpaddingsasborderWidth + DS.Style.control.focusBorderPaddings(2+1=3px). On the Slider's 20×24px handle, this 3px margin produces a 26×30px border that is visually too small to see. In contrast, the Dock quick panel uses a custom C++QSliderwith a ~37px circular focus ring, making the visual difference obvious. Key evidence:FlowStyle.qmlsetscontrol.focusBorderPaddings: 1, andFocusBoxBorder.qmlhadpaddingsas areadonly propertythat could not be overridden per component.Fix
Added an overridable
focusBorderPaddingsproperty toFocusBoxBorder(defaulting toDS.Style.control.focusBorderPaddings, so all existing components keep the same behavior). AddedDS.Style.slider.focusBorderPaddings: 5inFlowStyle.qmlunder thesliderQtObject. Passed this value fromSlider.qml'sFocusBoxBorderinstantiation, giving Slider a total padding of 7px (2+5) instead of 3px.Change Safety Assessment
Code Safety
FocusBoxBorderwas introduced in commit4bd74837(PMS BUG-303539) withfocusBorderPaddings: 1hardcoded; this change does not revert that fix — the default value remains 1 for all non-Slider components.FocusBoxBorder(Slider, Switch, ComboBox, EditPanel, DelayButton, ButtonPanel) are unaffected except Slider, which intentionally gets a larger padding.Business Impact Scope
Verification Suggestion
Test Slider Tab focus visibility in dde-control-center (volume/brightness). Verify Switch, ComboBox, and EditPanel focus border appearance is unchanged.
根因分析
DTK QML
Slider组件使用FocusBoxBorder提供焦点指示器,但FocusBoxBorder将paddings硬编码为borderWidth + DS.Style.control.focusBorderPaddings(2+1=3px)。在 Slider 的 20×24px 手柄上,3px 边距仅产生 26×30px 的边框,视觉上过小不可见。而 Dock 快捷面板使用自定义 C++QSlider绘制约 37px 的圆形焦点环,视觉差异明显。关键证据:FlowStyle.qml中control.focusBorderPaddings: 1,FocusBoxBorder.qml中paddings为readonly property无法按组件覆盖。修复方案
在
FocusBoxBorder新增可覆盖的focusBorderPaddings属性(默认值为DS.Style.control.focusBorderPaddings,所有现有组件行为不变)。在FlowStyle.qml的sliderQtObject 下新增focusBorderPaddings: 5。在Slider.qml的FocusBoxBorder实例中传入该值,使 Slider 总间距从 3px 增至 7px(2+5)。改动安全评估
代码安全评估
FocusBoxBorder在 commit4bd74837(PMS BUG-303539)中引入,设定focusBorderPaddings: 1;本次改动不撤销该修复——非 Slider 组件的默认值仍为 1。FocusBoxBorder的 6 个组件(Slider、Switch、ComboBox、EditPanel、DelayButton、ButtonPanel)中,仅 Slider 受影响,其余行为不变。业务影响范围
验证建议
在控制中心测试 Slider(音量/亮度)Tab 聚焦时的焦点指示器可见性。验证 Switch、ComboBox、EditPanel 焦点边框外观无变化。
PMS: BUG-341415
Summary by Sourcery
Increase Slider focus border padding so keyboard focus is more visible without changing other controls.
Bug Fixes:
Enhancements: