Skip to content

[1292] 采用 QML 对话框重构增加宏包弹窗并增加存在性校验 - #4534

Merged
da-liii merged 3 commits into
mainfrom
da/1292/add_package
Sep 9, 2026
Merged

[1292] 采用 QML 对话框重构增加宏包弹窗并增加存在性校验#4534
da-liii merged 3 commits into
mainfrom
da/1292/add_package

Conversation

@da-liii

@da-liii da-liii commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

What

  1. 使用专用 QML 弹窗(DialogShell + InputField + DialogButtons + run_qml_dialog)重构「增加宏包 → 其他宏包」弹窗,替换旧的 (interactive add-style-package) C++ 遗留对话框。
  2. Scheme 侧新增 (open-add-package-dialog) 统一入口,解构返回值并调用 (add-style-package pack)
  3. 校验输入的宏包是否存在:不存在时弹 QML 确认弹窗提示并不予添加。
  4. 替换 document-menu.scm 中焦点菜单、焦点图标栏及文档菜单三处调用点。
  5. 简化清理:启用已有 kv_map_to_tree 消除四处 QVariantMap→tree 拷贝循环,去除冗余 with 绑定与无消费者的 isComposing 属性。

Why

  • 原有 (interactive add-style-package) 依赖 C++ 遗留的 qt_inputs_list_widget_rep 对话框,风格陈旧且无法适配现代 UI 主题。
  • 与其他已迁移至 QML 的模态弹窗(搜索最近打开的文档、打印到文件、页面设置等)保持一致的交互与视觉体验。

How

  • AddPackage.qml 基于 DialogShellInputField 构建,提供宏包名称输入、回车提交及 Esc 取消。
  • C++ 层 cpp_add_package_dialog 通过 run_qml_dialog 启动模态对话框,注入已翻译文案,并提供 MOGAN_TEST_ADD_PACKAGE 测试钩子。
  • Scheme 侧 open-add-package-dialog 验证包名非空后调 package-exists? 检测存在性;存在则 add-style-package,不存在则 cpp-confirm-question 弹窗告知。

测试

  • xmake b qml_load_test && xmake r qml_load_test:22/22 通过(含新增 test_add_package_loads
  • xmake b stem && xmake r 1292:11/11 checks 通过

任务文档:devel/1292.md

🤖 Generated with Claude Code

@PinkMagicFly PinkMagicFly left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@da-liii
da-liii merged commit be191d8 into main Sep 9, 2026
6 checks passed
@da-liii
da-liii deleted the da/1292/add_package branch September 9, 2026 09:58
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