Return telepath documents from getWindowState()

This commit is contained in:
Kevin Sawicki & Nathan Sobo 2013-06-20 12:38:40 -07:00 committed by Nathan Sobo
parent d283834978
commit 9c95a4751b
3 changed files with 18 additions and 11 deletions

View File

@ -8,6 +8,7 @@ remote = require 'remote'
crypto = require 'crypto'
path = require 'path'
dialog = remote.require 'dialog'
telepath = require 'telepath'
window.atom =
loadedThemes: []
@ -254,8 +255,8 @@ window.atom =
setWindowState: (keyPath, value) ->
windowState = @getWindowState()
_.setValueForKeyPath(windowState, keyPath, value)
@saveWindowState(windowState)
windowState.set(keyPath, value)
@saveWindowState(windowState.toObject())
windowState
getWindowState: (keyPath) ->
@ -274,10 +275,11 @@ window.atom =
console.warn "Error parsing window state: #{windowStatePath}", error.stack, error
windowState ?= {}
doc = telepath.Document.fromObject(telepath.createSite(1), windowState)
if keyPath
_.valueForKeyPath(windowState, keyPath)
doc.get(keyPath)
else
windowState
doc
update: ->
ipc.sendChannel 'install-update'

View File

@ -1,5 +1,6 @@
fsUtils = require 'fs-utils'
path = require 'path'
telepath = require 'telepath'
$ = require 'jquery'
less = require 'less'
ipc = require 'ipc'
@ -118,7 +119,7 @@ window.deserializeEditorWindow = ->
windowState = atom.getWindowState()
atom.packageStates = windowState.packageStates ? {}
atom.packageStates = windowState.getObject('packageStates') ? {}
window.project = new Project(initialPath)
window.rootView = deserialize(windowState.rootView) ? new RootView
@ -134,8 +135,7 @@ window.deserializeEditorWindow = ->
window.deserializeConfigWindow = ->
ConfigView = require 'config-view'
windowState = atom.getWindowState()
window.configView = deserialize(windowState.configView) ? new ConfigView()
window.configView = deserialize(atom.getWindowState('configView')) ? new ConfigView()
$(rootViewParentSelector).append(configView)
window.stylesheetElementForId = (id) ->
@ -205,7 +205,7 @@ window.setDimensions = ({x, y, width, height}) ->
browserWindow.center()
window.restoreDimensions = ->
dimensions = atom.getWindowState('dimensions')
dimensions = atom.getWindowState().getObject('dimensions')
dimensions = defaultWindowDimensions unless dimensions?.width and dimensions?.height
window.setDimensions(dimensions)
$(window).on 'unload', -> atom.setWindowState('dimensions', window.getDimensions())
@ -227,11 +227,16 @@ window.unregisterDeserializer = (klass) ->
window.deserialize = (state) ->
if deserializer = getDeserializer(state)
return if deserializer.version? and deserializer.version isnt state.version
stateVersion = state.get?('version') ? state.version
return if deserializer.version? and deserializer.version isnt stateVersion
if (state instanceof telepath.Document) and not deserializer.acceptsDocuments
state = state.toObject()
deserializer.deserialize(state)
window.getDeserializer = (state) ->
name = state?.deserializer
return unless state?
name = state.get?('deserializer') ? state.deserializer
if deferredDeserializers[name]
deferredDeserializers[name]()
delete deferredDeserializers[name]

2
vendor/apm vendored

@ -1 +1 @@
Subproject commit cae9e5e0b9c0db7a928189029dbecb577ed81bda
Subproject commit 0945ca14da25254edd2bfd4d61e84bebf9f04910