Skip to content

feat: add FashionAlignment mode for dock panel#1657

Open
wjyrich wants to merge 1 commit into
linuxdeepin:masterfrom
wjyrich:fashionMode
Open

feat: add FashionAlignment mode for dock panel#1657
wjyrich wants to merge 1 commit into
linuxdeepin:masterfrom
wjyrich:fashionMode

Conversation

@wjyrich

@wjyrich wjyrich commented Jul 2, 2026

Copy link
Copy Markdown
Contributor
  1. Implement new FashionAlignment enum value (2) for dock item alignment
  2. Create FashionDockController QML component to manage fashion dock layout and appearance
  3. Add "Fashion Mode" menu item in dock context menu for easy mode switching
  4. Integrate fashion dock logic into main dock window: adjust width, anchors, margins, window radius, and blur effects
  5. Update showdesktop and taskmanager to be hidden or behave differently in fashion mode
  6. Ensure width animation when entering/exiting fashion mode
  7. Add appropriate DTK blur and styling for fashion dock appearance
  8. Update string conversion functions to support the new "fashion" alignment
  9. Hide left part and adjust spacing in fashion mode for a compact, floating design

Log: Added new dock fashion alignment mode with floating UI and compact layout

Influence:

  1. Test switching between Center, Left, and Fashion alignment modes via context menu
  2. Verify fashion mode only enables on Bottom/Top positions and not in column layout
  3. Check that showdesktop widget is hidden in fashion mode
  4. Verify dock width and margin adjustments in fashion mode (floating margin, vertical padding)
  5. Test taskmanager behavior in fashion mode (no remaining space calculation, no text calculator)
  6. Verify blur and color blending correctness in fashion mode for both light and dark themes
  7. Test width animation when enabling/disabling fashion mode
  8. Verify dock exclusion zone includes floating margin in fashion mode
  9. Test on different screen sizes and DPI settings
  10. Validate that left part and its items are hidden in fashion mode

feat: 新增时尚模式对齐方式

  1. 实现新的时尚模式对齐枚举值 (2),用于 dock 面板的项目对齐
  2. 创建 FashionDockController QML 组件,管理时尚模式布局和外观
  3. 在 dock 右键菜单中添加 "时尚模式" 菜单项,便于模式切换
  4. 将时尚模式逻辑集成到主 dock 窗口中:调整宽度、锚点、边距、窗口圆角和 模糊效果
  5. 更新显示桌面和任务管理器,使其在时尚模式下隐藏或改变行为
  6. 在进入/退出时尚模式时启用宽度动画
  7. 为时尚模式外观添加合适的 DTK 模糊和样式
  8. 更新字符串转换函数以支持新的 "fashion" 对齐方式
  9. 在时尚模式下隐藏左侧部分并调整间距,实现紧凑浮动设计

Log: 新增时尚模式对齐方式,浮动UI和紧凑布局

Influence:

  1. 通过右键菜单测试中心、左对齐和时尚模式之间的切换
  2. 验证时尚模式仅在底部/顶部位置且非列布局时启用
  3. 检查显示桌面小部件在时尚模式下是否隐藏
  4. 验证时尚模式下的 dock 宽度和边距调整(浮动边距、垂直内边距)
  5. 测试任务管理器在时尚模式下的行为(无剩余空间计算、无文本计算器)
  6. 验证时尚模式下浅色和深色主题的模糊和颜色混合正确性
  7. 测试启用/禁用时尚模式时的宽度动画
  8. 验证时尚模式下 dock 排除区域包含浮动边距
  9. 在不同屏幕尺寸和 DPI 设置下进行测试
  10. 验证左侧部分及其项目在时尚模式下是否隐藏

@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 @wjyrich, 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: wjyrich

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

1. Implement new FashionAlignment enum value (2) for dock item alignment
2. Create FashionDockController QML component to manage fashion dock
layout and appearance
3. Add "Fashion Mode" menu item in dock context menu for easy mode
switching
4. Integrate fashion dock logic into main dock window: adjust width,
anchors, margins, window radius, and blur effects
5. Update showdesktop and taskmanager to be hidden or behave differently
in fashion mode
6. Ensure width animation when entering/exiting fashion mode
7. Add appropriate DTK blur and styling for fashion dock appearance
8. Update string conversion functions to support the new "fashion"
alignment
9. Hide left part and adjust spacing in fashion mode for a compact,
floating design

Log: Added new dock fashion alignment mode with floating UI and compact
layout

Influence:
1. Test switching between Center, Left, and Fashion alignment modes via
context menu
2. Verify fashion mode only enables on Bottom/Top positions and not in
column layout
3. Check that showdesktop widget is hidden in fashion mode
4. Verify dock width and margin adjustments in fashion mode (floating
margin, vertical padding)
5. Test taskmanager behavior in fashion mode (no remaining space
calculation, no text calculator)
6. Verify blur and color blending correctness in fashion mode for both
light and dark themes
7. Test width animation when enabling/disabling fashion mode
8. Verify dock exclusion zone includes floating margin in fashion mode
9. Test on different screen sizes and DPI settings
10. Validate that left part and its items are hidden in fashion mode

feat: 新增时尚模式对齐方式

1. 实现新的时尚模式对齐枚举值 (2),用于 dock 面板的项目对齐
2. 创建 FashionDockController QML 组件,管理时尚模式布局和外观
3. 在 dock 右键菜单中添加 "时尚模式" 菜单项,便于模式切换
4. 将时尚模式逻辑集成到主 dock 窗口中:调整宽度、锚点、边距、窗口圆角和
模糊效果
5. 更新显示桌面和任务管理器,使其在时尚模式下隐藏或改变行为
6. 在进入/退出时尚模式时启用宽度动画
7. 为时尚模式外观添加合适的 DTK 模糊和样式
8. 更新字符串转换函数以支持新的 "fashion" 对齐方式
9. 在时尚模式下隐藏左侧部分并调整间距,实现紧凑浮动设计

Log: 新增时尚模式对齐方式,浮动UI和紧凑布局

Influence:
1. 通过右键菜单测试中心、左对齐和时尚模式之间的切换
2. 验证时尚模式仅在底部/顶部位置且非列布局时启用
3. 检查显示桌面小部件在时尚模式下是否隐藏
4. 验证时尚模式下的 dock 宽度和边距调整(浮动边距、垂直内边距)
5. 测试任务管理器在时尚模式下的行为(无剩余空间计算、无文本计算器)
6. 验证时尚模式下浅色和深色主题的模糊和颜色混合正确性
7. 测试启用/禁用时尚模式时的宽度动画
8. 验证时尚模式下 dock 排除区域包含浮动边距
9. 在不同屏幕尺寸和 DPI 设置下进行测试
10. 验证左侧部分及其项目在时尚模式下是否隐藏
@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

★ 总体评分:100分

■ 【总体评价】

代码实现了Dock面板的时尚模式功能,逻辑严密且无安全风险
逻辑完全正确、代码质量优秀、性能高效且无安全漏洞,符合满分标准

■ 【详细分析】

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

新增的FashionDockController.qml中属性计算逻辑严密,main.qml中对时尚模式的分支处理覆盖了宽度、锚点、边距、圆角等所有相关状态,showdesktop和TaskManager中的隐藏与尺寸调整逻辑自洽,未发现空引用或类型错误
建议:保持现有的防御性编程习惯

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

代码结构清晰,将时尚模式的核心逻辑抽离为独立的FashionDockController组件,降低了main.qml的复杂度,命名规范且注释恰当,符合QML最佳实践
建议:可考虑为FashionDockController中的关键计算属性补充简要注释

  • 3.代码性能(高效)✓

大量使用readonly property进行响应式计算,避免不必要的重绘;在拖拽状态下禁用宽度动画,有效防止了动画与用户交互冲突带来的性能损耗
建议:无需改进

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

漏洞对比统计:新增漏洞 0 个,减少漏洞 0 个,持平 0 个
本次变更为纯前端UI交互逻辑,不涉及文件操作、网络请求、命令执行或敏感数据处理,无攻击面

  • 建议:继续保持前端组件与底层业务逻辑的安全隔离

■ 【改进建议代码示例】

// panels/dock/package/FashionDockController.qml
    function effectiveShellWidth() {
        if (!enabled || screenWidth <= 0) {
            return 0
        }

        return Math.min(contentWidth, screenWidth)
    }

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.

2 participants