Phase 6: 一键多开 (工具组合) 功能
- 数据模型: ToolItem 新增 IsGroup(bool) + SubToolIds(List<string>) 字段
- 执行逻辑: ProcessExecutionService 改为 ExecuteAsync, 组合卡片遍历子工具逐一启动(500ms延迟), 孤儿ID跳过并打印警告
- 组合编辑: GroupEditViewModel + GroupEditWindow, 复选框列表勾选非组合工具
- 主界面: 标题栏新增 '+添加组合' 按钮(蓝色), 组合卡片右下角显示 📦 角标
- 右键菜单: 区分 '编辑工具' (普通) 和 '编辑组合' (IsGroup=true)
- 快捷键: HotKeyManager 适配 ExecuteAsync 异步调用
- 测试: 82 tests total (ProcessExecution 4->6, GroupEdit 5 new)
This commit is contained in:
@@ -165,7 +165,7 @@ public class MainViewModelTests
|
||||
|
||||
vm.ExecuteToolCommand.Execute(tool);
|
||||
|
||||
_processServiceMock.Verify(x => x.Execute(tool), Times.Once);
|
||||
_processServiceMock.Verify(x => x.ExecuteAsync(tool), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -173,7 +173,7 @@ public class MainViewModelTests
|
||||
{
|
||||
var vm = CreateViewModel();
|
||||
vm.ExecuteToolCommand.Execute(null);
|
||||
_processServiceMock.Verify(x => x.Execute(It.IsAny<ToolItem>()), Times.Never);
|
||||
_processServiceMock.Verify(x => x.ExecuteAsync(It.IsAny<ToolItem>()), Times.Never);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user