Files
ElyOffice/tasks/reviews/C10.2-r1.md
T

3.8 KiB
Raw Blame History

FAIL

apps/ely-show/src/object.rs:189(关联 crates/ely-office/src/panel.rs:156):调色板的清除按钮沿用颜色命令,将 0 当成黑色发送。真实窗口中插入矩形,打开填充调色板并点击 No Fill,矩形变成实心黑色,内核返回 Paint::Color(0);No Outline 同样发送 object.line_color("0"),得到黑色轮廓。隔离探针 review_clear_palette_routes_to_a_real_clear 实测失败。修复方向:清除动作分别发送 object.fill_none、object.line_none,为清除按钮保留独立命令,并以实际面板回调验证清除后的样式;现有测试直接调用 object.fill_none,绕过了出错路径。

apps/ely-show/src/object.rs:63(关联 apps/ely-show/src/design.rs:87):数值提交记录长期保留,且选区身份仅使用外框,导致有效编辑被当作重复提交跳过。真实窗口中将矩形透明度设为 50,撤销回 0,再输入 50 并回车,控件仍显示 0,日志输出 transparency already holds 50。隔离探针 review_commit_cache_tracks_the_selected_object 还复现了两个重叠矩形外框同为 (9999, 5374, 7999, 4999) 时,先给一个设 50,再给另一个设 50,第二个仍为 0。修复方向:重复提交判定绑定文档、页面、所选对象及状态版本,已回显、撤销或选择变化时结束旧提交记录的有效期,同时保留回车加失焦只提交一次的回归。

apps/ely-show/src/object.rs:90:直线、箭头与连接线的选区跳过整个 look 属性组,描边颜色和线宽的编辑入口随之消失,违反 SHOW-04。真实窗口通过 Insert > Line 插入并选中直线,右栏和 AX 树仅有位置大小及排列控件;插入菜单与视图菜单也没有描边编辑入口。箭头的内核种类为 line,连接线为 connector,同样命中此分支。修复方向:按对象能力保留线类对象的描边属性,并验证这三种对象从实际控件修改颜色及线宽后的内核值。

apps/ely-show/src/list.rs:64:空的列表选择没有发送取消选中命令,随后读取又恢复原来的内核选择,违反 SHOW-06 的对象列表操作。真实窗口选中对象列表的一行,再按 Space,组件日志发出 [],对象和该行仍保持选中;隔离探针 review_object_list_can_deselect_its_last_row 调用 select_objects(&[]) 后,内核选择仍存在。修复方向:空选择显式清除当前文档的对象标记,确保列表、画布和内核选区一致,并覆盖最后一项取消选择的键盘路径。

apps/ely-show/src/object.rs:201:混合透明度和线宽经 unwrap_or(0) 显示为 0,且提交判定将这个伪造的当前值当作真实值,阻止用户统一设置为 0。真实窗口将一个矩形透明度设为 25,再在画布 Cmd+A 多选所有对象,透明度框显示 0;输入 0、回车并失焦后,重新单选该矩形仍显示 25,日志输出 transparency already holds 0。线宽在第 207 行采用相同处理。修复方向:保留混合状态,以混合占位显示,只有内核报告明确数值时才执行相等值去重,并验证混合选区统一归零的实际控件路径。

scripts/build-libreoffice.sh:142:0027 修改了 0023 的重叠补丁上下文,逐个补丁的反向检测使已完成构建的源码在再次构建时被错误识别为尚待应用 0023;再次应用 0023 返回 1,脚本在 set -e 下退出。隔离复制相关源码后,带 0027 时 git apply --check -R 0023-lok-impress-slide-design.patch 与正向检查均失败;移除 0027 后,0023 的反向检查通过。执行第 142 行的完整命令同样返回 1。修复方向:将重叠的 Impress 补丁作为有序补丁栈从顶部检测,再应用缺失部分,并覆盖完整补丁集已应用后的重复构建检查。