Commit Graph

131 Commits

Author SHA1 Message Date
Michael Yoshitaka Erlewine
0449a02ad5 + Range.overlaps; bugfix: border trenches unfortunately had an inappropriately large activeRange... fixed. This fixes the long-distance border-snapping which unfortunately shipped with 0.4 2010-06-21 22:32:07 -04:00
Aza Raskin
1ecd755252 + Opacity was effected, so backed out my iQ change. 2010-06-21 18:05:46 -07:00
Aza Raskin
8527336f86 +merge 2010-06-21 17:34:52 -07:00
Aza Raskin
5a2c9050c0 + Fixed a bug in iQ whereby unadorend numbers in animations wouldn't get a "px" suffix.
+ This fixes the title's strange placement.
2010-06-21 17:34:34 -07:00
Ian Gilman
f3d7fae183 + Added attr to iQ, plus a unit test for it
+ Fixed click handler for expand button (it was allowing drag, and also it was on mousedown)
+ Added Ehsan and Raymond to the install.rdf contributors list
2010-06-21 17:27:12 -07:00
Aza Raskin
34acdb793e + More merging 2010-06-19 18:53:21 -07:00
Aza Raskin
a225660495 + Merge 2010-06-19 18:51:57 -07:00
Aza Raskin
0cb1b4b3bd -- Stacked Group Behavior --
+ 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
2010-06-19 18:46:39 -07:00
Michael Yoshitaka Erlewine
70bb1f6e7a Rect now computes its own xRange and yRange 2010-06-19 18:47:26 -04:00
Michael Yoshitaka Erlewine
7f4935a73c Range update 2010-06-19 17:37:36 -04:00
Michael Yoshitaka Erlewine
f9f1a26791 class Range 2010-06-19 16:58:51 -04:00
Ian Gilman
42b6ab9a7e + Fixed: Bug 570089 - Dragging northwest in tabcandy area creates zero-area tab group 2010-06-18 14:42:06 -07:00
Ian Gilman
e0dc68f5f2 + updated/added license blocks to all JavaScript files 2010-06-16 17:19:11 -07:00
Ian Gilman
6c31429006 + removed unused code and reorged remainder 2010-06-16 15:46:05 -07:00
Ian Gilman
555ae49cad + Cleaned up TabItem bounds getting and setting (the translation between our coordinates and the div style needs to be done carefully, in particular due to the padding in the tab style), and added a unit test for it 2010-06-15 15:55:47 -07:00
Ian Gilman
f5531e7c7b + mitcho's first pass at group snapping 2010-06-15 11:53:53 -07:00
Aza Raskin
1f42327eb9 + Added code for making zoom-in faster too
+ Made the code for the speed-ups on zoom-in/zoom-out more general
2010-06-11 17:57:02 -07:00
Ian Gilman
544e92d7fc + merge 2010-06-11 13:39:57 -07:00
Aza Raskin
5ba54d4fdf + A work-around for supporting transitions to and from 'auto' values of left, top, width, height, etc.
+ For more details see: https://bugzilla.mozilla.org/show_bug.cgi?id=571344
2010-06-10 14:35:15 -07:00
Ian Gilman
a0507cee74 + Added iQ.timeout, which wraps setTimeout in try/catch. Everything uses this now 2010-06-10 12:04:39 -07:00
Ian Gilman
0ae6da1b15 + Fixed z-index issue (and added a unit test for it)
+ Fixed some of the tab sizing issues (like when returning from a tab)
2010-06-09 17:30:02 -07:00
Ian Gilman
0d0b212d00 + We are entirely jQuery-free in revision-a!
+ You can now drop tabs on tabs
+ Resize works once again, but with iQ
2010-06-09 14:45:48 -07:00
Ian Gilman
5c5eb39367 + merge 2010-06-08 17:14:40 -07:00
Ian Gilman
ffc61066d5 + All dragging is now done with iQ
+ You can drop tabs onto groups (but no tabs on tabs yet)
+ Disabled resize for now
+ Fixed a bug with groups looking like they were deleted but not really being
2010-06-08 17:13:19 -07:00
Aza Raskin
d45cf7f793 + Tweaked the timing function to look prettier. 2010-06-08 13:42:27 -07:00
Ian Gilman
726d15b41d + documentation+ documentation+ documentation+ documentation+ documentation+ documentation+ documentation+ documentation+ documentation 2010-06-07 17:24:55 -07:00
Ian Gilman
74e39016c5 + All event handlers sent into iQ.fn.bind and its aliases are now automatically wrapped in a try/catch (the catch simply does a Utils.log with the error)
+ Fixed a couple of issues found with the new event try/catch
+ Converted Group.newTab over to iQ (was the last jQuery bit besides drag/drop/resize)
2010-06-07 17:20:15 -07:00
Ian Gilman
266229c78d + We're no longer using a style sheet for our CSS transitions (doing it directly in JavaScript instead)
+ Changed the iQ.fn.animate call signature: it now takes two arguments, a CSS object and an options object (with possible parameters: duration, easing and complete)
+ iQ.fn.animate now reliably calls back the completion routine (this was causing all sorts of trouble)
+ Reenabled TabMirror.pausePainting
+ Added animate.html, a test bed for playing with CSS transitions
2010-06-07 16:16:55 -07:00
Ian Gilman
da98d05805 + Temporarily added a bunch of logging for debugging purposes (commented out)
+ Fixed a bug with iQ.fn.one that caused it to not properly set "this"
+ Temporarily disabled TabMirror.pausePainting, which is causing problems at the moment (will fix soon)
2010-06-04 16:39:33 -07:00
Ian Gilman
ff909a029e + groups.js is now jQuery-free except for drag/drop/resize and the newTab routine
+ Added blur and focus event handlers to iQ
+ iQ.fn.data() now supports multi-objects
+ iQ.fn.fadeOut() now accepts a callback
2010-06-04 15:08:24 -07:00
Ian Gilman
ff165ad580 + Added hide and show to iQ
+ tabitems.js is now jQuery-free except for drag/drop/resize
+ Cleaned up usage of TabItems.getItemByTab and renamed it to getItemByTabElement to make it clearer
2010-06-04 12:34:03 -07:00
Ian Gilman
0cf14120d4 + Started on iQ for tabitems.js; now using iQ for TabItem.setBounds. We're not yet supporting the tabcandy bounce animation, so the tab movement boring now… to be fixed soon.
+ Added fadeIn and fadeOut to iQ
+ Added a simple test framework to stand in for mochitest, and gave it a couple of iQ tests
2010-06-03 17:11:13 -07:00
Ian Gilman
b38b652125 + Turned off -moz-crisp-edges
+ 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
2010-06-03 15:31:18 -07:00
Ian Gilman
ba8db3fb1f + Started work on iQ animations with CSS transitions; not ready yet
+ iQ event binding works now; converted over some of the usage in ui.js
+ Additional fixes to iQ's CSS function
+ Added position() and one() to iQ, as well as a number of bind() aliases
2010-05-28 15:56:00 -07:00
Ian Gilman
59c1535d08 + changed more uses of Utils.activeWindow to Utils.getCurrentWindow()
+ Generalized Aza's iQ.css('-moz-transform') fix
2010-05-28 13:54:29 -07:00
Ian Gilman
08a5e5117b + removed sizzle reference from iQ.js license block, as it doesn't look like we'll be using any portion of jQuery that has sizzle (also, testing my ability to push to mozilla hg) 2010-05-28 12:20:02 -07:00
Aza Raskin
f90b12b086 + Fixed a bug in iQ where CSS of type -moz-transform wasn't getting set.
+ Made stacks a bit prettier.
2010-05-27 19:17:01 -07:00
Ian Gilman
75d639f51d + Items.js is now jQuery-free
+ Just a little refactor for the "reset" code (also removed from the dev menu)
+ Started on event handling for iQ
2010-05-27 17:25:14 -07:00
Ian Gilman
79769aab22 + jQuery is completely out of the content/js files we're using in revision-a!
+ The function you give to TabMirror.customize now takes a Mirror rather than a jQuery object
+ iQ is coming along. I tried to put asserts in for all the standard functionality that's missing (and that we might not need, but that someone used to jQuery might expect). I've also been adding Natural Docs comments, to give a sense of the scope+ Got rid of TabCanvas.animate(), which we haven't used in a while.
+ No longer including switch.js, which we also haven't used in a while
2010-05-26 17:04:56 -07:00
Ian Gilman
4c42deb59c + Started iQ, replacement for jQuery
+ Converted Utils.js to use iQ instead of jQuery
+ Removed the use of Firebug lite
+ Removed reference to jQuery.lint
2010-05-25 17:04:59 -07:00
Ian Gilman
48696fd4af + New "new tabs" group behavior and position
+ New "new tab" button position for the  "new tabs" group
+ Misc bug fixes
2010-05-24 17:14:10 -07:00
Ian Gilman
8b598da3fa + Applied Ehsan's sessionstore patch
+ Various related fixes
+ Added Utils.log2, which logs directly to the window
2010-05-21 15:44:15 -07:00
Ian Gilman
b0b5b85b38 + this marks the checkin where Ian has switched to Minefield and is no longer paying attention to 3.6
+ the TabCandy button/hot key now works to make a separate TabCandy for each window
+ Fixed a number of startup issues relating to multiple tab candies running at the same time
2010-05-20 16:56:19 -07:00
Ian Gilman
6f31597811 + Feature: When returning from a tab that is in a stack, arrange it at the top of the stack (but don't change its order in the children list)
+ TabItems now keeps track of all TabItem objects manually; we were using $('.tab:visible'), but this was causing bizarre behavior in certain cases
2010-05-18 17:08:45 -07:00
Ian Gilman
5beca80f1a + applied Dietrich's second patch; Listing candies (on the home page) now works in both 3.6 and minefield 2010-05-13 15:38:10 -07:00
Ian Gilman
e5edc89fe3 + Fixed: Quit Firefox with TabCandy open then open Firefox again. Your tabs and and navbar get hidden.
+ Fixed: If you quit tab candy (but not the browser), all of the tabs need to be reshown.
+ Starting firefox with tab candy selected now hides the tab bar
+ Utils.activeTab now returns a Tabs tab, rather than a raw tab
2010-05-13 15:14:08 -07:00
Ian Gilman
7bda5a2eb1 + patch from Dietrich to get Tab Candy running in Minefield (disables listing of candies) 2010-05-13 10:37:50 -07:00
Ian Gilman
f0b26c0e62 + Trying -moz-crisp-edges… doesn't seem to improve speed much on 3.6, and looks worse
+ 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
2010-05-11 17:22:06 -07:00
Ian Gilman
2f4c6d407f + Fixed an extremely subtle bug that would cause groups that you hadn't manually resized to start falling apart after a refresh.
+ Added sanity checks on data going to and from storage (still some work to be done there); if the check doesn't pass, the data isn't loaded/saved
+ Added a manual save option to the dev menu
+ Added Utils.isNumber, as well as standalone isRect and isPoint routines
+ Miscellaneous double checks and assertions
2010-05-11 12:03:31 -07:00
Ian Gilman
ce008121e7 + The "new tabs" group can now not be renamed or closed, but it can be moved and resized. Updated how item locking works to accommodate this.
+ Groups now have some extra space at the bottom to accommodate for the "new tab" button
+ Items now unsquish after another item is closed, and on resize. This should cut down on random-seeming unsquishes later.
2010-05-07 15:49:54 -07:00
Aza Raskin
b54a6af989 + You can now click-n-drag in empty space to create a group. If the group is too small, it will animate away (the cancel action) and if they group contains orphaned tabs, lo', it pulls those tabs into itself.
+ Changed the behavior of removing the penultimate tab from a group. The group no longer goes away until the very last tab is removed.
+ Added some new rect utilities for finding if a point/rect is inside another rect
2010-05-06 16:28:10 -07:00
Ian Gilman
ba3d5a4442 + Tabs dropped on stacks now appear on top
+ Misc fixes
+ We now show chrome tabs (but not the tab candy tab)
+ When the browser first starts up, it takes it a while for the tabs to all get their correct URLs; we now properly deal with this when reconnecting them to their groups
+ Added a "dev" menu in the upper left for various debugging features. Nothing much there so far
2010-05-03 15:32:11 -07:00
Aza Raskin
3ecb849430 + We use to show tabcandy whenever we closed any tab. We now only focus tabcandy when the last tab in a group is closed.
+ TODO: Ideally, we should have an animation of the last tab be zoomed out into the tabcandy interface, and then that tab fading away along with the group (if the group is unnamed).
2010-04-30 23:50:43 -07:00
Ian Gilman
6e0360c552 + Fixed a bug making it so you couldn't close tabs that were just .mov
+ 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
2010-04-30 17:24:03 -07:00
Aza Raskin
d38c5a2d65 + Added Math.tanh by way of utils
+ Added a minimum and maximum scale
2010-04-28 13:17:43 -07:00
Ian Gilman
8a4ec46e48 + Point's constructer now accepts a point to copy
+ Added the close box back to the "new tab" group; it doesn't close the group, but it closes all the tabs. Seems like a useful feature, though maybe it shouldn't look like all the other close boxes
+ Groups no longer auto-close when all items are removed, if they're named
+ You can now close an empty group
+ Fixed bug with dragging tabs out of a group
+ Resizing the window now works, even if you've closed tab candy
+ When unsquishing, groups aren't forced into tab aspect ratio
2010-04-26 16:48:46 -07:00
Ian Gilman
0c2b12a943 + Fixed an unfortunate bug in Rect copying
+ Now reconstituting groups from saved file
+ Now saving and reconstituting tabs
+ Fixed start up problem when there's only one tab
2010-04-23 17:11:06 -07:00
Ian Gilman
c402d1ebd7 + Updated Utils logging to deal gracefully with object properties you can't access (for permissions reasons, for instance)
+ Added storage.js… starting serialization
+ Disabled autoscroll on drag; the window should be locked down now
+ Fixed Aza's "cute little bug"; small tabs used to scoot up and left
2010-04-22 14:26:57 -07:00
Ian Gilman
da01407274 + The "new tab" group no longer gets pushed away by the other items
+ Started work on Squish!™ code, not ready yet, so disabled
2010-04-16 17:21:03 -07:00
Ian Gilman
ffd33c59ba + The tab bar toggle now has a down arrow when clicking on it will pull the tab bar down and an up arrow when it will push the tab bar up (was reversed)
+ 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
2010-04-16 15:09:23 -07:00
Ian Gilman
4d1893df9e + Removed unnecessary margin and padding from tabs and groups (was messing up layout)
+ 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.
2010-04-12 17:20:35 -07:00
Ian Gilman
deeb523419 + Put Natural Docs (http://www.naturaldocs.org/) -friendly comments in items.js
+ Added a doc folder that contains generated documentation
+ Now pointing to the doc folder from the Tab Candy home page
+ The Tab Candy home page is now accessible from the Candy drop-down
2010-04-08 16:36:11 -07:00
Ian Gilman
3313e3210f + Groups lose their resize handle when they get dropped into a group (and get it back when they get pulled out)
+ Now properly handling z order for dragging and nesting groups
+ If a group is the last item inside a group, closing it now closes the outer group as well
+ Fixed bug causing the closing of unrelated tabs to destroy groups
2010-04-02 17:33:06 -07:00
Dan Walkowski
d75be64c1d ZOMG MERGE. You HG Bastard. 2010-04-01 17:59:17 -07:00
Dan Walkowski
b3d0e2087e merge 2010-04-01 17:26:51 -07:00
Ian Gilman
214896b871 + We're now keeping track of item locations independently of their divs
+ Renamed Group._container to .container (which it now inherits from Item)
+ Added Item.debug flag which turns on rectangles for debugging item locations
+ further unified dragging tabs vs dragging groups
+ Further unified the Group and TabItem objects under Item
2010-04-01 17:20:59 -07:00
Dan Walkowski
971f4d7208 added drop feedback when creating a new group, which looks like a group, and then animates into the final arranged shape. 2010-04-01 17:19:21 -07:00
Ian Gilman
039a032e58 + font size for tab names now scales properly
+ 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)
2010-03-31 17:24:16 -07:00
Ian Gilman
0bdae470ed + First working draft of tabs and groups getting pushed out of the way by the creation of a new group
+ The grid feature now removes all the tabs from their groups beforehand; it doesn't restore tab sizes properly yet
+ You can now rearrange tabs inside a group
+ More geometry:
++ The Rect constructor now accepts either coordinates or another Rect
++ Rect.inset now accepts either coordinates or a Point
++ New functions: Rect.offset and Rect.equals
2010-03-26 11:34:09 -07:00
Ian Gilman
5f7dadf815 + moved groups.js and resizer.png to shared locations
+ 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
2010-03-25 17:22:45 -07:00
Ian Gilman
ba6b54c553 + Removed the margin from the tabs; we need to handle buffers more explicitly
+ 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)
2010-03-24 16:54:48 -07:00
Ian Gilman
09c99ac058 + Removed search box
+ It's no longer possible to accidentally launch into a tab by dragging the mouse and ending up on a tab. Same for close boxes
+ It's no longer possible to add a tab to a group twice (by dragging it around inside the group)
+ When a tab inside a group is closed, it's removed from the group. If it's the last in the group, the group goes away
+ Refactored mirror code to make mirror objects first-class citizens
+ Added a utility routine for determining if an object is a jQuery object (couldn't find one in jQuery itself)
2010-03-24 14:38:23 -07:00
aza@More-Better-Internet.local
12dc7941e2 Merge. 2010-03-16 22:32:05 -07:00
aza@More-Better-Internet.local
e1f9a47f4f Adds Utils.ilog(...) for "interactive log".
The first time you use the function, it embeds Firebug Lite and then uses that console. This makes it easy to introspect objects, etc. All-around good stuff.
2010-03-16 22:25:00 -07:00
Ian Gilman
aee81cbba8 + More major cleanup in mirror.js (especially in the painting code)
+ New tabs in the stacks candy now find an empty hole rather than piling up at the top
+ The stacks candy now has a "site" feature (upper right) that groups the tabs by domain
+ TabMirror now has a feature to allow pausing paint updates. This allows you to fly things around the screen without getting stutter from paint calls. The stacks candy is currently the only candy that takes advantage of this.
+ The stacks candy was not visually deselecting a group that had been lassoed once the menu went away; it is now.
+ Added assert() to Utils
2010-03-15 17:15:27 -07:00
Ian Gilman
6d293513c2 + Added getMilliseconds() to Utils
+ Utils.error() now identifies the error as coming from tabcandy
+ Added a getMilliseconds() to mirror.js (for some reason, it wasn't liking the one in Utils) to replace the use of new Date(), which doesn't work in all situations
+ Added a heartbeat to TabMirror, where all painting happens now. This allows us to control when and how frequently painting happens, throttling when there are a lot of items on the screen.
+ Additional clean-up in TabMirror
2010-03-11 16:14:50 -08:00
Ian Gilman
8bb1b6e08e + Added a "close" feature to the group menu in the stacks candy
+ Added a tab() feature to window.Tabs, to get a tab object from one of the tab's elements
+ Stacks now pile up directly on top of each other in the stacks candy (rather than being offset a little)
+ Added Utils.isRightClick() for weeding out right clicks in mousedown
+ The Lasso now only starts for left clicks, not both left or right
2010-03-09 14:21:08 -08:00
Ian Gilman
27e6789de9 + Just debugging (adding logging) 2010-03-05 17:21:38 -08:00
Ian Gilman
fff7d059ef + Major reorg: moved all visualizations into "candies" folder, moved core js files into "core" folder, and js files shared by a couple of visualizations into "shared" folder
+ the top level index.html now automatically grabs all the different visualizations and lists them
+ Added a visualization switcher that can be dropped into any visualization; drop down in the upper left of the window
+ The Utils routines log(), trace() and error() now take in any number of parameters. If a parameter is an object, its first level is automatically expanded
+ Fixed lasso in the "original" visualization
2010-03-05 15:14:10 -08:00
Ian Gilman
89087198c6 + Got rid of Utils.logger and replaced it with Utils.log, Utils.trace and Utils.error
+ Fixed "new tabs create 2 thumbnails" bug
2010-03-03 17:21:44 -08:00
aza@70-7-150-98.pools.spcsdns.net
0ccd80e599 First commit. 2010-02-24 01:47:55 -08:00