mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Add deserializeEditorWindow to Atom class
This commit is contained in:
@@ -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...)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user