Commit Graph
82 Commits
Author SHA1 Message Date
Nathan Sobo e0fdc7d0aa Eliminate PaintContext 2023-09-11 09:00:59 -06:00
Nathan Sobo a24d94cfda Eliminate LayoutContext 2023-09-11 08:47:00 -06:00
Nathan Sobo ebf8b32811 Checkpoint 2023-09-08 16:25:10 -06:00
Nathan Sobo 53a50b8df4 Move refreshing to window 2023-09-08 13:27:29 -06:00
Nathan Sobo 48d3e2d9b9 Move views_to_notify_if_ancestors_change to Window 2023-08-29 21:58:44 -06:00
Nathan Sobo 2e7356a53e Store new_parents on Window instead of layout context 2023-08-29 21:43:48 -06:00
Mikayla 707ca34f19 Merge branch 'main' into disclosable-component 2023-08-23 16:30:27 -07:00
Nathan Sobo d375f7992d Merge branch 'main' into divs 2023-08-22 16:35:56 -06:00
Mikayla e946b0a2ec Finish building out adapters and names
Document core traits
Add start for a component storybook
2023-08-19 14:40:05 -07:00
Mikayla bd3ab82dac Add disclosable components into channels
Rename components to more closely match their purpose
2023-08-19 05:18:53 -07:00
Mikayla 2d37128693 Actually get it compiling, omg 2023-08-18 19:02:27 -07:00
Mikayla 3178adefde WIP: Add disclosable channels 2023-08-18 18:11:05 -07:00
Mikayla 8630557ece Add action button component for rendering the search options 2023-08-17 15:30:40 -07:00
Mikayla 2f16147055 Fix dock resizing 2023-08-16 19:47:54 -07:00
Max Brunsfeld 4ea8b8292c Introduce channels and move collab popover contents to a collaboration panel (#2828)
### Summary

This PR introduces channels: a new way of starting collaboration
sessions. You can create channels and invite others to join them. You
can then hold a call in a channel, where any member of the channel is
free to join the call without needing to be invited.

Channels are displayed in a new panel called the collaboration panel,
which now also contains the contacts list, and the current call. The
collaboration popover has been removed from the titlebar.

![Screen Shot 2023-08-15 at 9 25 37
AM](https://github.com/zed-industries/zed/assets/326587/0f989dea-7fb7-4d50-9acd-25c8f1c30cd1)


For now, the channels functionality will only be revealed to staff, so
the public-facing change is just the move from the popover to the panel.

### To-do

* User-facing UI
  * [x] signed-out state for collab panel
  * [x] new icon for collab panel
  * [x] for now, channels section only appears for zed staff
* [x] current call section styling
(https://zed-industries.slack.com/archives/C05CJUNF2BU/p1691189389988239?thread_ts=1691189120.403009&cid=C05CJUNF2BU)
* [x] Channel members
* Channels
  * [x] style channel name editor
* [x] decide on a special "empty state" for the panel, when user has no
contacts
* [x] ensure channels are sorted in a consistent way (expose channel id
paths to client)
  * [x] Figure out layered panels UX
  * [x] Change add contacts to be the same kind of tabbed modal
* [x] race condition between channel updates and user fetches
(`ChannelStore::handle_update_contacts`)
* [x] race condition between joining channels and channel update
messages `collab::rpc::channel_updated`)
* [x] don't display mic as muted when microphone share is pending upon
first joining call

Release Notes:

- Moved the collaboration dropdown into its own panel.
- Added settings for disabling the AI assistant panel button.
- Switch to lazily initializing audio output sources
(https://github.com/zed-industries/community/issues/1840,
https://github.com/zed-industries/community/issues/1919)
2023-08-16 11:03:53 -07:00
Mikayla 7d3ffae47d move component into gpui 2023-08-15 15:44:59 -07:00
Mikayla 111e17b220 Merge branch 'main' into collab-panel 2023-08-15 03:25:45 -07:00
Mikayla e5eed29c72 Add components example
Re-arrange generics on mouse event handler
Add TypeTag struct for dynamically tagged components
2023-08-15 03:06:43 -07:00
Nathan SoboandMikayla Maki 740b105330 Merge branch 'main' into taffy
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-14 13:50:21 -06:00
Nathan Sobo 7756497933 Simplify adapter 2023-08-14 09:26:35 -06:00
Mikayla a90c0e0326 Merge branch 'main' into collab-panel 2023-08-12 12:44:22 -07:00
Nathan Sobo 5e36040533 Put a Taffy layout engine on window 2023-08-12 00:58:11 -06:00
Mikayla 7970406694 Add a compile test for the element derive 2023-08-11 18:00:12 -07:00
Piotr Osiewicz ffffbbea1f chore: use Cow instead of String for tooltips (#2838)
A QoL change to align `Tooltip` with other elements like `Label`
Release Notes:

- N/A
2023-08-11 15:29:55 +02:00
Nathan Sobo 0bf607cd2d WIP 2023-08-10 10:26:48 -06:00
Mikayla 99daa73325 Merge branch 'main' into collab-panel 2023-08-09 10:37:22 -07:00
Nathan Sobo 1dfde8eab5 WIP 2023-08-01 20:53:15 -06:00
Max Brunsfeld 969ecfcfa2 Reinstate all of the contacts popovers' functionality in the new collaboration panel 2023-07-28 13:24:43 -07:00
Mikayla Maki 7f9df6dd24 Move channels panel into collab and rename to collab panel
remove contacts popover and add to collab panel
2023-07-28 13:24:42 -07:00
Nathan Sobo 480401d65d WIP 2023-07-27 18:23:23 -06:00
Nathan Sobo c602d98680 WIP 2023-07-26 13:34:57 -06:00
Nathan Sobo c48d8af204 Merge branch 'paint-context' into cells 2023-07-25 17:36:05 -06:00
Nathan Sobo 1b03c5d69c Pass PaintContext to Element::paint
I want to use this on another branch, but it's a sweeping change,
so this prepares the ground for it. This can always be reverted if
it doesn't work out.
2023-07-25 17:32:31 -06:00
Nathan Sobo 54a7419fa2 WIP 2023-07-24 23:27:14 -06:00
Nathan SoboandDerek Briggs 248f5dfd4b Get a red box on screen
Co-Authored-By: Derek Briggs <derek.briggs@me.com>
2023-07-14 17:03:07 -06:00
Nathan Sobo 0db8f681ba WIP 2023-07-14 11:58:43 -06:00
Nathan Sobo bede668b14 Add a derive macro for Element
To turn any struct into a composite element, you can implement a render method
with the following signature:

fn render<V: View>(&mut self, view: &mut V, cx: &mut ViewContext<V>) -> AnyElement<V>;

Then add #[derive(Element)] to the struct definition.

This will make it easier to introduce higher-level components that are expressed in
terms of other elements.
2023-06-25 07:51:50 -06:00
Antonio Scandurra 146809eef0 Merge branch 'main' into panels 2023-05-22 14:10:17 +02:00
Antonio Scandurra adf361b374 Implement zooming for panes and docks 2023-05-16 11:49:48 +02:00
Nathan Sobo ba50b35de6 wip 2023-05-13 14:34:09 -06:00
Mikayla Maki 41bef2e444 Refactor out git status into FileName component
Integrate file name component into the editor's tab content
2023-05-13 02:26:45 -07:00
Nathan Sobo bd795d7607 Preserve panel size when re-docking between left and right 2023-05-12 15:15:11 -06:00
Nathan Sobo 214354b4da Make panels independently resizable 2023-05-12 09:44:14 -06:00
Antonio Scandurra 040cc4d4c3 Allow notifying views when the ancestry of another view is outdated 2023-05-03 19:25:00 +02:00
Antonio Scandurra 7f345f8bf5 Separate Window::build_scene into layout and paint 2023-05-03 12:18:16 +02:00
Antonio Scandurra 794446bf8b Move debug_elements to AsyncAppContext
Previously, `debug_elements` was available on `WindowContext`. If that
method was called while having a borrow out to a view, it would panic because
the view would already have been borrowed.

By moving it to an `AsyncAppContext` we ensure the method can't be called while
a view is being used.
2023-05-02 11:09:40 +02:00
Antonio Scandurra 4c1cba6def Remove unnecessary Element impl for RootElement 2023-05-02 10:09:57 +02:00
Nathan SoboandMax Brunsfeld fe492eacbf Refine naming of element-related types and traits
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 13:06:37 -06:00
03619dfa55 Rename Drawable::boxed to into_element and make containers generic
Multi-element are now generic over any drawable child, which can be converted
into an element.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 12:43:19 -06:00
Nathan Sobo 5514349b6b Add Component elements 2023-04-18 22:49:06 -06:00