Commit Graph

92 Commits

Author SHA1 Message Date
Corey Johnson & Nathan Sobo
278ac6a9f2 Remove bindKey from views. Make FileFinder use atom.bindKeys 2012-01-11 13:16:11 -08:00
Corey Johnson & Nathan Sobo
e58f699681 Remove KeyBinder and CommandMap. 2012-01-11 13:16:11 -08:00
Corey Johnson & Nathan Sobo
11866b90fe Rename KeyEventHandler to GlobalKeymap 2012-01-11 13:16:10 -08:00
Corey Johnson & Nathan Sobo
5293ba7469 Add fs.join 2012-01-05 12:01:55 -08:00
Nathan Sobo
629c1ef239 If passed a directory path, fs.directory returns the path it is given (not the parent dir) 2012-01-04 19:07:55 -07:00
Nathan Sobo
80e4fda2f9 Filter out directory paths for FileFinder in Objective-C instead of JS.
Rename FileSystemHelper-contentsOfDirectoryAtPath… to -listFilesAtPath to make it clear that we're only listing files, not subdirectories. This is a fairly special purpose method but it saves us from calling back into objective-c a ton of times to filter them in JS, and makes bringing up the file finder ~2x as fast.
2012-01-04 18:22:22 -07:00
Nathan Sobo
be0fa84f1f Move fs support methods out of AtomController into FileSystemHelper 2012-01-04 18:01:31 -07:00
Nathan Sobo
40e629b0ff Remove benchmarking calls. 2012-01-04 13:30:26 -07:00
Nathan Sobo
faa39f6bdb Construct native JS array/strings in C for fs.async.list callback.
Converting from JS-cocoa wrapper values for every element in the array appears to be very slow. Here we construct native JS datatypes and it's much faster. This is very messy and leaky and needs to be cleaned up if we want to keep it.
2012-01-03 22:47:20 -07:00
Corey Johnson & Nathan Sobo
7ba7ba2c81 Ported absolute and isFile to Objective-c.
This took fileFinder loading from .8 seconds to .35 seconds.
2012-01-03 17:50:43 -08:00
Corey Johnson & Nathan Sobo
982d5a4426 Benchmarking reveals filtering out non-files takes forevs
toString everything        0.199
Filter out non-files       0.703
Everything                 0.961
2012-01-03 17:34:21 -08:00
Corey Johnson & Nathan Sobo
5b3e0e9f83 fs.async.list takes a boolean 'recursive' flag. 2012-01-03 14:23:18 -07:00
Corey Johnson & Nathan Sobo
3822549007 Spec passes for fs.async.list. 2012-01-03 14:03:03 -07:00
Corey Johnson & Nathan Sobo
e327dcc8e5 Experiment with async callbacks from js 2011-12-30 18:02:11 -06:00
Nathan Sobo
a1e0039890 Centralize key binding logic in KeyBinder and jQuery.fn.bindKey extension.
This commit removes window.bindKey in favor of binding keys on dom elements. It also refactors pattern parsing in the test helper to use KeyBinder.parseKeyPattern.
2011-12-30 13:19:41 -06:00
Nathan Sobo
5273cb0638 Add $.fn.bindKey, which works on any jquery-wrapped element.
If given a string as an action, it attempts to call a method by that name on the element's view object. If given a function, it calls it directly.
2011-12-30 12:33:55 -06:00
Nathan Sobo
dc38a0e375 Add $.fn.view method, which links any jquery element to its parent view.
When generating a jQuery fragment with the templating framework, I store the fragment in the 'view' data property on all the fragments elements. This allows us to query an element from the DOM and determine what view object it belongs to.
2011-12-30 12:05:11 -06:00
Corey Johnson & Nathan Sobo
e4d73ace25 Bound up / down keys to moveUp / moveDown in fileFinder 2011-12-29 17:38:08 -08:00
Corey Johnson & Nathan Sobo
0f772c0858 Template framework can bind events on the root of views, in addition to descendant elements. 2011-12-29 16:13:16 -08:00
Corey Johnson & Nathan Sobo
b279063550 Fix bug where subviews could clobber outlets on superviews.
Now we wire outlets before the subviews are attached, preventing any outlets on the subview from overwriting outlets on the superview.
2011-12-29 16:29:06 -06:00
Corey Johnson & Nathan Sobo
ef628f0ad4 Add directory method to fs 2011-12-29 11:43:32 -08:00
Corey Johnson & Nathan Sobo
35e4b0e969 Incorporate Editor into templating framework. 2011-12-29 13:12:13 -06:00
Corey Johnson & Nathan Sobo
0285c3d94d Builder.subview wires an outlet directly, rather than assigning an outlet property. 2011-12-29 13:10:44 -06:00
Corey Johnson & Nathan Sobo
b25fc80c9a Template.subview expects a view instance instead of a template and params hash. 2011-12-29 12:17:52 -06:00
Corey Johnson & Nathan Sobo
8455507566 Use _.uniqueId to generate temporary subview divs. 2011-12-29 11:58:59 -06:00
Corey Johnson & Nathan Sobo
79ead1fefb Add Builder.subview / Template.subview 2011-12-29 11:43:14 -06:00
Corey Johnson & Nathan Sobo
c6d90748f7 Meta-t adds file finder to bottom of layout. 2011-12-28 16:30:08 -06:00
Corey Johnson & Nathan Sobo
cc2b28451c Add Template.toHtml 2011-12-28 16:29:40 -06:00
Corey Johnson & Nathan Sobo
3869193d33 Fix html builder bug: functions are considered objects, causing attributes to get clobbered. 2011-12-28 16:29:30 -06:00
Nathan Sobo
0fe85355f8 Merge branch 'view' 2011-12-28 14:22:12 -06:00
Nathan Sobo
eeb20673b3 Pass the event and element to event-handling methods on the view. 2011-12-27 19:13:54 -06:00
Nathan Sobo
ba18614c2f Bind DOM events to view methods based on element attributes.
For example, if you give an element the attribute click: 'elementClicked', the template will bind a click event to that element which calls the elementClicked method on the view.
2011-12-27 19:00:00 -06:00
Nathan Sobo
7948543a5b Template extends view with @viewProperties and calls initialize with attributes passed to build. 2011-12-27 18:36:54 -06:00
Corey Johnson
a0fc994dcb addMenuItem can take a key pattern and set it as the key equivalent. 2011-12-27 16:30:48 -08:00
Nathan Sobo
08c1d33836 Switch Template to use builder. Wire outlets in Template. 2011-12-27 18:21:00 -06:00
Nathan Sobo
43ddb6b16a Builder.toFragment creates outlet references on the fragment. 2011-12-27 17:43:05 -06:00
Nathan Sobo
bd79d9cd5d Builder correctly generates void (self-closing) tags. 2011-12-27 16:43:28 -06:00
Nathan Sobo
21fb88141e Builder can generate tags with attributes. 2011-12-27 16:16:35 -06:00
Nathan Sobo
b5a06c288e Tags can take textual content. 2011-12-27 16:05:01 -06:00
Nathan Sobo
e570c5d454 Tags can take a function for their content. 2011-12-27 15:57:29 -06:00
Nathan Sobo
22167faf28 Add template/Builder. It generates basic tags. 2011-12-27 15:50:39 -06:00
Nathan Sobo
a48a1b24f4 Don't add the same menu item more than once. 2011-12-26 23:33:05 -06:00
Nathan Sobo
a010c8e3c6 Add window.bindMenuItem, which adds a menu item that invokes a given function.
Every menu item is created with a path (File > Save). The functions are stored in a hash from (menu item path -> action) on the window. When an AtomMenuItem is selected, it looks up the action on the current window based on its path.
2011-12-26 13:12:27 -06:00
Nathan Sobo
00bccdca96 Add partial implementation Native.addMenuItem.
It takes a path like "Menu 1 > Menu 2 > Item", and builds a series of submenus if needed along that path, then adds the final item at its terminus. Specs still need to be fleshed out further.
2011-12-23 16:45:04 -06:00
Nathan Sobo
ae4fdf8812 Add Native.resetMainMenu and call it in global afterEach
This method removes any AtomMenuItems that aren't marked as 'global'. It ignores menu items that aren't instances of our custom subclass. This is needed by specs to clear any menu items added during tests. It will also be needed when a window loses focus and we want to remove any non-global menus associated with the window.
2011-12-23 12:43:32 -06:00
Corey Johnson
d0ed5992ca 'meta-o' presents open dialog. 2011-12-20 10:41:31 -08:00
Corey Johnson
c679df770b CoffeeScript compiler is slow. Take steps to avoid it. 2011-12-19 14:56:11 -08:00
Nathan Sobo
7dcb00f0ec When saving buffer with no url, pop up 'save as' dialog.
Remove a lot of old code.
2011-12-16 16:31:02 -08:00
Corey Johnson & Nathan Sobo
a07daf26ca Add Buffer.save 2011-12-15 15:59:32 -08:00
Corey Johnson & Nathan Sobo
ef774cb529 Coffeescript compile errors show file name. 2011-12-15 14:10:06 -08:00