Skip to content

feat: add All Fashion mode - #1692

Draft
wjyrich wants to merge 4 commits into
linuxdeepin:masterfrom
wjyrich:fashionModeAllChange
Draft

feat: add All Fashion mode #1692
wjyrich wants to merge 4 commits into
linuxdeepin:masterfrom
wjyrich:fashionModeAllChange

Conversation

@wjyrich

@wjyrich wjyrich commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

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

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

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

feat: 为任务栏添加卡片类型插件支持

  1. 在 constants.h 中添加 Card 插件类型到 TrayPluginType 枚举
  2. 创建 CardLeftDockArea QML 组件,用于以轮播方式显示卡片类型插件
  3. 将卡片插件表面集成到 DockCompositor 的生命周期(添加/移除/查找)
  4. 实现左侧任务栏卡片区域,支持当前索引/导航
  5. 支持悬停效果、页面指示器和鼠标滚轮导航
  6. 当存在卡片插件时,用 CardLeftDockArea 替换传统的左侧插件区域

Log: 新增卡片类型插件显示区域,支持轮播导航

feat: 实现任务栏溢出功能和面板弹出窗口改进

  1. 添加 TaskOverflowController C++ 类和 TaskOverflowButton QML 组
    件,实现任务栏项目超出可用空间时的自适应溢出
  2. 为 PanelPopup 添加 closeOnInactive 属性,允许在右键菜单和拖拽操作期
    间保持弹出窗口打开
  3. 修复 DockPositioner 以正确处理跨窗口的弹出窗口定位
  4. 调整 dock 中心空间计算,考虑网格间距和边缘对齐边距
  5. 使隐藏的委托(移动到溢出弹出窗口)正确不贡献布局大小
  6. 修复溢出弹出窗口项目的拖放处理和模型重排序
  7. 修复 AppItemTitle 仅在启用时计算文本宽度
  8. 改进文本计算器,使用延迟计算和一致的状态更新
  9. 更新 MenuHelper,在打开之前设置活动菜单,防止竞态条件

Log: 新增任务栏溢出功能,当空间不足时将额外项目移到弹出窗口;修复 dock
弹出窗口定位和跨窗口的拖放交互

feat: 在任务栏中添加文件夹组支持

  1. 为 DockGlobalElementModel 添加组元素支持(启动器文件夹)
  2. 更新 AppGroup 使用新的文件夹 ID 格式("internal/folders/" 替代
    "internal/folder/")
  3. 在 AppsApplet 中实现组项目详情和启动功能
  4. 在任务栏项目中显示文件夹组的复合预览图标
  5. 添加带有网格布局的 FolderPopup QML 组件用于显示文件夹内容
  6. 实现从启动器拖放文件夹元素到任务栏的功能
  7. 更新任务栏设置以支持文件夹的停靠/取消停靠操作
  8. 改进组 ID 解析验证

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:

  • Introduce Fashion dock alignment mode with floating, compact taskbar layout and updated blur/background styling
  • Add support for folder groups in the taskbar, including composite icons and a grid-based folder popup for launching apps
  • Implement adaptive taskbar overflow handling with an overflow button and popup to show hidden application items
  • Add card-type tray plugin support with a dedicated left dock carousel area for card surfaces

Bug Fixes:

  • Improve dock and tooltip positioning for cross-window scenarios to ensure previews, menus, and popups align correctly with dock items
  • Ensure hidden delegates in overflow do not affect layout sizing or spacing
  • Prevent taskbar text width calculations from running when disabled and stabilize updates via deferred computation
  • Allow panel popups to stay open during interactions by making auto-close on inactive configurable and fixing menu race conditions

Enhancements:

  • Extend dock alignment settings and serialization to include the new Fashion mode, updating indicator style behavior accordingly
  • Refine taskbar space calculation to use an effective center space that respects edge spacing and Fashion mode margins
  • Adjust drag-and-drop behavior for dock items and launcher elements, including support for dragging folder groups and internal moves between taskbar and overflow popup
  • Update app grouping logic and identifiers to use validated "internal/folders" IDs, ensuring consistent group management and persistence

Build:

  • Link the taskmanager library against Qt Quick and register the new TaskOverflowController type for QML usage
  • Add build configuration for the new card-left dock package

wjyrich added 3 commits August 6, 2026 15:26
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. 测试多个固定应用程序时的性能

@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

@sourcery-ai

sourcery-ai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Reviewer's Guide

Implements 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 items

sequenceDiagram
    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
Loading

File-Level Changes

Change Details Files
Add dock "Fashion" alignment mode with floating, compact layout and updated blur/indicator behavior.
  • Extend ItemAlignment enum and string conversion to support FashionAlignment, and expose a fashionMode property from DockPanel.
  • Update the main dock window sizing, anchoring, margins, and exclusion zone to implement a centered floating bar with animated width and rounded corners when fashion mode is active.
  • Adjust grid layout, center-area spacing calculations, and left filler visibility so the center section and right part pack into a compact floating strip in fashion mode.
  • Switch StyledBehindWindowBlur and window radius to use fashion-mode radii and DTK palette defaults, and add a fashion-mode entry to the alignment context menu.
  • Hide the show-desktop applet and task manager’s remaining-space logic in fashion mode, and ensure animations fall back to size-based transitions when needed.
panels/dock/constants.h
panels/dock/docksettings.cpp
panels/dock/dockpanel.h
panels/dock/dockpanel.cpp
panels/dock/package/main.qml
panels/dock/showdesktop/package/showdesktop.qml
Implement taskbar overflow controller, overflow button UI, and make delegates/layout overflow-aware while improving popup positioning and drag-and-drop behavior.
  • Introduce TaskOverflowController C++ type (registered to QML) that computes visible item count and overflow popup model from available extent, spacing, and item size, with hysteresis and async sync.
  • Integrate TaskOverflowController and TaskOverflowButton QML into TaskManager, marking hidden delegates as zero-size so they don’t affect layout, and wiring an overflow button that shows hidden apps in a popup grid.
  • Extend task item delegates (AppItem.qml) to support dragSource/dragEnabled, improved drag-finish handling, and preserve panel popups when opened from overflow, and adjust tooltip/preview positioning via updated DockPositioner APIs.
  • Enhance TaskManager.qml drag-and-drop to support items originating from both taskbar and overflow popup, including index mapping, reordering, and scheduling overflow resync after moves.
  • Add cross-window-aware geometry handling in DockPositioner/DockPanelPositioner (effectiveBounding, attachedItemRectInDock) so tooltips/previews align correctly when dock and popup live in different windows.
  • Update OverflowContainer calculations to ignore zero-sized (hidden) items in implicit width/height.
  • Improve PanelPopup with a closeOnInactive flag so popups used during context menus/drag remain open until explicitly closed.
panels/dock/taskmanager/taskoverflowcontroller.h
panels/dock/taskmanager/taskoverflowcontroller.cpp
panels/dock/taskmanager/taskmanager.cpp
panels/dock/taskmanager/taskmanager.h
panels/dock/taskmanager/package/TaskManager.qml
panels/dock/taskmanager/package/TaskOverflowButton.qml
panels/dock/taskmanager/package/AppItem.qml
panels/dock/OverflowContainer.qml
frame/qml/PanelPopup.qml
panels/dock/dockpositioner.h
panels/dock/dockpositioner.cpp
panels/dock/taskmanager/CMakeLists.txt
panels/dock/MenuHelper.qml
panels/dock/taskmanager/package/AppItemTitle.qml
Add folder group items to the taskbar backed by launcher folder models, with composite icons and folder popup to launch contained apps.
  • Extend DockGlobalElementModel to accept a launcher group model/provider, treat internal/folders/* IDs as group elements, and expose group-specific roles (name, groupItems, docked state, menus).
  • Implement helper methods in DockGlobalElementModel to resolve folders into names and app lists (using both launcher and app models), keep docked folder entries in sync with group-model changes, and allow docking groups via requestDockGroup.
  • Teach TaskManager to recognize canonical launcher folder IDs, dock/undock them via dockedElements, launch apps from groups, and handle folder IDs when saving dock order.
  • Update AppsApplet to expose groupModel and new invokables for groupItemDetails and launchApplication, used by the dock to resolve folder content and start apps.
  • Adjust AppGroup/AppGroupManager to use the new internal/folders/ID scheme, robustly parse/assign folder IDs, and ensure the top-level folder definition is present.
  • Extend AppItem QML to detect group items, render a composite preview icon grid, open a new FolderPopup at the icon position on activation, and delegate group app launch requests back to TaskManager.
  • Introduce FolderPopup.qml, a grid-based popup showing folder contents with scroll, hover/press styles, and item activation wired to TaskManager.launchGroupApplication.
  • Update TaskManager models/roles and globals (GroupItemsRole/MODEL_GROUPITEMS) so QML delegates receive groupItems data.
panels/dock/taskmanager/dockglobalelementmodel.h
panels/dock/taskmanager/dockglobalelementmodel.cpp
panels/dock/taskmanager/taskmanager.h
panels/dock/taskmanager/taskmanager.cpp
panels/dock/taskmanager/globals.h
applets/dde-apps/appsapplet.h
applets/dde-apps/appsapplet.cpp
applets/dde-apps/appgroup.h
applets/dde-apps/appgroup.cpp
applets/dde-apps/appgroupmanager.cpp
panels/dock/taskmanager/dockgroupmodel.cpp
panels/dock/taskmanager/package/AppItem.qml
panels/dock/taskmanager/package/FolderPopup.qml
panels/dock/taskmanager/taskmanagersettings.cpp
Introduce card-style tray plugin type and a left card dock area that carousels through card surfaces in fashion mode.
  • Extend TrayPluginType enum with Card and make DockCompositor track cardPluginSurfaces separately alongside tray/quick/fixed surfaces.
  • Add CardLeftDockArea QML applet that, in fashion mode, replaces the traditional left dock area with a fixed-width, rounded container showing card surfaces in a vertical SwipeView.
  • Implement hover background, swipe and wheel navigation, and a rotated PageIndicator reflecting the number of card plugin pages.
  • Ensure card surfaces receive updated geometry and global positions via a ShellSurfaceItemProxy wrapper and timed sync when the layout or current page changes.
panels/dock/constants.h
panels/dock/DockCompositor.qml
panels/dock/cardleft/package/CardLeftDockArea.qml
panels/dock/cardleft/CMakeLists.txt
Refine text width calculation for window-split layout and guard text measurement when titles are disabled.
  • Change TextCalculator to debounce recalculations via a single-shot QTimer, reset widths when no space or items, and emit optimal width and total width signals only when values actually change.
  • Disable TextCalculator in fashion mode and when not in horizontal top/bottom positions, and ensure AppItemTitle passes empty text when disabled so it doesn’t affect layout measurements.
panels/dock/taskmanager/textcalculator.h
panels/dock/taskmanager/textcalculator.cpp
panels/dock/taskmanager/package/TaskManager.qml
panels/dock/taskmanager/package/AppItemTitle.qml
Miscellaneous behavior and robustness fixes around docked elements, drag/undock, and IDs.
  • Allow TaskManagerSettings::isDocked to handle both desktop/* and internal/folders/* elements and adjust comments accordingly.
  • Update taskbar DND to support launcher folder IDs, centralize dockItemId conversion, and only auto-dock on valid targets, correctly handling internal vs taskbar/overflow drag sources and returning appropriate drop actions.
  • Ensure MenuHelper sets activeMenu before opening to avoid races, and tweak copyright headers and minor logic around app trash tooltip calculation and top-level folder creation.
  • Wire fashionMode change notifications from DockPanel when position or itemAlignment changes so QML can reactively update mode-specific behavior.
panels/dock/taskmanager/taskmanagersettings.cpp
panels/dock/taskmanager/package/TaskManager.qml
panels/dock/MenuHelper.qml
panels/dock/dockpanel.cpp
applets/dde-apps/appgroupmanager.cpp
applets/dde-apps/appgroup.cpp
applets/dde-apps/appsapplet.cpp

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

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
wjyrich force-pushed the fashionModeAllChange branch from ccccc0b to 036416a Compare August 6, 2026 08:41
@wjyrich
wjyrich marked this pull request as draft August 6, 2026 08:42
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