Skip to content
Snippets Groups Projects
Commit 6d9c9bd8 authored by Alexander Rose's avatar Alexander Rose
Browse files

use model.entryId(s) for image filename when possible

parent 2a74d5eb
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,8 @@ import { ImagePass } from '../../mol-canvas3d/passes/image';
import { download } from '../../mol-util/download';
import { setCanvasSize, canvasToBlob } from '../../mol-canvas3d/util';
import { Task } from '../../mol-task';
import { StateSelection } from '../../mol-state';
import { PluginStateObject } from '../state/objects';
interface ImageControlsState extends CollapsableState {
showPreview: boolean
......@@ -72,6 +74,14 @@ export class ImageControls<P, S extends ImageControlsState> extends CollapsableC
this.canvasContext.putImageData(imageData, 0, 0)
}
private getFilename() {
const models = this.plugin.state.dataState.select(StateSelection.Generators.rootsOfType(PluginStateObject.Molecule.Model)).map(s => s.obj!.data)
const uniqueIds = new Set<string>()
models.forEach(m => uniqueIds.add(m.entryId.toUpperCase()))
const idString = Array.from(uniqueIds).join('-')
return `${idString || 'molstar-image'}.png`
}
private downloadTask = () => {
return Task.create('Download Image', async ctx => {
const { width, height } = this.getSize()
......@@ -90,7 +100,7 @@ export class ImageControls<P, S extends ImageControlsState> extends CollapsableC
await ctx.update('Downloading image...')
const blob = await canvasToBlob(canvas, 'png')
download(blob, 'molstar-image.png')
download(blob, this.getFilename())
})
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment