+ Created a platform-specific css file for tabcandy in the theme directory.
+ Copied the Mac TabCandy theme additions into the Windows and Linux themes.
--HG--
rename : browser/themes/pinstripe/browser/tabcandy/tabcandy.css => browser/base/content/tabcandy/tabcandy.css
+ Removed TabItems.reconstitute(), which we haven't actually needed for a while, but now it's also causing trouble
+ Removed Utils.activeWindow, which doesn't seem to work, and replaced its use in Utils.activeTab (the only remaining place it was being used) with Utils.getCurrentWindow(), which does seem to work
+ Utils.assert() now dumps a trace
+ Fixed paths to the edit pencil and new tab button images; they should now show up properly
+ The "code docs" item on the dev menu now opens the documentation from the repository into a new tab (used to open the local documentation, which doesn't exist in this new context, and replace the tab candy tab)
+ Removed the "tests" item from the dev menu, as they don't apply to this new context
+ Fixed an accidental comma in tabcandy.css (was disabling the pointer cursor for tabs)
+ Our toolbar button now uses the standard toolbar button styling; we just apply a glyph to it
+ Went through the code with http://caja.appspot.com/tools/index and fixed a number of minor issues it found
+ Added "refresh" to the dev menu (since you won't be able to just refresh the tabcandy page once it's in the xul:deck)
+ Removed the command-click quasimode for showing the tray version of stacked groups.
+ Added a new expand icon for showing the tray version of stacked groups
+ Refactored the Group.js code so that we now have both group.collapse() and group.expand()
-- Website Behavior --
+ Updated the website to pull the documentation section from the Etherpad
+ Some general DRY-based cleanup
-- Install.rdf --
+ Fiddled with the min/max version
+ The "zoom prep", where the div is resized behind the scenes, is now much more robust; items can be rearranged while in this state (in response to new tabs opening, for instance), and everything still works out.
+ Group._activeTab is now a TabItem rather than a DOM element
+ Most of the old "mod" routine is now in the TabItem constructor; "mod" no longer exists
+ First use of iQ.animate(), which uses CSS transitions: tab zoom up and down, as well as phantom group disappearing when you drag in empty space but don't make it big enough
+ Consolidated onFocus call of UIClass into onFocus call of Page
+ ui.js is jQuery-free
+ The zoom down animation happens after a setTimeout(…, 1), which causes an unfortunate delay, but without it, the animation doesn't happen at all
+ Added val, resize, change to iQ.fn and isAnimating to iQ
+ Fixed a typo where errors in onFocus weren't being logged. (When you go back to the TabCandy from a tab, the tab strip get hidden late, causing a jarring jump)
+ Also: fixed bug 567010
+ The last tab you were viewing is now highlighted as the focused tab.
+ You can get back to the tab you were looking at now by hitting the escape key.
+ You can navigate to the focused tab by hitting the return key.
+ You can select other tabs via the keyboard with the arrow keys.
+ Created Utils.copy to make duplicating objects cleaner
+ Fixed a number of issues with pulling tabs out of a tray. Temporarily disabled the delay on drag as well.
+ Improved the threshold for switching from grid to stack; only happens when the grid fills up.
+ No longer announcing "bad storage data" when there is in fact no storage data (fresh start)
+ A couple more asserts
(1) It means that the tabs are shown in the order which they appear in the group. Keeps the mental model clean.
(2) When you close a tab, the next tab that is focused is sane (i.e., it is in the group not some random tab)
+ TODOs (see the code)
+ (1) There is a potential race condition groups.js:line 121
+ (2) The new tab animation is to the wrong place groups.js:line 96
+ Commented out the _render routine in toolbar-button.js, as it was throwing exceptions and didn't seem to work anyway
+ Added some asserts to Item and cleaned up its documentation
+ Made Utils.assert more robust
+ Made tabs prettier when stacked
+ Commented out js lint, which doesn't seem to work in this context
+ Fixed it so you can't resize locked groups
+ Made it so the "new tabs" group is no longer locked (for the time being at least)
+ Tabs no longer change order when you drag their groups around
+ The tray now goes away more beautifully
+ You now have to drag at least 100 pixels and at least 500 milliseconds before a tab is pulled out its tray
+ No longer reserving space at the bottom of the screen for the "new tabs" group
+ Tab titles now go away when stacked and come back when not (there was a problem with them coming back)
+ No longer explicitly positioning the "new tabs" group
+ Page names are no longer visible when in stacks
+ Page names have been prettified when in the stack tray.
+ TODO: Page names don't seem to come back after a group is turned into a stack, and then unstacked.
+ Cleaned up issues with algorithm for choosing where to position a tab dropped into a group
+ You can no longer drag a tab or group around by its close box
+ Changed tab drop tolerance… tabs now just need to overlap 50% in order to group. This is to make it consistent with dropping a tab on an existing group, which already behaved this way
+ A single tab in a group will no longer fill the entire group
+ In Zoomgroups put some pages into a group, then scale it down
+ It will animate itself into a stack
+ Pull it out again and it will go back to being a zoomgroup
+ We pause tab mirroring/painting on zooms.
+ We remove box shadows and rounded corners on zooms. (Which, according to Shark, was costing around 10% time)
+ The tab bar toggle and decorative strip now reside above the tab candy content in Z
+ Group titles now have prompt text/icon
+ Additional documentation (especially Mirror)
+ Fixed the dev mode features (were broken by the tab bar toggle changes)
+ The Firefox nav bar now correctly shows again when you create and go to a new tab
+ the "new tab" group now always lives at the bottom of the page
+ the candy switcher and the "grid" and "sites" features are now hidden by default. add ?dev=1 to the url to show them
+ the Firefox nav bar is now hidden when you're in the tab candy page
+ the starting grid now scales depending on how many tabs you have. (it is in fact sharing the arrange code that groups use for their children)
They were plentiful when from the darkness it emerged
The dark mercurial spirits singing SVN a dirge
A beast with many heads
No arms but branches in its stead
As you push into unknowns your final utterance will be "merge"
-- The only surving translation of the last song of the commited.
+ Clicking on it opens a tab to Revision-A
- The tab is moved to being the first tab
- The tab is visually hidden
- Clicking on it again re-uses the opened tab
Some notes:
* Only styled for OSX
* We should think about loading the page in the background on startup
so that there is no time delay when clicking on it the first time
+ Now compensating for padding in tabs when laying them out
+ Tab titles are now a single line, cut at the width of the tab (but no ellipsis yet)
+ Groups now have the move cursor
+ Tab resizing now works, and is disabled when a tab is in a group
+ We now have a "new tabs" group that new tabs go into (created as needed)
+ New layout algorithm for tabs inside a group. It's not as space efficient as the last one, but the unused space is at the bottom rather than the right side, and in general I think it behaves more like people expect.
+ Groups now have a minimum width when resizing
+ If you drag the second to last tab out of a group and don't return it to that group, the group now dissolves.
+ When a tab gets below a certain size, its thumbnail and close box are hidden
+ When a tab's title gets below a certain size, it is hidden.
+ tabs now return to their proper size when you pull them out of a group
+ you can now nest groups inside of other groups (though all of the funky repercussions haven't been sorted out yet)
+ Added jquery.lint to revision-a. Haven't caught anything yet, but seems like it could be helpful.
+ More fiddling with the resizer css
--HG--
rename : browser/themes/pinstripe/browser/tabcandy/shared/resizer.png => browser/themes/pinstripe/browser/tabcandy/resizer.png
+ more work on groups pushing things out of the way
+ some steps toward having groups and tabs share an interface
+ more geometry: we now have a point class, and the rect class now has center and intersect routines
--HG--
rename : content/candies/zoomgroups/gfx/resizer.png => browser/themes/pinstripe/browser/tabcandy/shared/resizer.png
+ You can no longer launch into a tab by right clicking it
+ A group's close box now works
+ A group's title bar now works again (silly css misunderstanding)
+ Added a basic Rect object to utils.js, and a getBounds routine for retrieving the bounds of a DOM element
+ The Utils logging routines no longer expand functions (instead just saying that it's a function)
+ Moved the pretty new group title bar into the original and ian1 candies, updating the close style so it works in both the tab and group contexts
+ Added forceCanvasSize and unforceCanvasSize functions to tab mirrors
+ Used the new canvas size forcing functions to make the zoom in and out happen in high resolution. Not convinced it's an improvement, especially in the reverse zoom.
+ Brought additional changes from the original candy to the ian1 candy