3.3 KiB
3.3 KiB
调整刀序前再检查排序种子
Goal
当程序带钻带文件路径启动时,启动菜单必须优先出现;排序种子文件的检查和提示只能发生在用户选择“调整刀序”之后,避免用户选择导出孔数、清空参数、生成 PP 钻带等启动菜单动作前被排序提示打断。
Requirements
- 带启动参数且参数为钻带文件时,先显示启动菜单,不在菜单出现前弹出排序种子提示。
- 用户点击启动菜单的“调整刀序”后,加载主窗口和钻带文件时再按现有规则检查同目录的
<文件名>-sort.txt和General_sort.txt。 - 用户选择启动菜单里的非调整刀序动作时,不触发排序种子检查和提示。
- 保持现有排序种子优先级、提示文案、排序应用逻辑不变。
- 不调整启动菜单布局、钻带解析规则、PP 钻带生成规则、导出孔数逻辑。
Acceptance Criteria
- 启动参数为钻带文件且同目录存在排序种子时,启动菜单先显示。
- 在启动菜单点击“调整刀序”后,才出现排序种子检测提示。
- 在启动菜单点击“导出孔数报表”或“生成 PP 钻带”时,不出现排序种子检测提示。
- 普通打开文件、拖拽文件、主窗口内使用排序种子功能保持原行为。
Definition of Done
- 项目可成功构建。
- 不引入新依赖。
- 代码注释使用中文,关键行为有简短说明。
- 行为改动限定在启动路径和加载时排序种子检查开关。
Technical Approach
在 MainWindowViewModel 中新增加载时排序种子检查开关,默认开启以保留主窗口内普通加载和“调整刀序”路径的现有行为。LoadToolsFromDrillTape 执行排序种子检查前读取该开关。App 中用于启动菜单按钮可用性预检查、导出孔数、生成 PP 钻带等非调整刀序路径创建 ViewModel 时关闭该开关。
Decision (ADR-lite)
Context: 当前排序种子检查挂在 LoadToolsFromDrillTape 末尾,只要 OriginalFilePath 有值就会提示。App.CanGeneratePpDrillTape() 在启动菜单显示前为了判断按钮可见性提前加载钻带,并设置了 OriginalFilePath,导致排序种子提示先于启动菜单出现。导出孔数和生成 PP 钻带也会在用户选择非调整刀序动作后触发同样的加载副作用。
Decision: 保留现有加载流程,在 ViewModel 增加显式开关,让启动菜单预检查和非调整刀序启动动作关闭加载时自动排序检查;点击“调整刀序”后进入主窗口时不关闭开关。
Consequences: 改动面小,现有排序种子应用逻辑无需重写。后续如果还有新的无界面/非排序加载路径,也需要显式关闭该开关。
Out of Scope
- 不重构
MainWindowViewModel的整体职责。 - 不改变排序种子文件格式和匹配规则。
- 不新增自动化 UI 测试。
Technical Notes
App.xaml.cs:启动参数、启动菜单、菜单动作分发。MainWindow.xaml.cs:点击“调整刀序”后打开主窗口并加载初始文件。MainWindowViewModel.cs:LoadToolsFromDrillTape当前在解析完成后调用CheckAndApplySortFile。- 项目无测试框架,
CLAUDE.md明确说明不写单元测试。