feat(ui): merge visible creates new layer

Previously, merge visible deleted all other visible layers. This is not how affinity works, I should have confirmed before making it work like this in the first place.Ï
This commit is contained in:
psychedelicious
2024-10-29 15:44:36 +10:00
parent 91db9c9300
commit 2fdf8fc0a2
2 changed files with 4 additions and 26 deletions

View File

@@ -43,7 +43,6 @@ const mergeRasterLayers = async (canvasManager: CanvasManager, dispatch: AppDisp
objects: [imageDTOToImageObject(result.value)],
position: { x: Math.floor(rect.x), y: Math.floor(rect.y) },
},
isMergingVisible: true,
})
);
@@ -70,7 +69,6 @@ const mergeInpaintMasks = async (canvasManager: CanvasManager, dispatch: AppDisp
objects: [imageDTOToImageObject(result.value)],
position: { x: Math.floor(rect.x), y: Math.floor(rect.y) },
},
isMergingVisible: true,
})
);

View File

@@ -123,28 +123,18 @@ export const canvasSlice = createSlice({
id: string;
overrides?: Partial<CanvasRasterLayerState>;
isSelected?: boolean;
isMergingVisible?: boolean;
}>
) => {
const { id, overrides, isSelected, isMergingVisible } = action.payload;
const { id, overrides, isSelected } = action.payload;
const entityState = getRasterLayerState(id, overrides);
if (isMergingVisible) {
// When merging visible, we delete all disabled layers
state.rasterLayers.entities = state.rasterLayers.entities.filter((layer) => !layer.isEnabled);
}
state.rasterLayers.entities.push(entityState);
if (isSelected) {
state.selectedEntityIdentifier = getEntityIdentifier(entityState);
}
},
prepare: (payload: {
overrides?: Partial<CanvasRasterLayerState>;
isSelected?: boolean;
isMergingVisible?: boolean;
}) => ({
prepare: (payload: { overrides?: Partial<CanvasRasterLayerState>; isSelected?: boolean }) => ({
payload: { ...payload, id: getPrefixedId('raster_layer') },
}),
},
@@ -822,29 +812,19 @@ export const canvasSlice = createSlice({
id: string;
overrides?: Partial<CanvasInpaintMaskState>;
isSelected?: boolean;
isMergingVisible?: boolean;
}>
) => {
const { id, overrides, isSelected, isMergingVisible } = action.payload;
const { id, overrides, isSelected } = action.payload;
const entityState = getInpaintMaskState(id, overrides);
if (isMergingVisible) {
// When merging visible, we delete all disabled layers
state.inpaintMasks.entities = state.inpaintMasks.entities.filter((layer) => !layer.isEnabled);
}
state.inpaintMasks.entities.push(entityState);
if (isSelected) {
state.selectedEntityIdentifier = getEntityIdentifier(entityState);
}
},
prepare: (payload?: {
overrides?: Partial<CanvasInpaintMaskState>;
isSelected?: boolean;
isMergingVisible?: boolean;
}) => ({
prepare: (payload?: { overrides?: Partial<CanvasInpaintMaskState>; isSelected?: boolean }) => ({
payload: { ...payload, id: getPrefixedId('inpaint_mask') },
}),
},