Repository navigation
chore: replace Qt keywords with macros (QT_NO_KEYWORDS) - #1788
18202781743 wants to merge 2 commits into
Conversation
|
Skipping CI for Draft Pull Request. |
Reviewer's GuideThe PR enables QT_NO_KEYWORDS and systematically migrates Qt keyword syntax to Q_EMIT/Q_SIGNALS/Q_SLOTS, while normalizing SPDX years; however, the diff also deletes notifyaccessor.cpp and contains extensive accidental line-collapsing changes that should be carefully reviewed or reverted before merging. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
8a3bf79 to
e1486c9
Compare
|
Sorry @18202781743, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 2 days and 21 hours by commenting |
d2b6606 to
ad2cd0f
Compare
Replace emit/signals:/slots: with Q_EMIT/Q_SIGNALS:/Q_SLOTS: to avoid naming conflicts with pure C++ or third-party libraries. Add QT_NO_KEYWORDS compile definition after project() in CMakeLists.txt. 将 emit/signals:/slots: 替换为 Q_EMIT/Q_SIGNALS:/Q_SLOTS:, 避免纯 C++ 或第三方库引入时的命名冲突。在 CMakeLists.txt 中 添加 QT_NO_KEYWORDS 编译定义。 Log: 替换Qt关键字为宏形式并添加QT_NO_KEYWORDS编译定义 Influence: 无行为变更,仅关键字到宏的替换,解决第三方库命名冲突。
ad2cd0f to
eb109c5
Compare
deepin pr auto review🤖 AI 代码审查报告📊 总体评价
🔍 详细分析1. 语法逻辑 ✅评价: 语法正确,逻辑清晰 ✅ 通过 潜在问题: 建议: [] 2. 代码质量 ✅评价: 代码结构清晰,注释完整 ✅ 通过 潜在问题: 建议: [] 3. 代码性能 ✅评价: 性能良好,资源使用合理 ✅ 通过 潜在问题: 建议: [] 4. 代码安全 🔒评价: 存在0个安全漏洞 ✅ 通过
安全漏洞详情: 建议: [] 💡 改进建议代码示例本报告由 AI 代码审查工具自动生成 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 18202781743, BLumia 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 |
审查结论阻塞:不建议当前版本合并。 启用 代表位置:
建议全部改为 range-for 或 |
1. Replace all Qt foreach macro usage with Q_FOREACH across multiple files including appsdockedhelper.cpp, pluginmanagerextension.cpp, itemmodel.cpp, taskmanagersettings.cpp, and notifyentity.cpp 2. The foreach macro is a legacy Qt keyword that requires special compiler configuration (QT_NO_KEYWORDS) and can conflict with other libraries 3. Q_FOREACH is the canonical Qt macro that provides the same iteration functionality without requiring keyword disabling or causing conflicts 4. This change improves code portability and avoids potential compilation issues in environments where foreach is defined elsewhere or the QT_NO_KEYWORDS flag is enabled Influence: 1. Verify dock applet loads and manages docked items correctly 2. Test dock position changes (top/bottom/left/right) and confirm plugin surfaces receive position updates 3. Verify color theme changes propagate to all plugin surfaces 4. Test task manager docked items dump and migration from legacy Docked_Items configuration 5. Verify notification action string conversion and hint parsing functionality 6. Ensure plugin event messaging works correctly across all registered plugin surfaces 7. Check that no compilation warnings or errors appear related to foreach/Q_FOREACH fix: 将 Qt foreach 替换为 Q_FOREACH 1. 在 appsdockedhelper.cpp、pluginmanagerextension.cpp、itemmodel.cpp、 taskmanagersettings.cpp 和 notifyentity.cpp 等多个文件中将所有 Qt foreach 宏替换为 Q_FOREACH 2. foreach 是 Qt 的遗留关键字,需要特殊的编译器配置(QT_NO_KEYWORDS), 且可能与其他库产生冲突 3. Q_FOREACH 是 Qt 的标准宏,提供相同的迭代功能,同时不需要禁用关键字或 引起冲突 4. 此更改提高了代码可移植性,避免了在 foreach 被其他处定义或启用 QT_NO_KEYWORDS 标志的环境中出现潜在编译问题 Influence: 1. 验证任务栏小程序能正确加载和管理已停靠项目 2. 测试任务栏位置切换(上/下/左/右),确认插件表面能收到位置更新 3. 验证颜色主题变更能正确传播到所有插件表面 4. 测试任务管理器已停靠项目的导出和旧版 Docked_Items 配置的迁移 5. 验证通知操作字符串转换和提示解析功能 6. 确保插件事件消息在所有已注册插件表面间正常传递 7. 检查与 foreach/Q_FOREACH 相关的编译警告或错误
|
已补充提交 验证:本地构建仍失败在 |
Replace emit/signals:/slots: with Q_EMIT/Q_SIGNALS:/Q_SLOTS: to avoid naming conflicts with pure C++ or third-party libraries.
Also adds QT_NO_KEYWORDS compile definition in CMakeLists.txt and fixes SPDX copyright year ranges.
Related issue: DDE-499
Summary by Sourcery
Adopt Qt keyword macros across the project and enable QT_NO_KEYWORDS for safer C++ and third-party library compatibility.
Enhancements:
Build:
Tests:
Chores: