修复画布快速编辑还原生成器

直接点击生成图时还原原生成器对话框

非生成图直接点击只选中不打开生成器

快速编辑按钮和右键入口按素材元数据打开对应生成器

补齐资源元数据回填和入口边界测试

(cherry picked from commit 45e4b6e64a)
This commit is contained in:
2026-06-29 16:06:51 +08:00
parent 08f188e26e
commit b3501f6fed
6 changed files with 336 additions and 613 deletions
@@ -20,6 +20,7 @@ import {
createEditDialogDraft,
createGenerateDialogDraft,
createIconGenerationDialogDraft,
createLayerGenerationDialogDraft,
createPublicationGenerationDialogDraft,
createQuickEditPanelDraft,
createRedrawPanelDraft,
@@ -593,6 +594,61 @@ describe('ImageCanvasGenerationDialogModel', () => {
});
});
it('restores a plain generated layer from its own metadata', () => {
const canvasSize = { width: 960, height: 720 };
const viewport = { x: 0, y: 0, scale: 1 };
expect(
createLayerGenerationDialogDraft({
sourceLayer: createLayer({
sourceType: 'generated',
prompt: '图层提示词',
model: 'gpt-image-2',
generationInputs: {
fields: [{ title: '生成提示词', value: '元数据提示词' }],
references: [],
},
}),
canvasSize,
viewport,
}),
).toMatchObject({
mode: 'generate',
prompt: '元数据提示词',
generatedLayerId: 'layer-source',
imageModel: 'gpt-image-2',
placeholder: {
x: 120,
y: 140,
width: 320,
height: 240,
originalWidth: 1024,
originalHeight: 768,
},
});
});
it('restores a tagged uploaded layer from its current asset kind', () => {
expect(
createLayerGenerationDialogDraft({
sourceLayer: createLayer({
sourceType: 'uploaded',
assetKind: 'character',
generationInputs: {
fields: [{ title: '角色设定', value: '黑衣剑士' }],
references: [],
},
}),
canvasSize: { width: 960, height: 720 },
viewport: { x: 0, y: 0, scale: 1 },
}),
).toMatchObject({
mode: 'character',
prompt: '黑衣剑士',
generatedLayerId: 'layer-source',
});
});
it('normalizes legacy nanobanana model aliases in quick edit drafts', () => {
expect(
createQuickEditPanelDraft(