Add deserializeEditorWindow to Atom class

This commit is contained in:
Kevin Sawicki
2013-09-26 08:58:43 -07:00
parent 4be4868959
commit 5c4a8f55c8
2 changed files with 31 additions and 24 deletions

View File

@@ -14,12 +14,15 @@ Config = require './config'
Keymap = require './keymap'
PackageManager = require './package-manager'
Pasteboard = require './pasteboard'
Project = require './project'
RootView = require './root-view'
Subscriber = require './subscriber'
ThemeManager = require './theme-manager'
ContextMenuManager = require './context-menu-manager'
# Public: Atom global for dealing with packages, themes, menus, and the window.
module.exports =
class Atom
class Atom extends Subscriber
constructor: ->
@packages = new PackageManager()
@themes = new ThemeManager()
@@ -53,6 +56,28 @@ class Atom
getLoadSettings: ->
@getCurrentWindow().loadSettings
deserializeEditorWindow: ->
state = @getWindowState()
@packages.packageStates = state.getObject('packageStates') ? {}
state.remove('packageStates')
@project = deserialize(state.get('project'))
unless @project?
@project = new Project(@getLoadSettings().initialPath)
state.set('project', @project.getState())
@rootView = deserialize(state.get('rootView'))
unless @rootView?
@rootView = new RootView()
state.set('rootView', @rootView.getState())
$(rootViewParentSelector).append(rootView)
@subscribe @project, 'path-changed', ->
projectPath = project.getPath()
@getLoadSettings().initialPath = projectPath
#TODO Remove theses once packages have been migrated
getPackageState: (args...) -> @packages.getPackageState(args...)
setPackageState: (args...) -> @packages.setPackageState(args...)

View File

@@ -31,6 +31,7 @@ window.setUpEnvironment = (windowMode) ->
Syntax = require './syntax'
window.rootViewParentSelector = 'body'
#TODO remove once all packages use the atom globa
window.config = atom.config
window.syntax = deserialize(atom.getWindowState('syntax')) ? new Syntax
window.pasteboard = atom.pasteboard
@@ -103,29 +104,10 @@ window.onDrop = (e) ->
atom.open({pathsToOpen}) if pathsToOpen.length > 0
window.deserializeEditorWindow = ->
RootView = require './root-view'
Project = require './project'
windowState = atom.getWindowState()
atom.packageStates = windowState.getObject('packageStates') ? {}
windowState.remove('packageStates')
window.project = deserialize(windowState.get('project'))
unless window.project?
window.project = new Project(atom.getLoadSettings().initialPath)
windowState.set('project', window.project.getState())
window.rootView = deserialize(windowState.get('rootView'))
unless window.rootView?
window.rootView = new RootView()
windowState.set('rootView', window.rootView.getState())
$(rootViewParentSelector).append(rootView)
project.on 'path-changed', ->
projectPath = project.getPath()
atom.getLoadSettings().initialPath = projectPath
atom.deserializeEditorWindow()
#TODO remove once all packages use the atom globa
window.project = atom.project
window.rootView = atom.rootView
window.getDimensions = -> atom.getDimensions()