fix(confirm): make Cancel the default button of the confirmation dialog

The confirming button was the default, so one stray Enter deleted a card,
a column with all its cards or a tag, or discarded an edit. Enter now
answers with Cancel; the action needs an explicit click.
This commit is contained in:
doyaGu committed 2026-10-03 22:46:42 -04:00
1 parent 253847323a
commit 8714eec6ca
3 files changed
+6 -4

No files matched your search

+3 -2
View File
@@ -11,11 +11,12 @@
<StackPanel Margin="20" Spacing="16">
<TextBlock Text="{Binding Message}" TextWrapping="Wrap"/>
<!-- Every confirmation guards a destructive action, so Enter answers with the safe choice. -->
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Spacing="8">
<Button Content="{Binding ConfirmLabel}" Command="{Binding ConfirmCommand}"
Classes="Danger" MinWidth="90" IsDefault="True"/>
Classes="Danger" MinWidth="90"/>
<Button Content="{x:Static lang:Resources.Common_Cancel}" Command="{Binding CancelCommand}"
MinWidth="90" IsCancel="True"/>
MinWidth="90" IsDefault="True" IsCancel="True"/>
</StackPanel>
</StackPanel>
</dialogs:DialogWindow>
+1
View File
@@ -64,6 +64,7 @@
- [ ] 新建列、编辑列(标题 + 描述);空标题、重名(含仅大小写不同,如 `Done` / `done`)→ 模态内提示错误,模态不关、输入保留
- [ ] 删除列:确认框提示将删除 N 张卡片;确认后列与卡片一并删除
- [ ] 各类确认框(删除卡片 / 列 / 标签、丢弃编辑)弹出后直接按回车 → 等同取消,不执行删除或丢弃
- [ ] 新建卡片、点击卡片编辑:标题可空;内容多行;`#id` / 创建时间 / 修改时间只读显示(新建时不显示)
- [ ] 新建卡片什么都不填(标题、内容、标签均空)直接确认:不产生卡片;只加一个标签再确认:产生无标题卡片
- [ ] 编辑确认但内容未变 → 修改时间不变;改动后确认 → 修改时间刷新
+2 -2
View File
@@ -16,7 +16,7 @@
- 网络共享明确不支持;命令行参数边界;macOS 无参启动行为写入文档(§2.3、§4.1、附录)
- 补充:导出转义规则、卡片列表虚拟化、模态窗口 FlowDirection、`Resources` 类名使用规则、CI osx-x64 运行器(§5、§7、§8)
- 依赖:Avalonia 11.3.6 → 11.3.22,Semi.Avalonia 11.2.1.10 → 11.3.22(§7)
- 实现回补:搜索括号嵌套上限 64 层、单个表达式至多 256 个原子,空短语、短语紧贴文本、`key:` 后空白均为非法(§6.1、§6.2);导出表格单元格转义 `\`、默认文件名剔除非法字符(§5.8);初始化中途锁冲突进锁冲突页、数据库文件缺失不静默新建(§4.4);app.json 读不出 / 备份写不出 / 退出写盘失败均不阻断启动与退出(§4.3);主题下拉选中即预览、取消恢复(§5.6);空白新卡片确认不创建(§5.4);app.json 脏标记按"改动过"判定(改回原值仍写盘),字段类型不符不做隐式转换(§4.3)
- 实现回补:搜索括号嵌套上限 64 层、单个表达式至多 256 个原子,空短语、短语紧贴文本、`key:` 后空白均为非法(§6.1、§6.2);导出表格单元格转义 `\`、默认文件名剔除非法字符(§5.8);初始化中途锁冲突进锁冲突页、数据库文件缺失不静默新建(§4.4);app.json 读不出 / 备份写不出 / 退出写盘失败均不阻断启动与退出(§4.3);主题下拉选中即预览、取消恢复(§5.6);空白新卡片确认不创建(§5.4);app.json 脏标记按"改动过"判定(改回原值仍写盘),字段类型不符不做隐式转换(§4.3);确认对话框回车默认取消(§5.5)
- 里程碑:标注 M0–M4 已完成,新增 **M4R(v1.9 回补)**(§9)
## 1. 项目概述
@@ -207,7 +207,7 @@ card_tags: (card_id, tag_id) 复合主键,双向 ON DELETE CASCADE
### 5.5 确认对话框开关
按类型分设独立开关:删除卡片 / 删除列 / 删除标签 / 丢弃编辑确认,承载于设置模态,存 app.json。
按类型分设独立开关:删除卡片 / 删除列 / 删除标签 / 丢弃编辑确认,承载于设置模态,存 app.json。确认对话框的默认按钮(回车)为"取消",执行操作须显式点击确认按钮。
### 5.6 设置模态