refactor: migrate to shared dde-shell app model - #791
Conversation
|
[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 GuideRefactors the launcher’s AppsModel and integration layer to consume the shared dde-shell application model (dde-apps applet) instead of the local AppMgr/AppItem stack, updates DesktopIntegration to route operations through the apps applet, and aligns QML/tests/proxies with the new role IDs, category handling, and sorting/signaling behavior. Sequence diagram for launching an app via shared dde-apps appletsequenceDiagram
actor User
participant LauncherUI
participant LauncherController
participant DesktopIntegration
participant XdgActivation as XdgActivation
participant AppsApplet
User->>LauncherUI: activate app item
LauncherUI->>LauncherController: requestLaunch(desktopId)
LauncherController->>DesktopIntegration: launchByDesktopId(desktopId)
DesktopIntegration->>XdgActivation: requestToken()
XdgActivation-->>DesktopIntegration: tokenReady(token)
DesktopIntegration->>AppsApplet: launchApp(desktopId, token)
AppsApplet-->>DesktopIntegration: bool launched
alt [launch failed]
DesktopIntegration-->>LauncherController: [log failure]
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
| static AppsModel instance; | ||
| return instance; |
603ad16 to
927047b
Compare
|
/test github-pr-review-ci |
1 similar comment
|
/test github-pr-review-ci |
| { | ||
| DAppletBridge bridge(QStringLiteral("org.deepin.ds.dde-apps")); | ||
| auto applet = bridge.applet(); | ||
| if (!applet) { |
There was a problem hiding this comment.
org.deepin.ds.dde-apps 这个 applet,与launchpad的applet加载顺序,能确定么,这里会不会拿不到啊,要不改到init里吧,
There was a problem hiding this comment.
能确定 ,dde-shell是先加载的根节点, launchpad 的节点在dock下面,而dde-apps是是根节点
There was a problem hiding this comment.
dde-apps也不是dock的节点,他们是平级的,而且dde-shell加载是一颗颗树加载的,没有进行广度优先加载呀,要是先加载的是dock,这会等到launchpad加载完后再去加载dde-apps的,
现在没问题可能是安装字典排序的吧,先加载的是d,dock的是o开头,
看之后dde-shell支持depends依赖吧,
1. Replace direct AppMgr/AppItem usage with shared dde-shell application model 2. Add LauncherItem::load() to bridge with org.deepin.ds.dde-apps applet 3. Refactor AppsModel to adapt source model roles instead of owning app data 4. Remove direct D-Bus interface generation for ApplicationManager1 5. Fix QML role references from AppItem to AppsModel namespace 6. Set apps applet as data source for DesktopIntegration operations 7. Update QML to use new AppsModel.ddeCategories for category names 8. Fix category sorting signal ordering to avoid duplicate layout changes Log: Unified application data source with dde-shell shared model Influence: 1. Verify launcher still displays all installed applications correctly 2. Test application launch through launcher and dock 3. Test app category browsing and filtering 4. Test sending/removing apps from desktop 5. Test autostart toggle functionality 6. Test disable scale functionality for legacy apps 7. Test search functionality with pinyin, jianpin, and Chinese 8. Test recently installed and frequently used sections 9. Verify icon loading and caching behavior refactor: 迁移到 dde-shell 共享应用模型 1. 用共享的 dde-shell 应用模型替换直接的 AppMgr/AppItem 使用 2. 添加 LauncherItem::load() 与 org.deepin.ds.dde-apps applet 桥接 3. 重构 AppsModel 适配源模型角色而非拥有应用数据 4. 移除 ApplicationManager1 的直接 D-Bus 接口生成 5. 修复 QML 中角色引用从 AppItem 到 AppsModel 命名空间的变更 6. 设置应用 qml 作为 DesktopIntegration 操作的数据源 7. 更新 QML 使用新的 AppsModel.ddeCategories 获取分类名称 8. 修复分类排序信号顺序避免重复的布局变更 Log: 应用数据源统一为 dde-shell 共享模型 Influence: 1. 验证启动器仍能正确显示所有已安装应用 2. 测试通过启动器和任务栏启动应用 3. 测试应用分类浏览和过滤功能 4. 测试发送/移除应用到桌面 5. 测试开机自启动开关功能 6. 测试旧应用的禁用缩放功能 7. 测试拼音、简拼和中文搜索功能 8. 测试最近安装和常用应用区域 9. 验证图标加载和缓存行为 PMS: TASK-393709
deepin pr auto review☀
|
Log: Unified application data source with dde-shell shared model
Influence:
refactor: 迁移到 dde-shell 共享应用模型
Log: 应用数据源统一为 dde-shell 共享模型
Influence:
PMS: TASK-393709
Summary by Sourcery
Adapt launcher to use the shared dde-shell application model and applet instead of its own AppMgr-based app model.
New Features:
Bug Fixes:
Enhancements: