Fixed export

This commit is contained in:
neauoire 2019-11-03 13:52:11 -05:00
parent 03331be38d
commit 5c72c1b7ca
3 changed files with 8 additions and 4 deletions

View File

@ -48,8 +48,8 @@ function Dotgrid () {
window.addEventListener('drop', this.drag) window.addEventListener('drop', this.drag)
this.acels.set('File', 'New', 'CmdOrCtrl+N', () => { this.source.new() }) this.acels.set('File', 'New', 'CmdOrCtrl+N', () => { this.source.new() })
this.acels.set('File', 'Save', 'CmdOrCtrl+S', () => { this.source.save('export.grid', dotgrid.tool.export(), 'text/plain') }) this.acels.set('File', 'Save', 'CmdOrCtrl+S', () => { this.source.save('export.grid', this.tool.export(), 'text/plain') })
this.acels.set('File', 'Export Image', 'CmdOrCtrl+E', () => { this.source.download('export.png', this.surface.el.toDataURL('image/png', 1.0), 'image/png') }) this.acels.set('File', 'Export Vector', 'CmdOrCtrl+E', () => { this.source.download('export.svg', this.manager.toString(), 'image/svg+xml') })
this.acels.set('File', 'Open', 'CmdOrCtrl+O', () => { this.source.open('grid', this.whenOpen) }) this.acels.set('File', 'Open', 'CmdOrCtrl+O', () => { this.source.open('grid', this.whenOpen) })
this.acels.set('File', 'Revert', 'CmdOrCtrl+W', () => { this.source.revert() }) this.acels.set('File', 'Revert', 'CmdOrCtrl+W', () => { this.source.revert() })
this.acels.set('History', 'Undo', 'CmdOrCtrl+Z', () => { this.history.undo() }) this.acels.set('History', 'Undo', 'CmdOrCtrl+Z', () => { this.history.undo() })

View File

@ -55,14 +55,14 @@ function Source () {
reader.readAsText(file, 'UTF-8') reader.readAsText(file, 'UTF-8')
} }
this.download = (name, content, type) => { this.download = (name, content, type, settings = 'charset=utf-8') => {
console.info('Source', `Downloading ${name}(${type})`) console.info('Source', `Downloading ${name}(${type})`)
const link = document.createElement('a') const link = document.createElement('a')
link.setAttribute('download', name) link.setAttribute('download', name)
if (type === 'image/png' || type === 'image/jpeg') { if (type === 'image/png' || type === 'image/jpeg') {
link.setAttribute('href', content) link.setAttribute('href', content)
} else { } else {
link.setAttribute('href', 'data:' + type + ';charset=utf-8,' + encodeURIComponent(content)) link.setAttribute('href', 'data:' + type + ';' + settings + ',' + encodeURIComponent(content))
} }
link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window })) link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }))
} }

View File

@ -86,4 +86,8 @@ function Manager (dotgrid) {
const file = new Blob([text], { type: 'text/plain' }) const file = new Blob([text], { type: 'text/plain' })
callback(URL.createObjectURL(file), 'export.grid') callback(URL.createObjectURL(file), 'export.grid')
} }
this.toString = () => {
return new XMLSerializer().serializeToString(this.el)
}
} }