Commit Graph

353 Commits

Author SHA1 Message Date
Michał Wawrzyniec Urbańczyk
8021109d8c
Build script fixes & improvements (#8285) 2023-11-23 21:19:31 +01:00
Dmitry Bushev
4b3ba78b52
Add shortcuts to start and stop the backend profiling (#8358)
close #8329

Changelog:
- add: `cmd`+`shift`+`,` and `cmd`+`shift`+`.` shortcuts to start and stop the backend profiling. Profiling data is stored on disk.
2023-11-23 15:31:17 +00:00
James Dunkerley
ad95dc9815
Fixes for Table viz (#8102)
- Fixes issue with `to_display_text` on `Date_Time`. Now a reversible format.
- Adjusted the auto width code on table so it works.
- Manually sized columns should remain fixed size.
- Enable Excel range style selection in table.
- Removed page support as not implemented yet.

# Important Notes
Will need to apply to Vue based viz at some point as well.
2023-10-19 08:22:23 +00:00
Ilya Bogdanov
3b6f13c7b9
Create and edit nodes in temporary ast nodes with execution context disabled (#7779)
Closes #6417

Creating and editing nodes with a component browser does not edit the node in place but creates a temporary AST node with the execution context switch. When the node is committed, the original AST is replaced by the new one, and the temporary node is removed.

This solves several issues:
1. Previewing suggestions or editing nodes should no longer produce unwanted side effects, as the edited node expression is always evaluated with the output context being disabled.
2. Errors no longer propagate down the graph when you edit the node. The edited node has no outputs connected. Inputs behave normally, though.
3. Undo-redo and editing abort is much simpler. To abort editing, remove the temporary node.

https://github.com/enso-org/enso/assets/6566674/8d38e6bc-a4de-4e69-8d48-52d9b45b6554

# Important Notes
The code is a bit awkward in a few places. This is the consequence of previous architecture.
2023-10-06 14:56:09 +00:00
Ilya Bogdanov
022a5b0d1b
Make the code editor editable again (#7844)
Fixes #7474

Again, a quite complicated issue. The code editor was broken by https://github.com/enso-org/enso/pull/7167 for a few reasons:
1. The text component's shortcuts depend on the `focused` FRP endpoint, which is controlled by `deprecated_(de)focus` inputs. `focused` output was not changed by the code editor `model.focus()` call. (we still use `deprecated_focus` for all other components)
2. `focus()` FRP input was added to the text component but never triggered. It's too easy to confuse it with the `focus()` method of the `object::Instance` (Deref is evil!)
3. The graph editor handles clicks on the background by `blur_tree()`, effectively blurring any focused element in the application. But clicking on code editor (to focus it) also causes a click on the background! So we focus the code editor, and then handle the background click, defocusing it from the graph editor's point of view. It allows graph editor to open CB on <kbd>Enter</kbd> while the code editor is still active.

I solved (3) by disallowing CB opening while code editor is visible. Not ideal, but I guess it solves the issue.

Do you think the other solution is possible – to add some overlay for the code editor and avoid triggering `blur_tree` when clicking on it? That won't work because you still can't defocus the code editor using the new API, so it will always be focused.

So we have a situation when half of the app uses the new focus system, another half uses the old one, and none works properly.


https://github.com/enso-org/enso/assets/6566674/3a0d36ed-4d50-4606-9486-272fbd5d9cb7
2023-10-05 08:40:52 +00:00
Michał Wawrzyniec Urbańczyk
421d6e2a19
Fixes for AG Grid License handling (#7914)
Fixed issues in passing our AG Grid license key during the CI builds.
2023-09-29 12:56:12 +00:00
Adam Obuchowicz
d139449bb6
Add ArgumentInfo to infix argument (#7530)
Adds proper argument information to span tree. Fixes #7107

https://github.com/enso-org/enso/assets/3919101/f7773412-5f0f-46c9-9848-2dc653aee882

# Important Notes
Nodes where the left operand (target) is missing still does not work, because the engine still does not send us any method pointer (perhaps due to its internal design).
2023-09-25 14:24:56 +00:00
Paweł Grabarz
42a7cb2d23
[Gui2] Opening projects and language server connection (#7813)
# Important Notes
- Binary LS endpoint is not yet handled.
- The parsing of provided source is not entirely correct, as each line (including imports) is treated as node. The usage of actual enso AST for nodes is not yet implemented.
- Modifications to the graph state are not yet synchronized back to the language server.
2023-09-22 03:43:25 +00:00
Hubert Plociniczak
1ee3d8f4f0
Rename Decimal to Float (#7807)
Implements #6889.
2023-09-14 15:01:30 +00:00
Ilya Bogdanov
51491c1fa1
Fix visualization closing when cmd shortcut is pressed (#7798)
Fixes #7457

The issue was caused by the FRP logic that assumed we wanted to close the preview even if it wasn't opened in the first place.

https://github.com/enso-org/enso/assets/6566674/ceb4996b-c878-4ff1-8bca-7d2a0b817769
2023-09-13 21:52:26 +00:00
Ilya Bogdanov
6fd2295cc6
Do not lose focus when clicking fullscreen visualization (#7782)
Fixes #7524

The issue was caused by the fact that fullscreen visualization does not have hover area, so clicking anywhere was deactivating it because we used `deselect_click = scene.on_event::<mouse::Down>();`


https://github.com/enso-org/enso/assets/6566674/08a463f3-764f-4b2c-b41f-13521f5cfc56
2023-09-12 10:28:13 +00:00
Ilya Bogdanov
f6693a844c
Forbid node pasting when editing (#7768)
Closes #7759. The reason was a missing condition in the shortcut setup.

https://github.com/enso-org/enso/assets/6566674/d4475d48-f459-4dd9-ba9b-42e8110b541c
2023-09-11 08:18:29 +00:00
Michał Wawrzyniec Urbańczyk
03aebc136e
wip (#7745) 2023-09-08 11:26:39 +02:00
Ilya Bogdanov
66bd08ccea
Use only a single node color (blue) (#7764)
Closes #7456 by using a *completely random* color for all nodes.

Proof of randomness, ensured with modern LLM:

<img width="720" alt="Screenshot 2023-09-07 at 1 46 41 PM" src="https://github.com/enso-org/enso/assets/6566674/fc3fecd8-c5f6-4167-a646-973c4efedc18">


<img width="1380" alt="Screenshot 2023-09-07 at 1 43 44 PM" src="https://github.com/enso-org/enso/assets/6566674/0b4a91c7-fac2-4bab-921f-39861f891898">

# Important Notes
We can peek any other color if you'd like.
2023-09-07 12:50:12 +00:00
Ilya Bogdanov
fff1386c6d
Fix new node position (#7680)
Closes: #7309

The changed origin of the visualization container caused the issue. Now, the origin is at the top left corner of the visualization, and bounding box abstraction expects the origin at the bottom left. Despite the comments in the code, the bounding box is designed to work with bottom-left origin only.


https://github.com/enso-org/enso/assets/6566674/273abfaa-45b6-4374-8d4c-3b8c4e2c1fc2
2023-09-06 14:20:45 +00:00
Ilya Bogdanov
1f8675a031
Fix atom types in dropdowns. (#7670)
Fixes #7468

The fix is pretty simple: we reuse the existing functionality for importing stuff and generating expressions. It fixes issues with `Nothing` or `Report_Unmatched` types.


https://github.com/enso-org/enso/assets/6566674/4e7addf9-2175-4f2a-a571-4ef823de5cb0

While debugging, I found it easier to work with a suggestion database when exported to some external format. Hence, I implemented serde serialization support for database entries and also a new debug shortcut <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>u</kbd> to dump all entries to the console.
2023-09-05 14:51:33 +00:00
Paweł Grabarz
226c5cf7c7
Revert "Handle wasm panics, display a message and allow a restart (#7507)" (#7708) 2023-08-31 13:30:01 +02:00
Ilya Bogdanov
b49cc25d38
Copy-pasting nodes (#7618)
Closes #6261

- Adds support for copy-pasting nodes with `cmd + C` and `cmd + V` shortcuts.
- Only a single, currently selected node will be copied. Adding support for multiple node copies seems easy, though (but was out of the scope of the task).
- We use a custom data format for clipboard content. Node's metadata is also copied, so opened visualizations are preserved. However, the visualization's size is not preserved, as we do not store this info in metadata.
- For custom format to work, we use a pretty new feature called [Clipboard pickling](https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-pickling/explainer.md), but it is available in Electron and in most browsers already.
- Pasting plain text from other applications (or from Enso, if the code is copied in edit mode) is supported and is currently enabled. There are some security concerns related to this, though. I will create a separate issue/discussion for that.
- Undo/redo works as you expect.
- New node is pasted at the cursor position.


https://github.com/enso-org/enso/assets/6566674/7a04d941-19f7-4a39-9bce-0e554af50ba3
2023-08-30 13:04:21 +00:00
Paweł Grabarz
c834847c48
Handle wasm panics, display a message and allow a restart (#7507) 2023-08-30 13:31:08 +02:00
Michael Mauderer
e21c5b1427
Replace old breadcrumb implementation in the top bar with new breadcrumb component. (#7619)
Implements #7312:  Replace the legacy code used for the project breadcrumbs and update them to the new design.

![Peek 2023-08-21 13-40](https://github.com/enso-org/enso/assets/1428930/32d8f066-c80d-4915-8133-6dbc1edf70b3)

![Peek 2023-08-21 13-41](https://github.com/enso-org/enso/assets/1428930/a1e5aa7e-8776-4438-9c1e-80ac1afd0292)

# Important Notes
There is some ugly code around updating the theme. This should be fixed by providing a better mechanism to re-use components with different styles. The current mechanism assumes that a component will use the same theme for every instance. Implementing this is out of scope for this task, though.
2023-08-24 22:01:46 +00:00
Michael Mauderer
a205ad79d3
Add double-arrow cursor for visualization resizing (#7644)
This commit introduces a new cursor shape, a double arrow, to be displayed during the hover over the resize grip in the graph editor's visualization component. The rotation of the double arrow depends on whether the cursor is to the left or right of the dividing line from the top left to bottom-right corner of the grip. This gives a more intuitive visual cue to users about the direction of resizing.

![Peek 2023-08-23 13-57](https://github.com/enso-org/enso/assets/1428930/d0f19205-85f3-4046-b3ef-7540030c9ab5)
2023-08-24 22:01:23 +00:00
Michael Mauderer
dbd6bff0bc
Increase visualization offset to improve ease of creating a connection. (#7620)
Fixes #7365

![Peek 2023-08-21 14-32](https://github.com/enso-org/enso/assets/1428930/64018a5b-46a2-4e91-8e87-77e091c43a73)
2023-08-24 17:01:41 +00:00
Dmitry Bushev
5dc2c4c5fd
Notification about the project rename action (#7613)
close #7604

After moving the rename action to the dashboard, IDE is unaware of the new project name. PR implements a new `refactoring/projectRenamed` notification that is sent from the server to clients and informs them about the changed project name.

# Important Notes
https://github.com/enso-org/enso/assets/357683/7c62726d-217e-4e69-8e48-568e0b7b8c34
2023-08-22 11:32:46 +00:00
Kaz Wesley
1dfdee5808
Use Enso Font (#7516)
Use the new Enso Font; also change the anti-aliasing logic to be based on device pixel ratio, rather than platform. This will improve the clarity of font rendering on Windows/Linux machines with high pixel densities.

Design reference:

![image](https://github.com/enso-org/enso/assets/1047859/934ec9ac-52c3-4a81-a9f9-143378ecb658)

Tested on various combinations of DPR/platform:

OS X, `devicePixelRatio` = 2 (should look similar to how we were already rendering *mplus1* on OS X):
<img width="1440" alt="Screenshot 2023-08-07 at 5 46 11 PM" src="https://github.com/enso-org/enso/assets/1047859/2fdf251a-ba5e-426f-b6c4-194347a9cee4">

Windows, `devicePixelRatio` = 1.25 (should look similar to how we were already rendering *mplus1* on this platform/DPR):
![image](https://github.com/enso-org/enso/assets/1047859/55c4a129-4fff-4a9b-8e55-51a5d206e659)

Linux, `devicePixelRatio` = 1 (should look similar to how we were already rendering *mplus1* on this platform/DPR):
![image](https://github.com/enso-org/enso/assets/1047859/c5ac61f0-e3c5-43ca-8ee7-e1e04e84d35e)

# Important Notes
Style changes:
- Use the Enso Font for code in Rust, replacing the DejaVu fonts.
- Use the Enso Font in HTML: code in documentation, and error visualizations.
- Change SpanWidgets from Bold to Extra Bold, to match the design.

Implementation improvements:
- The new font download is cached (and Github-authenticated); this should eliminate a "rate limit" build failure I've
encountered in the past.
- Clean up DocSection HTML rendering a bit.
- Remove a CSS file that seems to have been superseded.
2023-08-17 18:36:12 +00:00
Kaz Wesley
d15b3db0ac
Pending nodes (#7541)
Implement *pending* node status (#7435).

Design reference:
https://user-images.githubusercontent.com/3919101/257222729-838cfe84-7447-40a3-8aa1-5424de66b0b7.png

Demo:
[vokoscreenNG-2023-08-09_22-29-13.webm](https://github.com/enso-org/enso/assets/1047859/2906599d-920f-44df-9c0f-c617ebbd5ecc)

# Important Notes
- Reduce alpha value of node backgrounds, label widgets, and method widget icons while the engine reports "pending" state.
- Use FRP and themes for method widgets.
- Update node input area to use `define_endpoints_2`.
- Also remove some code supporting the disused *profiling mode*.
2023-08-17 16:40:50 +00:00
Ilya Bogdanov
ea6fe3bbef
Fix the panic on resize to tiny window dimensions (#7594) 2023-08-17 20:37:23 +04:00
Ilya Bogdanov
02ba9a1a11
Documentation panel redesign (#7372)
* Support arguments list in the doc parser

* Support new doc sections in documentation panel

* Remove headers

* Remove outer dom and place breadcrumbs

* Fix methods icon

* Use unordered list class in css

* Improve tags styles

* Remove virtual component groups docs

* Cleanup top-level css styles

* Small adjustments to headers

* Add styles for emphasized text

* Add bold font for arguments

* Self-review

* Remove redundant placeholder struct.

* Update outdated doc.

* Avoid allocation when comparing strings.

* Avoid empty paragraph.

* Reduce allocations.

* Update test to remove empty paragraph.

* Fix rebase issues.

* Improve padding and size handling in UI themes

Added padding_x and padding_y to hardcoded theme's breadcrumb settings to ensure consistent padding. Also, these padding settings and breadcrumb_height are now used directly in the Style structure, eliminating hardcoded values in the view documentation.

* Adjusted breadcrumb background dimensions calculation.

* Add support for improper arguments formatting in documenation comments

* Do not include Icon tag into the docs

* Fix documentation panel resizing

* enso-formatter

---------

Co-authored-by: Michael Mauderer <michael.mauderer@enso.org>
2023-08-15 17:11:36 +04:00
Michael Mauderer
7f19b09d13
Sync breadcrumbs and documentation panel. (#7508)
Implements #7310.

![Peek 2023-08-09 16-07](https://github.com/enso-org/enso/assets/1428930/1a244e38-5c34-4c8b-8885-1cf84ac7b6a7)
2023-08-15 11:01:24 +00:00
Michael Mauderer
1272486a00
Fix broken text vis layout (#7532) 2023-08-14 15:31:42 +00:00
Paweł Grabarz
4a09cde7e3
Proper dropdown active area and arrow placement (#7561)
Fixes #7423

Refactored widget matching algorithm to allow creating wrapper widgets even in cases where the widget config override is present. That allowed the widgets to be reordered, such that the argument name ends up being inside the dropdown widget. That way clicking it opens the dropdown.

Added explicit manual layout for the dropdown arrow position. Now it is positioned on the center of a selected appropriate child widget. For prefix chains, the leftmost part of the prefix application (the method or constructor) is selected.

https://github.com/enso-org/enso/assets/919491/86678b9d-c04e-4545-8d11-2d1e85b9b951
2023-08-14 11:52:05 +00:00
Adam Obuchowicz
fd972f8b0a
Change shortcut for opening Component Browser to enter (#7527)
This was meant to be a trivial change, but actually a dirty workaround needed to be applied. Because enter is used  to both open searcher and accept input/entry, both actions were fired at once. I fixed it by debouncing opening searcher event (so the searcher will be opened only once key event handling is over)
2023-08-11 18:05:17 +00:00
Ilya Bogdanov
9f4a5f90c0
Correctly display connections to lambdas (#7550)
Closes #7261

It's impossible to connect to the lambda arguments, but they are displayed as in code, and the correct span tree is generated for the lambda body. (hence you can connect to items inside)

https://github.com/enso-org/enso/assets/6566674/60af6413-e1b9-4e8c-a958-2906b5534d62
2023-08-11 14:45:15 +00:00
Adam Obuchowicz
59329bd59a
New Top Bar (#7488)
Fixes #7411

So far, this branch removes window control buttons and go-to dashboard (hamburger icon), and adds option for dashboard to set offset of the rest of top bar panels.
2023-08-08 15:23:41 +00:00
Michał Wawrzyniec Urbańczyk
90e3f9ccef
Introducing new notifications to the GUI (#7458)
This PR replaces statusbar and popup components with the new notification API.

I have moved debug mode status notification to the bottom of the window, so it is separate from other notifications.

![obraz](https://github.com/enso-org/enso/assets/1548407/0e28bdd5-3567-4d8c-b580-d53099a00715)

![obraz](https://github.com/enso-org/enso/assets/1548407/47468d56-c4fc-4a0a-876d-2b059509a29c)

![obraz](https://github.com/enso-org/enso/assets/1548407/359dd764-305a-4a75-b9a4-75674bcc9990)
2023-08-04 16:48:23 +02:00
Adam Obuchowicz
6534d0a925
Two fixes: hidden CB entry and scrolling in text vis. (#7475)
Fixes #7405 
Fixes #7445 

The "hidden entry" bug was caused by wrong component browser position and size set when all displayed entries fit the viewport.

The scrolling issue was due to change various "hover rectangles" order - some were above the scroll bars.
2023-08-04 14:55:25 +02:00
Michael Mauderer
cd29305473
Fix broken text vis layout on slow loading (#7429) 2023-08-03 08:07:53 +00:00
Adam Obuchowicz
a80024a667
Fix Component Browser Preview (#7441)
Fixes #7006
Fixes #6999

Fixed several issues around visualizations:
1. The visualizations of previewed CBs are displayed. For some reason, the code which showed them wasn't there.
1. The AST ID is assigned to view ID before attaching visualization. This makes previews work in the first place.
2. The visualizations are restored after fixing an error on node.
2023-08-02 08:58:53 +00:00
Ilya Bogdanov
73237b7b25
Rearrange CB panels (#7350)
Closes #7244

- Section navigator removed
- Added a button panel on top of the documentation
- Show/hide documentation panel button is functional, documentation panel has animation.
- All other buttons are read-only (unclickable).
- "Hovered item preview" caption was removed from the documentation panel
- Breadcrumbs are flying in the temporary position. They should be functional but will be moved to the documentation panel in a separate task.
- Sizes and layouts of the CB panels match the design.
- The color of the application background changed. Also fixed a bug because of which the stylesheet setting of the background was not taken into account.

Known issues:
- ~~The buttons panel partially hides the topmost entry in the list. To fix that, we would need API changes to the grid view, I decided not to do that as part of the PR. We need to add padding on top of the scroll area content.~~
- Scrollbar is not rendered correctly at the bottom – the scroll area mask should crop it.
- Component list entries are not exactly as in design – I didn't touch this part of the code.
- Breadcrumbs are in the wrong position.

https://github.com/enso-org/enso/assets/6566674/409bebb5-572a-4760-852d-f666124689a2
2023-07-31 15:33:54 +00:00
Michael Mauderer
e5a20ee15e
Refactor icons and breadcrumbs into separate crate. (#7419)
Implements #7363
2023-07-31 11:54:05 +00:00
Michael Mauderer
d272d627cb
Updated breadcrumb UI to new design (#7362)
Implements ##7199

![image](https://github.com/enso-org/enso/assets/1428930/7658598b-62d4-471d-bf9d-be80ac978013)
2023-07-27 16:10:07 +02:00
Paweł Grabarz
bb39eeb12f
New node design (#7311)
Fixes #6552
Fixes #6910
Fixes #6872

Implementation of new node design. Includes many changes related to stylesheet update handling and per-style FRP construction, as well as refactoring of scene layers used by graph editor. Some additional components were migrated to use `Rectangle` shape and new mouse handling events. Fixed text rendering, where random thin lines appeared at the borders of glyph sprites. Refined edge layout to match new node sizes and not leave any visible gaps between line segments.

The node colors are currently randomly selected from predefined list. Later this will be improved to use group information from the suggestion database, once that is fully migrated to use the documentation tags, thus removing the dependency on the execution context.


https://github.com/enso-org/enso/assets/919491/aa687e53-a2fa-4e95-a15f-132c05e6337a


<img width="653" alt="image" src="https://github.com/enso-org/enso/assets/919491/30f3e897-62fc-40ea-b57b-124ac923bafd">
2023-07-27 13:00:47 +00:00
Kaz Wesley
828d160c56
Introduce new focus APIs, and use for CB (#7167)
Introduce new APIs for managing focus and using focus to inform delivery of keyboard events.

Use new APIs to implement the following behavior:

Focus:
- If the component browser is opened, its initial state is *focused*.
- If the node input area's text component is clicked, the component browser's state becomes *blurred*.
- If a click occurs anywhere in the component browser, the component browser's state becomes *focused*.

Event dispatch:
- When the component browser is in the *focused* state, it handles certain keyboard events (chiefly, arrow keys).
- If the component browser handles an event, the event is not received by other components.
- If an event occurs that the component browser doesn't handle, the node input area's text component receives the event.

[vokoscreenNG-2023-06-29_10-55-00.webm](https://github.com/enso-org/enso/assets/1047859/f1d9d07c-8c32-4482-ba32-15b6e4e20ae7)

# Important Notes
Changes to display object interface:
- **`display::Object` can now be derived.**
- Introduce display object *focus receiver* concept. Many components, when receiving focus, should actually be focused indirectly by focusing a descendant.
- For example, when the CB Panel receives focus, its descendant at `self.model().grid.model().grid` should be focused, because that's the underlying Grid View, which has its own event handlers. By allowing each level of the hierarchy to define a `focus_receiver`, focus can reach the right object without the CB panel having to know structural details of its descendants.
- When delegating to a field's `display::Object` implementation, the derived implementation uses the child's `focus_receiver`, which will normally be the correct behavior.

**Changes to `shortcut` API**:
- New `View::focused_shortcuts()` is a focus-aware alternative to `View::default_shortcuts()` (which should now only be used for global shortcuts, i.e. shortcuts that don't depend on whether the component is focused). It's based on the *Keyboard Event* API (see below), so events propagate up the focus hierarchy until a shortcut is executed and `stop_propagation()` is called; this allows sensible resolution of event targets when more than one component is capable of handling the same keypress.

Keypress dataflow overview:
DOM -> KeyboardManager -> FrpKeyboard -> KeyboardEvents -> Shortcut.

Low-level keyboard changes to support Focus:
- New `KeyboardManager`: Attaches DOM event handlers the same way as `MouseManager`.
- New *Keyboard Event* API: `on_event::<KeyDown>()`. Events propagate up the focus hierarchy. This API is used for low-level keyboard listeners such a `Text`, which may need complex logic to determine whether a key is handled (rather than having a closed set of bindings, which can be handled by `shortcut`).
- FRP keyboard: Now attaches to the `KeyboardManager` API. It now serves primarily to produce Keyboard Events (it still performs the role of making `KeyUp` events saner in a couple different ways). The FRP keyboard can also be used directly as a global keyboard, for such things as reacting to modifier state.

Misc:
- Updated the workspace `syn` to version 2. Crates still depending on legacy `syn` now do so through the workspace-level `syn_1` alias.
2023-07-26 22:13:48 +00:00
Michał Wawrzyniec Urbańczyk
7211c8317d
New notification system (#7339)
This PR consists of two primary changes:
1. I've replaced `react-hot-toast` with `react-toastify` library. Both serve the same purpose — sending popup notifications (so-called "toasts"). However, the latter comes with a richer feature set that matches our requirements much better.
2. I've exposed the relevant API surface to the Rust. Now Rust code can easily send notifications.

### Important Notes
At this point, no attempt at customizing style of notifications was made (other than selecting the "light" theme). 

Likely we should consider this soon after integration as a separate task.
2023-07-24 21:58:53 +02:00
Adam Obuchowicz
8923aa98da
New Components Order (#7327)
Fixes #7198 
Fixes #7318 

https://github.com/enso-org/enso/assets/3919101/4aead1e2-de01-4b6e-aa12-403af0b3c677

This PR changes the way components are kept in the controllers to allow mixing different groups when filtering. On this occasion, the code was greatly simplified:
* Instead of identifying entries by section, group and entry ID we have just a single EntryId representing position on the list. This way the view was simplified.
* Removed support for headers in Component Grid (but the Grid View still has this feature).
* Removed remnants of the old searcher and "actions".

Also, this PR fixes #7201. I decided that the top modules will have full path (namespace, library and module name), so they will be displayed as `Standard.Base.Data` instead of just `Data` (so it's clear we're browsing part of the standard library.

### Important Notes

The searcher's breadcrumbs controller is in not very nice state, but it will be revised anyway, as the breadcrumbs will be synchronized with documentation panel in the new design.
2023-07-21 12:11:39 +02:00
Ilya Bogdanov
f23c506e11
New icons, part 1 (#7296)
Partially addresses #7260

A few new icons were added, and a few older ones were modified to match the new design.

This set of icons should be enough to cover our needs before the release.

- Compass icon for visualizations
- Unstable
- Command key
- Right side panel
- Array.new
- Local scope icon modified
- Clock icon modified
- Calendar
- Expand from the node's action bar
- Eye from action bar modified

Screenshots:
<img width="159" alt="Screenshot 2023-07-14 at 17 08 29" src="https://github.com/enso-org/enso/assets/6566674/286f2c1c-f5c1-4b56-a75a-7abcad191c51">
<img width="404" alt="Screenshot 2023-07-14 at 17 08 12" src="https://github.com/enso-org/enso/assets/6566674/e3f27e47-04ef-4bdd-9bb0-126936ccb27d">
<img width="1511" alt="Screenshot 2023-07-14 at 17 08 00" src="https://github.com/enso-org/enso/assets/6566674/307ac334-a423-46d6-b614-47cf1295ddd0">
<img width="728" alt="Screenshot 2023-07-14 at 17 08 05" src="https://github.com/enso-org/enso/assets/6566674/e63a4327-d640-4904-989b-ad1f0e83e497">

# Important Notes
No visual changes to the IDE itself, but I swapped the definitions of `HalfPlane` and `BottomHalfPlane` - now they reflect their names.
2023-07-18 13:27:40 +00:00
Ilya Bogdanov
67f7d33801
Redesign IDE top bar (#7249)
Closes #7200

Updating the looks of the project's top bar to the new design. 

- Project name moved from breadcrumbs to the left of the execution environment selector.
- All components use auto-layout in most places, except for breadcrumbs (changing them means basically rewriting them from scratch, but we will use CB's breadcrumbs instead)
- Components no longer rely on individual positioning but rather work as parts of the "project view top bar" abstraction (with the use of auto-layout)
- We have a new debug scene for the project view top bar, replacing the debug scene for execution environment selector.
- Most style parameters were moved to the stylesheet, except breadcrumbs.
- Top bar is now fully managed by the Project View, not Graph Editor
- Project name is no longer editable. There is no way to rename a project inside the IDE (the corresponding code is removed). It can react on mouse hovers, but the color will not change for now.
- Current execution environment has extra bold font and is no longer capitalized.
- **Breadcrumbs can be considered broken** from the design point of view. I have no intention of making them look as in the design because we want to reuse CB's breadcrumbs component instead. The functionality should be fully preserved, though.
- The Play Icon on the execution environment selector is not updated to the newest design, I suggest creating a separate task for that (I think it is the first case of a rounded triangle in the application, and implementation would some time).


https://github.com/enso-org/enso/assets/6566674/16747c02-15b2-4806-ace3-6f03c98040f1
2023-07-18 12:35:07 +02:00
Ilya Bogdanov
3273ab654d
Hide error message on execution success (#7268)
Closes #7003

Hides annoying "Execution failed" message when the execution is fixed (when we receive ExecutionComplete message)

Also renamed `ExecutionFinished` notification to `ExecutionComplete`, to better reflect the new behavior.


https://github.com/enso-org/enso/assets/6566674/156e19f8-3cdd-4b60-98fb-565746650343
2023-07-14 16:35:07 +00:00
Ilya Bogdanov
383514ee97
Fix error visualization positioning (#7267)
Fixes #7256

Sadly no resizing for error vis yet, it is far too complicated and requires a separate task.


https://github.com/enso-org/enso/assets/6566674/77ddbe78-7f27-41d1-9f63-5dd1d717ecd3
2023-07-14 15:22:20 +00:00
Adam Obuchowicz
853dd2f455
Revert "Show spinner when opening/creating a project, take #2 (#6827)" (#7229) 2023-07-14 15:00:52 +00:00
Paweł Grabarz
4be2c7b65b
Fix node name visibility by removing remaining view-mode logic fron node output port (#7269)
Fixes #7259

Node label (and output port in general) used to depend on view-mode logic, which is currently not fully functional. Since we have removed profiling mode from the application, It's best to remove some remaining parts of it to avoid them from interfering.

Labels now work as they used to, being shown on hover or when ctrl is held down.

![image](https://github.com/enso-org/enso/assets/919491/5e6996a4-6d84-4d36-a624-03a53f7e6e8a)
2023-07-13 14:07:07 +02:00