refactor: switch treeland IPC to Qt Remote Objects#96
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: zccrs 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 |
9c5c73a to
38f5a23
Compare
There was a problem hiding this comment.
Pull request overview
Refactors ddm’s Treeland IPC from a generated Wayland client protocol to a Qt Remote Objects (QtRO) replica, aligning the daemon-side connector with Qt’s IPC stack and removing the build-time Wayland-client codegen dependency.
对 ddm 与 Treeland 的 IPC 进行重构:从原先生成的 Wayland client 协议切换为 Qt Remote Objects(QtRO)replica,使 daemon 侧连接器改用 Qt 的 IPC 机制,并移除构建期的 Wayland-client 协议代码生成依赖。
Changes:
- Introduces a QtRO replica definition (
treelandddmremote.rep) and switchesTreelandConnectorto call into the generatedTreelandDDMRemoteReplica. - Removes Wayland client protocol code generation/linkage from CMake and adds Qt6 RemoteObjects dependency.
- Updates distro/CI dependencies to include Qt Remote Objects (Debian Build-Depends, Arch workflow).
变更点:
- 新增 QtRO replica 定义(
treelandddmremote.rep),并让TreelandConnector通过生成的TreelandDDMRemoteReplica发起调用。 - 从 CMake 中移除 Wayland client 协议生成/链接,并新增 Qt6 RemoteObjects 依赖。
- 更新发行版/CI 依赖(Debian Build-Depends、Arch workflow)以包含 Qt Remote Objects。
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
src/daemon/treelandddmremote.rep |
Adds Qt Remote Objects replica interface for Treeland control methods. |
src/daemon/TreelandConnector.h |
Updates connector interface/members for QtRO + local socket usage. |
src/daemon/TreelandConnector.cpp |
Replaces Wayland IPC calls with QtRO replica acquisition and invocation logic. |
src/daemon/CMakeLists.txt |
Hooks qt_add_repc_replicas() and links Qt6::RemoteObjects; removes Wayland-generated source. |
CMakeLists.txt |
Drops Wayland client/TreelandProtocols discovery; adds Qt6 RemoteObjects requirement. |
debian/control |
Adds qt6-remoteobjects-dev to Build-Depends. |
.github/workflows/ddm-archlinux-build.yml |
Installs Qt Remote Objects dependency for Arch CI build. |
Comments suppressed due to low confidence (1)
src/daemon/TreelandConnector.h:43
- Include guards need to be closed at the end of the header (
#endif).
建议:在文件末尾补上 #endif,与文件开头的 #ifndef/#define 成对。
};
}
38f5a23 to
d13b4bb
Compare
|
已按这轮 review 收口:
之前 Copilot 提到的同步 control-socket I/O、协议版本、 |
d13b4bb to
40ceee2
Compare
f308bc0 to
1ca093d
Compare
|
TAG Bot New tag: 0.3.5 |
63e12e6 to
94014e1
Compare
30206ea to
d346c06
Compare
deepin pr auto review代码审查报告总体概述这次代码更新主要涉及显示管理器(DDM)的重构,从Wayland协议直接通信转向使用Qt Remote Objects进行进程间通信。主要变化包括:
具体分析1. 构建系统改进优点:
建议:
2. 通信架构改进优点:
建议:
3. 代码质量改进优点:
建议:
4. 性能考虑优点:
建议:
5. 安全性改进优点:
建议:
具体问题与建议
总结这次重构总体上是积极的,提高了代码的可维护性和可扩展性。主要改进包括:
建议在后续开发中:
这些改进将有助于提高系统的稳定性和可靠性。 |
d346c06 to
bdba11d
Compare
Publish session list and remembered user/session state from DDMRemote. Serve DDMRemote directly on local:org.deepin.dde.ddm.qro. Log: 通过 QtRO 向 Treeland 暴露完整 greeter 状态 Influence: Treeland 不再需要链接 libddm 即可获取 greeter 所需数据。
bdba11d to
ad94775
Compare
|
TAG Bot New tag: 0.3.6 |
Summary
Testing