diff --git a/spec/pane-spec.coffee b/spec/pane-spec.coffee index 7d6410048..51bb07e8c 100644 --- a/spec/pane-spec.coffee +++ b/spec/pane-spec.coffee @@ -3,7 +3,7 @@ Pane = require '../src/pane' PaneAxis = require '../src/pane-axis' PaneContainer = require '../src/pane-container' -describe "Pane", -> +fdescribe "Pane", -> deserializerDisposable = null class Item extends Model @@ -414,7 +414,7 @@ describe "Pane", -> pane.getActiveItem().path = __filename pane.getActiveItem().saveAs = jasmine.createSpy("saveAs") pane.saveActiveItemAs() - expect(atom.showSaveDialogSync).toHaveBeenCalledWith(__filename) + expect(atom.showSaveDialogSync).toHaveBeenCalledWith(defaultPath: __filename) expect(pane.getActiveItem().saveAs).toHaveBeenCalledWith('/selected/path') describe "when the current item does not have a saveAs method", -> diff --git a/src/atom.coffee b/src/atom.coffee index 0d029b61d..dde0960ab 100644 --- a/src/atom.coffee +++ b/src/atom.coffee @@ -783,11 +783,12 @@ class Atom extends Model showSaveDialog: (callback) -> callback(showSaveDialogSync()) - showSaveDialogSync: (defaultPath) -> - defaultPath ?= @project?.getPaths()[0] + showSaveDialogSync: (options={}) -> currentWindow = @getCurrentWindow() dialog = remote.require('dialog') - dialog.showSaveDialog currentWindow, {title: 'Save File', defaultPath} + options.title ?= 'Save File' + options.defaultPath ?= @project?.getPaths()[0] + dialog.showSaveDialog currentWindow, options saveSync: -> if storageKey = @constructor.getStateKey(@project?.getPaths(), @mode) diff --git a/src/pane.coffee b/src/pane.coffee index 38c8d9201..b38e6fa46 100644 --- a/src/pane.coffee +++ b/src/pane.coffee @@ -492,8 +492,9 @@ class Pane extends Model saveItemAs: (item, nextAction) -> return unless item?.saveAs? - itemPath = item.getPath?() - newItemPath = atom.showSaveDialogSync(itemPath) + saveOptions = item.getSaveOptions?() or {} + saveOptions.defaultPath ?= item.getPath() + newItemPath = atom.showSaveDialogSync(saveOptions) if newItemPath try item.saveAs(newItemPath)