This commit is contained in:
neauoire 2019-11-03 21:23:32 -05:00
parent ccab161421
commit b30996edee
2 changed files with 11 additions and 7 deletions

View File

@ -35,9 +35,9 @@ function Source () {
this.saveAs(name, content, type, callback) this.saveAs(name, content, type, callback)
} }
this.saveAs = (name, content, type = 'text/plain', callback) => { this.saveAs = (name, ext, content, type = 'text/plain', callback) => {
console.log('Source', 'Save new file..') console.log('Source', 'Save new file..')
this.download(name, content, type, callback) this.download(name, ext, content, type, callback)
} }
this.revert = () => { this.revert = () => {
@ -55,10 +55,9 @@ function Source () {
reader.readAsText(file, 'UTF-8') reader.readAsText(file, 'UTF-8')
} }
this.download = (name, content, type, settings = 'charset=utf-8') => { this.download = (name, ext, content, type, settings = 'charset=utf-8') => {
console.info('Source', `Downloading ${name}(${type})`)
const link = document.createElement('a') const link = document.createElement('a')
link.setAttribute('download', name) link.setAttribute('download', `${name}-${timestamp()}.${ext}`)
if (type === 'image/png' || type === 'image/jpeg') { if (type === 'image/png' || type === 'image/jpeg') {
link.setAttribute('href', content) link.setAttribute('href', content)
} else { } else {
@ -66,4 +65,9 @@ function Source () {
} }
link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window })) link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }))
} }
function timestamp (d = new Date(), e = new Date(d)) {
const ms = e - d.setHours(0, 0, 0, 0)
return (ms / 8640 / 10000).toFixed(6).substr(2, 6)
}
} }

View File

@ -39,8 +39,8 @@ function Ronin () {
window.addEventListener('drop', this.onDrop) window.addEventListener('drop', this.onDrop)
this.acels.set('File', 'New', 'CmdOrCtrl+N', () => { this.source.new(); this.surface.clear(); this.commander.clear() }) this.acels.set('File', 'New', 'CmdOrCtrl+N', () => { this.source.new(); this.surface.clear(); this.commander.clear() })
this.acels.set('File', 'Save', 'CmdOrCtrl+S', () => { this.source.save('export.lisp', this.commander._input.value, 'text/plain') }) this.acels.set('File', 'Save', 'CmdOrCtrl+S', () => { this.source.download('ronin', 'lisp', this.commander._input.value, '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 Image', 'CmdOrCtrl+E', () => { this.source.download('ronin', 'png', this.surface.el.toDataURL('image/png', 1.0), 'image/png') })
this.acels.set('File', 'Open', 'CmdOrCtrl+O', () => { this.source.open('lisp', this.whenOpen) }) this.acels.set('File', 'Open', 'CmdOrCtrl+O', () => { this.source.open('lisp', 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('View', 'Toggle Guides', 'CmdOrCtrl+Shift+H', () => { this.surface.toggleGuides() }) this.acels.set('View', 'Toggle Guides', 'CmdOrCtrl+Shift+H', () => { this.surface.toggleGuides() })