feat: add All Fashion mode - #1692
Draft
wjyrich wants to merge 4 commits into
Draft
Conversation
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. 验证左侧部分及其项目在时尚模式下是否隐藏
1. Add Card plugin type to TrayPluginType enum in constants.h 2. Create CardLeftDockArea QML component for displaying card-type plugins in a carousel 3. Integrate card plugin surfaces into DockCompositor lifecycle (add/ remove/find) 4. Implement card area with left-side dock placement, using current/ index navigation 5. Support hover effects, page indicators, and wheel navigation for card area 6. Replace legacy left plugin area with CardLeftDockArea when card plugins exist Log: Added card-type plugin display area with carousel navigation in dock Influence: 1. Test card plugin registration and display in dock left area 2. Verify card plugin area visibility only when card plugins exist 3. Test mouse wheel navigation through card plugin pages 4. Verify hover effects and page indicator behavior 5. Test card plugin surface geometry updates on resize 6. Verify compatibility with existing tray/quick/fixed plugin types 7. Test card area behavior in both horizontal and vertical dock modes 8. Verify area width adapts to dock size and card content feat: 为任务栏添加卡片类型插件支持 1. 在 constants.h 中添加 Card 插件类型到 TrayPluginType 枚举 2. 创建 CardLeftDockArea QML 组件,用于以轮播方式显示卡片类型插件 3. 将卡片插件表面集成到 DockCompositor 的生命周期(添加/移除/查找) 4. 实现左侧任务栏卡片区域,支持当前索引/导航 5. 支持悬停效果、页面指示器和鼠标滚轮导航 6. 当存在卡片插件时,用 CardLeftDockArea 替换传统的左侧插件区域 Log: 新增卡片类型插件显示区域,支持轮播导航 Influence: 1. 测试卡片插件的注册和在任务栏左侧区域的显示 2. 验证卡片插件区域仅在存在卡片插件时可见 3. 测试通过鼠标滚轮在卡片插件页面间导航 4. 验证悬停效果和页面指示器的行为 5. 测试卡片插件表面在窗口大小调整时的几何更新 6. 验证与现有托盘/快捷/固定插件类型的兼容性 7. 测试卡片区域在任务栏水平和垂直模式下的表现 8. 验证区域宽度根据任务栏尺寸和卡片内容自适应 PMS: TASK-392671
1. Added `TaskOverflowController` C++ class and QML `TaskOverflowButton` for adaptive overflow when taskbar items exceed available space 2. Added `closeOnInactive` property to PanelPopup to allow popups to stay open during context menus and drag operations 3. Fixed `DockPositioner` to handle cross-window popup positioning correctly 4. Adjusted dock center space calculation to account for grid spacing and edge alignment margins 5. Made hidden delegates (moved to overflow popup) properly not contribute to layout size 6. Fixed drag-and-drop handling for overflow popup items and model reordering 7. Fixed `AppItemTitle` to only calculate text width when enabled 8. Improved text calculator to use deferred calculation and consistent state updates 9. Updated `MenuHelper` to set active menu before opening to prevent race conditions Log: Added task overflow feature that moves extra dock items into a popup when space is insufficient; fixed dock popup positioning and drag- and-drop interactions across windows Influence: 1. Test dock taskbar overflow behavior by adding many applications and resizing dock - verify overflow button appears and popup functions correctly 2. Test overflow popup item drag-and-drop: move items in/out of overflow popup 3. Test context menus on app items with overflow active - verify popup stays open 4. Test dock center alignment spacing and appearance 5. Test dock panel popup positioning with cross-window (X11) scenarios 6. Test drag-and-drop from launcher to dock with overflow active 7. Test left/top/right dock positions with overflow feature 8. Test performance with many docked applications fix: 实现任务栏溢出功能和面板弹出窗口改进 1. 添加 `TaskOverflowController` C++ 类和 `TaskOverflowButton` QML 组 件,实现任务栏项目超出可用空间时的自适应溢出 2. 为 PanelPopup 添加 `closeOnInactive` 属性,允许在右键菜单和拖拽操作期 间保持弹出窗口打开 3. 修复 DockPositioner 以正确处理跨窗口的弹出窗口定位 4. 调整 dock 中心空间计算,考虑网格间距和边缘对齐边距 5. 使隐藏的委托(移动到溢出弹出窗口)正确不贡献布局大小 6. 修复溢出弹出窗口项目的拖放处理和模型重排序 7. 修复 AppItemTitle 仅在启用时计算文本宽度 8. 改进文本计算器,使用延迟计算和一致的状态更新 9. 更新 MenuHelper,在打开之前设置活动菜单,防止竞态条件 Log: 新增任务栏溢出功能,当空间不足时将额外项目移到弹出窗口;修复 dock 弹出窗口定位和跨窗口的拖放交互 Influence: 1. 测试任务栏溢出行为:添加多个应用并调整dock大小,验证溢出按钮出现且弹 出窗口功能正常 2. 测试溢出弹出窗口项目的拖放:移入/移出溢出弹出窗口 3. 测试在溢出活跃时对应用项目操作右键菜单,验证弹出窗口保持打开 4. 测试 dock 居中对齐间距和外观 5. 测试跨窗口(X11)场景下的 dock 弹出窗口定位 6. 测试从启动器拖放到具有溢出功能的 dock 7. 测试左/上/右 dock 位置与溢出功能 8. 测试多个固定应用程序时的性能
|
[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. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Reviewer's GuideImplements a new "Fashion" dock alignment mode with floating blurred UI, introduces taskbar overflow handling and card-style plugin area, and adds dock folder group items backed by launcher models, while refining drag-and-drop, popup positioning, and text layout behavior across the dock/task manager stack. Sequence diagram for taskbar overflow calculation and popup itemssequenceDiagram
participant TM as TaskManager_qml
participant TOC as TaskOverflowController
participant VM as visualModel
participant DM as dataModel
participant BTN as TaskOverflowButton
TM->>TOC: setEnabled()
TM->>TOC: setAvailableExtent()
TM->>TOC: setMinimumReached()
TM->>TOC: setFallbackItemExtent()
TM->>TOC: setSpacing()
TM->>TOC: setVisualModel(visualModel)
TM->>TOC: setDataModel(dataModel)
TM->>TOC: scheduleSync()
TOC->>TOC: sync()
TOC->>VM: modelIndex(visualIndex)
TOC->>DM: data(index, MODEL_GROUPITEMS)
TOC-->>TOC: setVisibleItemCount()
TOC-->>TOC: setPopupItems()
TOC-->>BTN: visibleItemCountChanged
TOC-->>BTN: popupItemsChanged
BTN->>BTN: update button position
BTN->>OverflowPopup: show popup with popupItems
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
1. Add DockGlobalElementModel support for group elements (launcher
folders)
2. Update AppGroup to use new folder ID format ("internal/folders/"
instead of "internal/folder/")
3. Implement group item details and launch functionality in AppsApplet
4. Display composite preview icons for folder groups in dock items
5. Add FolderPopup QML component with grid layout for folder contents
6. Implement drag-and-drop support for folder elements from launcher
7. Update the dock settings to handle folder dock/undock operations
8. Improve group ID parsing with input validation
Log: Added folder group display in dock taskbar with composite preview
and popup
Influence:
1. Test folder group display in dock: verify composite preview icons
show correctly
2. Test folder popup: verify grid layout, scrolling, and application
launch
3. Test drag-and-drop folders from launcher to dock
4. Test folder dock/undock via context menu
5. Test folder group ID format migration ("internal/folders/" prefix)
6. Test group ID parsing with invalid inputs (empty, non-numeric,
negative)
7. Test group display name and item details retrieval
8. Test folder persistence after dock restart
9. Test launcher folder operations with multiple items and special
characters
feat: 在任务栏中添加文件夹组支持
1. 为 DockGlobalElementModel 添加组元素支持(启动器文件夹)
2. 更新 AppGroup 使用新的文件夹 ID 格式("internal/folders/" 替代
"internal/folder/")
3. 在 AppsApplet 中实现组项目详情和启动功能
4. 在任务栏项目中显示文件夹组的复合预览图标
5. 添加带有网格布局的 FolderPopup QML 组件用于显示文件夹内容
6. 实现从启动器拖放文件夹元素到任务栏的功能
7. 更新任务栏设置以支持文件夹的停靠/取消停靠操作
8. 改进组 ID 解析验证
Log: 在任务栏中添加文件夹组显示,支持复合预览和弹出窗口
Influence:
1. 测试任务栏中的文件夹组显示:验证复合预览图标是否正确显示
2. 测试文件夹弹窗:验证网格布局、滚动和应用启动功能
3. 测试从启动器拖放文件夹到任务栏
4. 测试通过右键菜单停靠/取消停靠文件夹
5. 测试文件夹组 ID 格式迁移("internal/folders/" 前缀)
6. 测试组 ID 解析对无效输入的处理(空值、非数字、负数)
7. 测试组显示名称和项目详情的获取
8. 测试重启任务栏后文件夹状态的持久化
9. 测试启动器文件夹操作在包含多个项目和特殊字符时的表现
PMS: TASK-392671
wjyrich
force-pushed
the
fashionModeAllChange
branch
from
August 6, 2026 08:41
ccccc0b to
036416a
Compare
wjyrich
marked this pull request as draft
August 6, 2026 08:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: 新增时尚模式对齐方式
模糊效果
Log: 新增时尚模式对齐方式,浮动UI和紧凑布局
feat: 为任务栏添加卡片类型插件支持
Log: 新增卡片类型插件显示区域,支持轮播导航
feat: 实现任务栏溢出功能和面板弹出窗口改进
TaskOverflowControllerC++ 类和TaskOverflowButtonQML 组件,实现任务栏项目超出可用空间时的自适应溢出
closeOnInactive属性,允许在右键菜单和拖拽操作期间保持弹出窗口打开
Log: 新增任务栏溢出功能,当空间不足时将额外项目移到弹出窗口;修复 dock
弹出窗口定位和跨窗口的拖放交互
feat: 在任务栏中添加文件夹组支持
"internal/folder/")
Log: 在任务栏中添加文件夹组显示,支持复合预览和弹出窗口
PMS: TASK-392671
Summary by Sourcery
Add a new Fashion dock alignment mode with floating compact layout, introduce folder groups and card plugins to the taskbar, and implement a robust overflow system for taskbar items while refining positioning, drag-and-drop, and popup behavior across the dock.
New Features:
Bug Fixes:
Enhancements:
Build: