Commit Graph

120 Commits

Author SHA1 Message Date
Wojciech Daniło
f4d236fcd4
EnsoGL context abstraction (#3293) 2022-03-04 15:13:23 +01:00
Mateusz Czapliński
807506485d
Remove mod-level "allow missing docs" in graph-editor; add entity-level FIXMEs. (#3307)
Remove a module-level `#![allow(missing_docs)]` attribute from 2 modules in `graph-editor` crate. Instead, add the same attribute with a `FIXME` comment to lower-level entities.

See discussion at: https://discord.com/channels/401396655599124480/947797676823560193

# Important Notes
There are still 37 module-level `allow(missing_docs)` attributes present in the codebase after this change:

```
$ git grep '^#!.allow.missing_docs.' | wc -l
22
$ git grep -A1 '^#.allow.missing_docs.' | grep -w mod | wc -l
15
```

[ci no changelog needed]
2022-03-01 13:59:36 +00:00
Adam Obuchowicz
0836ce741d
Creating a new node with the (+) button (#3278)
[The Task](https://www.pivotaltracker.com/story/show/180887253)

A new (+) button on the left-bottom corner appeared. It may be clicked to open searcher in the middle of the scene, as an alternative to tab key.

https://user-images.githubusercontent.com/3919101/154514279-7972ed6a-0203-47cb-9a09-82dba948cf2f.mp4

# Important Notes
* The window_control_buttons::common was extracted to separate crate `ensogl-component-button` almost without change.
* This includes a severe refactoring of adding nodes in general in the Graph Editor. The whole responsibility of adding new nodes (and starting their editing) was moved to Graph Editor - the Project View only reacts for GE events to show searcher properly.
* The status bar was moved from the bottom-left corner to the middle-top of the scene. It does not collide with (+) button, and plays "notification" role anyway.
* The `interface` debug scene was buggy. The problem was with one expression's span-tree. When I replaced it, the scene works.
* I've removed "new searcher" API, as it is completely outdated.
* I've changed code owners of integration tests to GUI team, as it is the team writing mostly the integration tests (int rust)
2022-02-24 16:01:54 +00:00
Adam Obuchowicz
9d6f9373f9
Add tests for debug mode and zoom restriction. (#3289)
This PR adds integration tests created during acceptance process of [181181159](https://www.pivotaltracker.com/story/show/181181159) and [181181203](https://www.pivotaltracker.com/story/show/181181203).

The PRs for those tasks were merged, because I hadn't realized they should not.

Additionally, as the `wasm-bindgen` version was bumped, I extended the timeout of integration tests and made them headless.
2022-02-22 16:43:37 +00:00
Ilya Bogdanov
67a1ae41a0
Restrict Graph Editor Zoom (#3295)
[Task link](#181181203).

This is a reincarnation of PR [3273](https://github.com/enso-org/enso/pull/3273).

The maximum zoom factor of Graph Editor is limited to 1.0x. It is not possible to zoom in from the default camera position.
Debug Mode (activated with `ctrl-shift-d` shortcut) allows to zoom up to 100.0x (the previous behavior of Graph Editor).

If you enable Debug Mode, then zoom in and disable Debug Mode - you won't see the immediate change of zoom factor back to 1.0x. But it will "jump" (with animation) back once you make a zoom in/out event with your controls.

Video:

https://user-images.githubusercontent.com/6566674/154037310-1d166737-353e-4ae6-aca1-f7840571ab16.mp4

# Important Notes
This is a reincarnation of PR [3273](https://github.com/enso-org/enso/pull/3273). There are two changes since that PR:
1. Fixed bug with GeoMap zooming described [here](https://github.com/enso-org/enso/pull/3290). This is done by restricting `ZoomEvent` API so that it will never contain `amount` which is equal to `0.0`.
2. A few refactoring changes from https://github.com/enso-org/enso/pull/3289 to simplify code a bit.
2022-02-22 11:23:59 +00:00
Ilya Bogdanov
9ffeaf3e15
Revert "Restrict maximum zoom in Graph Editor (#3273)" (#3290)
This reverts commit dbcc2548df.
2022-02-21 09:26:12 +01:00
Ilya Bogdanov
dbcc2548df
Restrict maximum zoom in Graph Editor (#3273) 2022-02-16 20:13:39 +00:00
Michael Mauderer
32cfb0333a
Bump Rust toolchain to nightly-2022-01-20. (#3255) 2022-02-16 12:58:02 +00:00
Ilya Bogdanov
03e105d42e
Debug Mode for Graph Editor (#3264) 2022-02-14 11:19:08 +01:00
Adam Obuchowicz
c68ac5c0d6
Integration Test Framework (#3257) 2022-02-11 13:19:02 +01:00
Ilya Bogdanov
3905698b41
Implement creating nodes by dropping a connection (#3231) 2022-01-26 14:23:55 +03:00
Ilya Bogdanov
1daf1db56e
Support source maps for JS-based visualizations (#3208) 2022-01-11 15:31:43 +03:00
Adam Obuchowicz
e8077253c9
Finish integration refactoring (#3206)
All other things from the old integration layer were rewritten to some kind of presenter. The big integration module was removed.
2021-12-29 13:44:13 +01:00
Mateusz Czapliński
895291876c
Fix problems related to error visualisation evaluation (#3193)
- Add parser & handler in IDE for `executionContext/visualisationEvaluationFailed` message from Engine (fixes a developer console error "Failed to decode a notification: unknown variant `executionContext/visualisationEvaluationFailed`"). The contents of the error message will now be properly deserialized and printed to Dev Console with appropriate details.
- Fix a bug in an Enso code snippet used internally by the IDE for error visualizations preprocessing. The snippet was using not currently supported double-quote escaping in double-quote delimited strings. This lack of processing is actually a bug in the Engine, and it was reported to the Engine team, but changing the strings to single-quoted makes the snippet also more readable, so it sounds like a win anyway.
    - A test is also added to the Engine CI, verifying that the snippet compiles & works correctly, to protect against similar regressions in the future.

Related: #2815
2021-12-21 10:00:57 +01:00
Adam Obuchowicz
567ddd701c
Developers should find the ide-gui controller codebase logical and easy to work with. (#3188) 2021-12-15 13:40:14 +03:00
Adam Obuchowicz
c4d22102cf
Switch to 2021 edition (#3173) 2021-12-01 16:06:57 +01:00
Adam Obuchowicz
99b0c46d87
While testing, developers should not have to wait for each crate to be re-built. (#3168)
Split all the EnsoGL components, examples and debug scenes to separate crates, so the work on the single component should be quicker than before.
2021-11-30 12:27:50 +01:00
Adam Obuchowicz
9ab4f45e72
Refactored enso-data crate and text utilities. (#3166) 2021-11-25 11:45:42 +01:00
Ilya Bogdanov
03c85d780e
Colorful Histograms (#3153) 2021-11-18 14:17:38 +00:00
Adam Obuchowicz
bb3b145af5
Refactor gui/src/rust/ide to two app/gui and app/ide-desktop (#3157) 2021-11-16 10:04:56 +01:00