Skip to content

fix: prevent itemSpacing override in setBackgroundType#671

Merged
18202781743 merged 1 commit intolinuxdeepin:masterfrom
18202781743:master
Jul 23, 2025
Merged

fix: prevent itemSpacing override in setBackgroundType#671
18202781743 merged 1 commit intolinuxdeepin:masterfrom
18202781743:master

Conversation

@18202781743
Copy link
Contributor

  1. Removed automatic itemSpacing adjustment in
    DListView::setBackgroundType
  2. Added itemSpacing() method in DStyledItemDelegate to dynamically
    calculate spacing based on background type
  3. Changed itemSpacing member to spacing with default value -1 to
    indicate custom spacing
  4. Updated all references to use the new itemSpacing() method

The changes prevent the itemSpacing value from being unintentionally
overwritten when setting backgroundType, while maintaining backward
compatibility with the default spacing values for different background
types. This gives more control to developers to set custom spacing
values that won't be overridden by background type changes.

fix: 修复设置背景类型时覆盖itemSpacing值的问题

  1. 移除了DListView::setBackgroundType中自动调整itemSpacing的逻辑
  2. 在DStyledItemDelegate中添加itemSpacing()方法根据背景类型动态计算间距
  3. 将itemSpacing成员改为spacing并设置默认值-1表示自定义间距
  4. 更新所有引用以使用新的itemSpacing()方法

这些修改防止了在设置backgroundType时意外覆盖itemSpacing值的问题,同时保
持了对不同背景类型默认间距值的向后兼容性。这为开发者提供了更多控制权,可
以设置不会被背景类型更改覆盖的自定义间距值。

1. Removed automatic itemSpacing adjustment in
DListView::setBackgroundType
2. Added itemSpacing() method in DStyledItemDelegate to dynamically
calculate spacing based on background type
3. Changed itemSpacing member to spacing with default value -1 to
indicate custom spacing
4. Updated all references to use the new itemSpacing() method

The changes prevent the itemSpacing value from being unintentionally
overwritten when setting backgroundType, while maintaining backward
compatibility with the default spacing values for different background
types. This gives more control to developers to set custom spacing
values that won't be overridden by background type changes.

fix: 修复设置背景类型时覆盖itemSpacing值的问题

1. 移除了DListView::setBackgroundType中自动调整itemSpacing的逻辑
2. 在DStyledItemDelegate中添加itemSpacing()方法根据背景类型动态计算间距
3. 将itemSpacing成员改为spacing并设置默认值-1表示自定义间距
4. 更新所有引用以使用新的itemSpacing()方法

这些修改防止了在设置backgroundType时意外覆盖itemSpacing值的问题,同时保
持了对不同背景类型默认间距值的向后兼容性。这为开发者提供了更多控制权,可
以设置不会被背景类型更改覆盖的自定义间距值。
@18202781743 18202781743 requested review from BLumia and mhduiy July 23, 2025 02:15
deepin-ci-robot added a commit to linuxdeepin/dtk6widget that referenced this pull request Jul 23, 2025
Synchronize source files from linuxdeepin/dtkwidget.

Source-pull-request: linuxdeepin/dtkwidget#671
@deepin-ci-robot
Copy link
Contributor

deepin pr auto review

代码审查意见:

  1. 代码重构

    • DStyledItemDelegate类中,itemSpacing变量被重命名为spacing,并在setBackgroundType方法中直接修改了spacing的值。这可能会导致setBackgroundType方法与setItemSpacing方法之间的逻辑不一致。建议保持变量名称的一致性,或者提供明确的接口来修改itemSpacing
  2. 逻辑改进

    • DStyledItemDelegate类的私有数据成员DStyledItemDelegatePrivate中,itemSpacing变量被初始化为-1,但在itemSpacing()方法中,如果spacing为负数,则根据backgroundType的值返回不同的间距。这种逻辑可能会导致在setBackgroundType方法中设置的间距值被覆盖。建议在setBackgroundType方法中直接设置spacing的值,而不是依赖itemSpacing()方法。
  3. 性能优化

    • sizeHint方法中,d->itemSpacing被调用两次,可以将其结果存储在一个局部变量中,以避免重复计算。
  4. 代码可读性

    • initStyleOption方法中,d->itemSpacing被调用两次,可以将其结果存储在一个局部变量中,以提高代码的可读性。
  5. 注释和文档

    • DStyledItemDelegate类中,itemSpacing变量和itemSpacing()方法的注释应该更新,以反映变量名称的变化和新的逻辑。

综上所述,建议对代码进行重构,以确保逻辑的一致性,并提高代码的可读性和性能。同时,更新注释和文档,以反映代码的变化。

@github-actions
Copy link
Contributor

  • 敏感词检查失败, 检测到1个文件存在敏感词
详情
{
    "src/widgets/dstyleditemdelegate.cpp": [
        {
            "line": "  \brief 设置项 item 的集合列表 \a list, 只显示有 text 的 DViewItemActionList 集合",
            "line_number": 1542,
            "rule": "C128",
            "reason": "政治敏感词 | b231f13999"
        }
    ]
}

@deepin-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: 18202781743, mhduiy, xionglinlin

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

@18202781743 18202781743 merged commit 3a4600c into linuxdeepin:master Jul 23, 2025
22 of 23 checks passed
18202781743 pushed a commit to linuxdeepin/dtk6widget that referenced this pull request Jul 23, 2025
Synchronize source files from linuxdeepin/dtkwidget.

Source-pull-request: linuxdeepin/dtkwidget#671
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.

4 participants