Nathan Sobo
685df18a3a
Fix breakages due to save method moving to Pane (except saveAll specs)
2013-03-07 09:30:28 -08:00
Nathan Sobo
3f9ee08e76
Handle save-as on pane. Replace 'editor:save-as' w/ 'core:save-as'
...
Pane will only show the saveAs dialog if the item has a `saveAs` method.
2013-03-07 09:30:28 -08:00
Nathan Sobo
59a06acc0b
Fire 'modified-status-changed' events on changes after save/reload
...
Buffer keeps state about the value with which it fired the last
modified-status-changed event so that it doesn't fire it twice with the
same boolean value. Every piece of code that triggers the event also
needs to set this state, so now everything goes through the
`triggerModifiedStatusChanged` method.
2013-03-07 09:30:28 -08:00
Nathan Sobo
699e780e99
Handle save in panes with new 'core:save' event
2013-03-07 09:30:28 -08:00
Nathan Sobo
6ae684d609
Kill commented specs that were used as a reminder
2013-03-07 09:30:28 -08:00
Nathan Sobo
54fc9efdcb
Eliminate fixturesProject global. Use project global instead.
2013-03-07 09:30:27 -08:00
Nathan Sobo
9f7b804a6c
Panes prompt to save modified items before destroying them
2013-03-07 09:30:27 -08:00
Nathan Sobo
d5654cf0df
💄
2013-03-07 09:30:27 -08:00
Nathan Sobo
298a963148
Rework Buffer's 'contents-modified' event
...
This event now fires whenever the content of the buffer changes (after
a rate-limiting delay) with a single boolean indicating the modified
status of the buffer. There's now a separate event called
'modified-status-changed' to indicate events that change the boolean
value of the isModified method, so we don't need to fire
'contents-modified' when the underlying file is deleted for instance.
2013-03-07 09:30:27 -08:00
Nathan Sobo
24c9f11cc9
Trigger modified-status-changed on buffers/edit sessions
2013-03-07 09:30:27 -08:00
Corey Johnson & Nathan Sobo
ae95c04bbc
Focus next pane when removing the last pane item of a focused pane
...
Previously, removing the last pane item also ruined our ability to
determine if the pane had focus. Now, if we're removing the last item,
we instead just go ahead and remove the entire pane. Remove contains
logic to switch focus to the next pane if its active view is focused,
which works as intended if we leave the active view in place.
2013-03-07 09:30:26 -08:00
Corey Johnson & Nathan Sobo
52b649dca5
Preserve focus when switching between pane items
...
If the pane is currently focused, when showing a view associated with
a new item, focus that view.
2013-03-07 09:30:26 -08:00
Corey Johnson & Nathan Sobo
6157a75868
Spec changeFocus option of RootView.open and default it to true
2013-03-07 09:30:26 -08:00
Corey Johnson & Nathan Sobo
5291924bcc
Set the project path when its first edit session is saved
2013-03-07 09:30:26 -08:00
Corey Johnson & Nathan Sobo
9a93694a4c
💄
2013-03-07 09:30:26 -08:00
Nathan Sobo
31f7d6669f
Use project global in project spec
2013-03-07 09:30:26 -08:00
Nathan Sobo
2bfc73afaa
These should have been renamed w/ currentView/Item -> activeView/Item
2013-03-07 09:30:25 -08:00
Nathan Sobo
fab3b4564e
Add Pane.moveItemToPane specs. Fix bug moving the last edit session.
2013-03-07 09:30:25 -08:00
Nathan Sobo
fe0d3cad36
Remove multiple edit session handling from Editor
2013-03-07 09:30:25 -08:00
Nathan Sobo
2e2ff3a1d0
Add Pane.destroyItem and rename removeActiveItem -> destroyActiveItem
...
Pane.removeItem removes an item, but no longer tries to call destroy
on it. This will facilitate moving items between panes.
2013-03-07 09:30:24 -08:00
Nathan Sobo
887b5ea007
Add Pane.moveItem(item, index)
...
This is the precursor to supporting drag/drop of tabs within and
between panes.
2013-03-07 09:30:24 -08:00
Nathan Sobo
21990cf986
Add EditSession.getLongTitle
2013-03-07 09:30:24 -08:00
Nathan Sobo
de8198084c
EditSession emits 'title-changed' events when its buffer path changes
2013-03-07 09:30:24 -08:00
Nathan Sobo
5240d9989f
Pane emits 'pane:item-removed' events
2013-03-07 09:30:23 -08:00
Nathan Sobo
dd120663b7
Pane emits 'pane:item-added' events
2013-03-07 09:30:23 -08:00
Nathan Sobo
a40d05f6ee
Rename Pane.currentItem/View to activeItem/View
2013-03-07 09:30:23 -08:00
Nathan Sobo
15d8a6cada
Simplify pane:active-item-changed events
...
Panes now trigger an event every time their active item changes,
regardless of whether the pane itself is active. Panes also trigger
events when the become active and when they are removed. The rootView
now scopes its active-item-changed event listener only to active panes,
and also listens to listens to pane activation and removal events to
update the title when switching active panes and removing the last
pane.
2013-03-07 09:30:23 -08:00
Nathan Sobo
892ff0c51f
Add PaneContainer.eachPane
...
It calls the given callback with all current and future panes
2013-03-07 09:30:23 -08:00
Nathan Sobo
20590f590e
Make window specs pass without getActiveEditor/getEditors
2013-03-07 09:30:23 -08:00
Kevin Sawicki
a6bf7f876d
Replace RootView.getActiveEditor() with getActiveView()
2013-03-07 09:30:23 -08:00
Kevin Sawicki
ff899e9c1b
Replace RootView.getActiveEditor() with getActiveView()
2013-03-07 09:30:23 -08:00
Kevin Sawicki & Nathan Sobo
062adae714
Return the new pane's currentView when splitting the editor
2013-03-07 09:30:23 -08:00
Kevin Sawicki & Nathan Sobo
6304bac233
Remove RootView.getActiveEditor / getActiveEditSession
...
There's a bunch broken because of this… to be continued.
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
2bf5163798
Kill pane specs on root view
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
26c63edf33
Assert against config for font-size changing events instead of editor
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
d6b85cf7e8
Base title updates on pane:active-item-changed events
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
3ae9c10ff5
Trigger 'pane:active-item-changed' w/ null when last pane is removed
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
161ed69ef0
When a pane is removed, focus/activate the next pane
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
80e736d4ee
Add RootView.getActiveView and .getActivePaneItem
...
They will replace getActiveEditor/getActiveEditSession
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
58228f7ff7
Remove RootView.activeKeybindings method. It was dead code.
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
4a6f05ae4e
Trigger 'pane:active-item-changed' on Pane
...
This event is triggered when the item changes on the active pane, or
when a different pane becomes active.
Also: Pane now sets itself as the active pane, rather than letting
PaneContainer handle the focusin event.
2013-03-07 09:30:22 -08:00
Kevin Sawicki & Nathan Sobo
ad62f896bc
Make Pane maintain a currentView pointer based on its current item
2013-03-07 09:30:21 -08:00
Kevin Sawicki & Nathan Sobo
d310fb366f
Remove references to RootView from editor spec
2013-03-07 09:30:21 -08:00
Nathan Sobo
486baa393b
PaneContainer.getActivePane returns the most recently focused pane
2013-03-07 09:28:52 -08:00
Nathan Sobo
2ba63e608f
Don't allow core:close event to bubble out of Pane
2013-03-07 09:28:52 -08:00
Nathan Sobo
8f980a0f20
Replace Editor's next/previous edit session bindings w/ pane bindings
2013-03-07 09:28:52 -08:00
Nathan Sobo
bd8ec81b1e
Make Pane close the current item when handling 'core:close' event
2013-03-07 09:28:52 -08:00
Nathan Sobo
11a702a2a6
Remove pane when its last item is removed
2013-03-07 09:28:52 -08:00
Nathan Sobo
7d147dd2ce
Make Pane handle split commands instead of Editor
2013-03-07 09:28:52 -08:00
Nathan Sobo
fee835f899
Add a PaneContainer subview for RootView
...
PaneContainer is responsible for all pane-related logic. Laying them
out, switching focus between them, etc. This should help make RootView
simpler and keep pane-layout related tests in their own focused area.
2013-03-07 09:28:52 -08:00