3485 Commits

Author SHA1 Message Date
Adam Barth
7dfac2f1ca Merge pull request #718 from abarth/one_stack_trace
Uncaught exceptions get two stack traces
2015-08-20 12:13:44 -07:00
Adam Barth
7f0a28952a Uncaught exceptions get two stack traces
Now we print Dart_GetError only when we don't have a stack trace. Also, improve
the usability of the sky_shell command line tool by defaulting to "packages"
for the package-root and not crashing when we don't have a package-root until
we actually try to load a package. Finally, remove console spam when we fail to
bind the observatory port.

Fixes #689
2015-08-20 12:09:53 -07:00
Hans Muller
a5579f2d78 Merge pull request #716 from HansMuller/drawer-bug
Workaround for Drawer.initState() fails

This is a hack to avoid #715

In theory, the navigator's state should be updated in the event handler that triggers opening the drawer. It's not obvious how to do this, since we only build the Drawer when it's supposed to be visible (and once we're building it's too late).
2015-08-20 11:54:41 -07:00
Collin Jackson
46687c8ddd Merge pull request #713 from collinjackson/goalweight
Support for saving goal weight
2015-08-20 11:44:48 -07:00
Hans Muller
2ac2653da8 Workaround for Drawer.initState() fails 2015-08-20 11:25:59 -07:00
Adam Barth
5b7e927bdc Merge pull request #714 from abarth/stack_squish
Stack squishes positioned elements near the edge
2015-08-20 11:25:35 -07:00
Adam Barth
5d6e825519 Merge pull request #712 from abarth/rm_paint_frame
Remove RenderView.paintFrame
2015-08-20 11:25:12 -07:00
Adam Barth
bbdff819f1 Remove RenderView.paintFrame
We now use the repaint system to do all the painting. During initialization, we
set up a root layer that applies the device pixel ratio.

Fixes #706
2015-08-20 11:24:33 -07:00
Adam Barth
937b5a2c85 Stack squishes positioned elements near the edge
When laying out positioned children inside a stack, we should give them
unbounded constraints because if they draw outside of the stack, we'll just
clip them.
2015-08-20 11:15:15 -07:00
Collin Jackson
3002f296a2 Support for goal weight saving 2015-08-20 11:02:00 -07:00
Collin Jackson
af433c5552 Merge pull request #691 from collinjackson/settings_save
Add support for saving settings in fitness app
2015-08-20 10:57:31 -07:00
Collin Jackson
deb648c19c Split fitness app’s UserData into UserData and UserDataImpl 2015-08-20 10:54:48 -07:00
Adam Barth
26203b69f5 Merge pull request #711 from abarth/rm_paint_layer
Split up paintChildWithPaint into paintChildWithOpacity and paintChildWithColorFilter
2015-08-20 10:49:22 -07:00
Adam Barth
c89d7516b8 Split up paintChildWithPaint into paintChildWithOpacity and paintChildWithColorFilter
The compositor backends we're planning to use can't handle a general-purpose
paint layer and instead need lower-level operations.

Fixes #707
2015-08-20 10:28:23 -07:00
Adam Barth
5e6d425f3e Merge pull request #710 from abarth/const_key
Key should be const
2015-08-20 09:55:59 -07:00
Adam Barth
c16e03429c Key should be const
For great constness.

Fixes #693
2015-08-20 09:50:51 -07:00
Adam Barth
4a3894ed24 Merge pull request #709 from abarth/rename_root
Rename vestiges of `root`
2015-08-20 09:30:59 -07:00
Adam Barth
139c69dcbb Rename vestiges of root
We now use the term `renderObject`.

Fixes #708
2015-08-20 09:24:17 -07:00
Ian Hickson
4ffb56577a Merge pull request #688 from Hixie/layers
Improvements for Layers logic
2015-08-20 09:07:50 -07:00
Hixie
7d9f52479e Improvements for Layers logic
- Introduce some new Layer classes.
- Introduce paintChildWith* methods.
- Convert paint() methods to use paintChildWith* where appropriate.
- Fix paintBounds logic in Layer world.
- Introduce Layer.replaceWith(), so that it's clearer what's going on.
- Make RenderObjects have a ContainerLayer, not a PictureLayer.
- Introduce a PaintingContext.replacingLayer() constructor to highlight
  where we are creating a layer just to replace an older one.
- Rename some layer-related methods and fields for clarity:
   requiresCompositing -> hasLayer
   hasCompositedDescendant -> needsCompositing
   updateCompositing -> updateCompositingBits
   _needsCompositingUpdate -> _needsCompositingBitsUpdate
   markNeedsCompositingUpdate -> markNeedsCompositingBitsUpdate
- After updating compositing bits, if we find that the bit changed, we
  now call markNeedsPaint().
- Reorder markNeedsPaint() logic for clarity.
- Make flushPaint() start at the deepest node.
- Make _compositeChild() avoid repainting children with hasLayer that
  aren't dirty, instead it just reuses their existing layer.
- Made RenderView reuse the RenderObject layer instead of having its own.
- Made RenderView have hasLayer set to true.
- Add various asserts and comments.
2015-08-20 08:57:22 -07:00
Hans Muller
968ad3f4cc Merge pull request #700 from HansMuller/vertical-pageable-list
Handle changes to scrollDirection in ScrollableList et al

Changed the pageable_list.dart example: tapping on the toolbar changes
the scroll direction. This exposed some problems:

- Scrollable.syncFields() didn't update scrollDirection
- Viewport updated its RenderObject fields in the wrong order
- FixedHeightScrollable scrollDirection changes didn't update the scrollBehavior.

There may be similar problems with VariableHeightList and ScrollableViewport.
I will fix those in a separate CL.
2015-08-20 08:28:13 -07:00
Hans Muller
2e112e4317 Handle changes to scrollDirection in ScrollableList et al
Changed the pageable_list.dart example: tapping on the toolbar changes
the scroll direction. This exposed some problems:

- Scrollable.syncFields() didn't update scrollDirection
- Viewport updated its RenderObject fields in the wrong order
- FixedHeightScrollable scrollDirection changes didn't update the scrollBehavior

There may be similar problems with VariableHeightList and ScrollableViewport.
I will fix those in a separate CL.
2015-08-20 08:24:16 -07:00
Adam Barth
1f21e94837 Merge pull request #705 from abarth/support_file_urls
Teach the DartLibraryProviderFiles about file URLs
2015-08-19 23:57:18 -07:00
Adam Barth
6b2a1ee6b0 Teach the DartLibraryProviderFiles about file URLs
We don't want to support file URLs in general, but having them in the "files"
version of the library provider makes it easier to integrate with package:test.
2015-08-19 23:46:36 -07:00
Adam Barth
5dee1c7a80 Merge pull request #704 from abarth/scrollable_padding
Fix padding on infinite scrolling list
2015-08-19 19:09:14 -07:00
Adam Barth
20d37cb262 Fix padding on infinite scrolling list
Rather than using a Padding widget to provide padding along the scrolling axis,
we now just figure the padding into where we draw the items. This patch fixes
an issue where we would remove the first topmost item in a scrollable list too
early because we thought it was already off screen.

Fixes #697
2015-08-19 18:05:02 -07:00
Adam Barth
821410b123 Merge pull request #703 from Hixie/widgets
RenderObjectWrapper cleanup and new asserts.
2015-08-19 17:02:04 -07:00
Hixie
f35f1f7cc2 RenderObjectWrapper cleanup and new asserts.
- Clarify comment about RenderObjectWrapper.
- Assert that we never sync a RenderObjectWrapper with an instance of a different type.
- Assert that MultiChildRenderObjectWrapper subclasses always have multi-child RenderObjects.
- Assert that renderObject doesn't change identity when syncing.
- Make searchForOldNode() return void since the return value is ignored.
- Remove code that handled renderObject changing during sync.
2015-08-19 16:26:23 -07:00
Eric Seidel
667cfe5348 Merge pull request #698 from Hixie/flex
Implement 'stretch' for flexible items.
2015-08-19 13:29:33 -07:00
Hixie
f499cf5f43 Implement 'stretch' for flexible items. 2015-08-19 13:28:28 -07:00
Adam Barth
e92e62224c Rev pub package 2015-08-19 13:09:20 -07:00
Adam Barth
6850744169 Rev pub packages 2015-08-19 12:56:27 -07:00
Hans Muller
5b30e5d626 Merge pull request #695 from HansMuller/dismissable-drag-fling
Dismissable: correct handling of a drag that ends with a fling
2015-08-19 12:29:24 -07:00
Ian Hickson
2bb7fd4295 Merge pull request #694 from abarth/default_scroll_direction
Give default scroll directions
2015-08-19 12:23:56 -07:00
Ian Hickson
1f1c1af723 Merge pull request #696 from Hixie/scroll-fix
The ScrollDirection argument needs a default all the way through.
2015-08-19 12:23:22 -07:00
Hixie
f1754d987d The ScrollDirection argument needs a default all the way through.
Fixes the Stocks crash on startup.
2015-08-19 12:20:18 -07:00
Collin Jackson
47dc2cee19 Add support for saving settings in fitness app 2015-08-19 12:12:33 -07:00
Adam Barth
1cd547886b Give default scroll directions
Fixes tests.
2015-08-19 11:00:24 -07:00
Adam Barth
01209fec6e Merge pull request #692 from abarth/position_image
Center images in their bounds when painting
2015-08-19 10:57:02 -07:00
Adam Barth
d55c8be91a Center images in their bounds when painting
Eventually we'll plumb positionX and positionY out so that developers can
control them.
2015-08-19 10:56:34 -07:00
Adam Barth
1a933a7825 Add a default BoxDecorationPosition
Fixes the tests because previously we wouldn't draw any box decorations.
2015-08-19 10:50:41 -07:00
Hans Muller
43c9017882 Dismissable: correct handling of a drag that ends with a fling 2015-08-19 10:48:26 -07:00
Adam Barth
232d718d8e Merge pull request #690 from abarth/foreground_decoration
Add the ability to draw a foreground box decoration
2015-08-19 10:37:02 -07:00
Hans Muller
d2f7685826 Merge pull request #682 from HansMuller/dismissable-bug
Adds PageableList, other scrolling related changes and fixes

Adds PageableList, other scrolling related changes and fixes

- PageableList extends ScrollableList
One fixed width or height item is visible and centered at a
time. Fling and drag gestures scroll to the next/previous item.

- Scrollable.scrollTo(), Scrollable.scrollBy(), ensureWidgetIsVisible() API changed
The named animation parameter for these methods was replaced by
duration and curve. All of the methods now return a Future. The Future
completes when the scroll does.

This change eliminates the need for Scrollable to temporarily take ownership
of a ValueAnimation object (see #645).

- Using Future.then() instead of an AnimationPerformance status listener
In ensure_visible.dart _handleTap() uses ensureWidgetIsVisible() to
center the card roughly as before and then. When the implicit scroll
animation is complete, it changes the centered card's label font. The
change is made when the Future returned by ensureWidgetIsVisible()
completes.

- FixedHeightScrollable's itemHeight parameter is now itemExtent
If scrollDirection is ScrollDirection.vertical (the default) then itemExtent should
be the height of each item; otherwise it should be the width of each item.

Replaced _velocityForFlingGesture() in scrollable.dart with Scrollable._eventVelocity()
The original version clamped pixels/ms against pixels/sec constants. The new version
also deals with scrollDirection.

Plumbed scrollDirection though FixedHeightScrollable and ScrollableList

Both classes should now support horizontal scrolling.
2015-08-19 10:18:41 -07:00
Hans Muller
8e465b4dce Adds PageableList, other scrolling related changes and fixes
- PageableList extends ScrollableList
One fixed width or height item is visible and centered at a
time. Fling and drag gestures scroll to the next/previous item.

- Scrollable.scrollTo(), Scrollable.scrollBy(), ensureWidgetIsVisible() API changed
The named animation parameter for these methods was replaced by
duration and curve. All of the methods now return a Future. The Future
completes when the scroll does.

This change eliminates the need for Scrollable to temporarily take ownership
of a ValueAnimation object (see #645).

- Using Future.then() instead of an AnimationPerformance status listener
In ensure_visible.dart _handleTap() uses ensureWidgetIsVisible() to
center the card roughly as before and then. When the implicit scroll
animation is complete, it changes the centered card's label font. The
change is made when the Future returned by ensureWidgetIsVisible()
completes.

- FixedHeightScrollable's itemHeight parameter is now itemExtent
If scrollDirection is ScrollDirection.vertical (the default) then itemExtent should
be the height of each item; otherwise it should be the width of each item.

Replaced _velocityForFlingGesture() in scrollable.dart with Scrollable._eventVelocity()
The original version clamped pixels/ms against pixels/sec constants. The new version
also deals with scrollDirection.

- Plumbed scrollDirection though FixedHeightScrollable and ScrollableList

Both classes should now support horizontal scrolling.
2015-08-19 10:14:21 -07:00
Adam Barth
4d72533b9f Add the ability to draw a foreground box decoration
This feature lets you create effects similar to the "outline" property in CSS.
2015-08-19 09:36:40 -07:00
Ian Hickson
663d56cd28 Merge pull request #686 from domokit/Theme-Brightness
Pick a default theme brightness
2015-08-19 09:21:51 -07:00
Adam Barth
cf8ddc61b9 Merge pull request #687 from abarth/rev_playfair
Update playfair revision
2015-08-19 09:06:39 -07:00
Adam Barth
7e5b6c96c7 Update playfair revision
... and reattach fitness to the build. We detached fitness from the build
because it was seeing an old version of playfair that didn't work with the most
recent version of the Sky package.
2015-08-19 09:05:30 -07:00
Ian Hickson
5a4a674d6e Update README.md 2015-08-18 22:16:27 -07:00