mirror of
https://github.com/atom/atom.git
synced 2026-02-08 13:45:09 -05:00
Make showSaveDialog optionally async
This commit is contained in:
@@ -153,10 +153,15 @@ class ApplicationDelegate
|
||||
|
||||
showMessageDialog: (params) ->
|
||||
|
||||
showSaveDialog: (params) ->
|
||||
if typeof params is 'string'
|
||||
params = {defaultPath: params}
|
||||
@getCurrentWindow().showSaveDialog(params)
|
||||
showSaveDialog: (options, callback) ->
|
||||
if callback?
|
||||
# Async
|
||||
@getCurrentWindow().showSaveDialog(options, callback)
|
||||
else
|
||||
# Sync
|
||||
if typeof options is 'string'
|
||||
options = {defaultPath: options}
|
||||
@getCurrentWindow().showSaveDialog(options)
|
||||
|
||||
playBeepSound: ->
|
||||
shell.beep()
|
||||
|
||||
@@ -1076,14 +1076,6 @@ class AtomEnvironment {
|
||||
return this.deserialize(state)
|
||||
}
|
||||
|
||||
showSaveDialog (callback) {
|
||||
callback(this.showSaveDialogSync())
|
||||
}
|
||||
|
||||
showSaveDialogSync (options = {}) {
|
||||
this.applicationDelegate.showSaveDialog(options)
|
||||
}
|
||||
|
||||
async saveState (options, storageKey) {
|
||||
if (this.enablePersistence && this.project) {
|
||||
const state = this.serialize(options)
|
||||
|
||||
@@ -294,12 +294,18 @@ class AtomWindow
|
||||
@browserWindow.reload() if result
|
||||
@loadedPromise
|
||||
|
||||
showSaveDialog: (params) ->
|
||||
params = Object.assign({
|
||||
showSaveDialog: (options, callback) ->
|
||||
options = Object.assign({
|
||||
title: 'Save File',
|
||||
defaultPath: @representedDirectoryPaths[0]
|
||||
}, params)
|
||||
dialog.showSaveDialog(@browserWindow, params)
|
||||
}, options)
|
||||
|
||||
if callback?
|
||||
# Async
|
||||
dialog.showSaveDialog(@browserWindow, options, callback)
|
||||
else
|
||||
# Sync
|
||||
dialog.showSaveDialog(@browserWindow, options)
|
||||
|
||||
toggleDevTools: -> @browserWindow.toggleDevTools()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user