Update Rust crate egui to 0.30.0 #129

Open
pierre wants to merge 1 commits from renovate/egui-0.x into master
Owner

This PR contains the following updates:

Package Type Update Change
egui dependencies minor 0.29.1 -> 0.30.0

Release Notes

emilk/egui (egui)

v0.30.0

Compare Source

Highlights
egui_kittest

This release welcomes a new crate to the family: egui_kittest.
egui_kittest is a testing framework for egui, allowing you to test both automation (simulated clicks and other events),
and also do screenshot testing (useful for regression tests).
egui_kittest is built using kittest, which is a general GUI testing framework that aims to work with any Rust GUI (not just egui!).
kittest uses the accessibility library AccessKit for automatation and to query the widget tree.

kittest and egui_kittest are written by @​lucasmerlin.

Here's a quick example of how to use egui_kittest to test a checkbox:

use egui::accesskit::Toggled;
use egui_kittest::{Harness, kittest::Queryable};

fn main() {
    let mut checked = false;
    let app = |ui: &mut egui::Ui| {
        ui.checkbox(&mut checked, "Check me!");
    };

    let mut harness = egui_kittest::Harness::new_ui(app);

    let checkbox = harness.get_by_label("Check me!");
    assert_eq!(checkbox.toggled(), Some(Toggled::False));
    checkbox.click();

    harness.run();

    let checkbox = harness.get_by_label("Check me!");
    assert_eq!(checkbox.toggled(), Some(Toggled::True));

    // You can even render the ui and do image snapshot tests
    #[cfg(all(feature = "wgpu", feature = "snapshot"))]
    harness.wgpu_snapshot("readme_example");
}
Added
🔧 Changed
🐛 Fixed

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [egui](https://github.com/emilk/egui) | dependencies | minor | `0.29.1` -> `0.30.0` | --- ### Release Notes <details> <summary>emilk/egui (egui)</summary> ### [`v0.30.0`](https://github.com/emilk/egui/blob/HEAD/CHANGELOG.md#0300---2024-12-16---Modals-and-better-layer-support) [Compare Source](https://github.com/emilk/egui/compare/0.29.1...0.30.0) ##### ✨ Highlights - Add `Modal`, a popup that blocks input to the rest of the application ([#&#8203;5358](https://github.com/emilk/egui/pull/5358) by [@&#8203;lucasmerlin](https://github.com/lucasmerlin)) - Improved support for transform layers ([#&#8203;5465](https://github.com/emilk/egui/pull/5465), [#&#8203;5468](https://github.com/emilk/egui/pull/5468), [#&#8203;5429](https://github.com/emilk/egui/pull/5429)) ##### `egui_kittest` This release welcomes a new crate to the family: [egui_kittest](https://github.com/emilk/egui/tree/master/crates/egui_kittest). `egui_kittest` is a testing framework for egui, allowing you to test both automation (simulated clicks and other events), and also do screenshot testing (useful for regression tests). `egui_kittest` is built using [`kittest`](https://github.com/rerun-io/kittest), which is a general GUI testing framework that aims to work with any Rust GUI (not just egui!). `kittest` uses the accessibility library [`AccessKit`](https://github.com/AccessKit/accesskit/) for automatation and to query the widget tree. `kittest` and `egui_kittest` are written by [@&#8203;lucasmerlin](https://github.com/lucasmerlin). Here's a quick example of how to use `egui_kittest` to test a checkbox: ```rust use egui::accesskit::Toggled; use egui_kittest::{Harness, kittest::Queryable}; fn main() { let mut checked = false; let app = |ui: &mut egui::Ui| { ui.checkbox(&mut checked, "Check me!"); }; let mut harness = egui_kittest::Harness::new_ui(app); let checkbox = harness.get_by_label("Check me!"); assert_eq!(checkbox.toggled(), Some(Toggled::False)); checkbox.click(); harness.run(); let checkbox = harness.get_by_label("Check me!"); assert_eq!(checkbox.toggled(), Some(Toggled::True)); // You can even render the ui and do image snapshot tests #[cfg(all(feature = "wgpu", feature = "snapshot"))] harness.wgpu_snapshot("readme_example"); } ``` ##### ⭐ Added - Add `Modal` and `Memory::set_modal_layer` [#&#8203;5358](https://github.com/emilk/egui/pull/5358) by [@&#8203;lucasmerlin](https://github.com/lucasmerlin) - Add `UiBuilder::layer_id` and remove `layer_id` from `Ui::new` [#&#8203;5195](https://github.com/emilk/egui/pull/5195) by [@&#8203;emilk](https://github.com/emilk) - Allow easier setting of background color for `TextEdit` [#&#8203;5203](https://github.com/emilk/egui/pull/5203) by [@&#8203;bircni](https://github.com/bircni) - Set `Response::intrinsic_size` for `TextEdit` [#&#8203;5266](https://github.com/emilk/egui/pull/5266) by [@&#8203;lucasmerlin](https://github.com/lucasmerlin) - Expose center position in `MultiTouchInfo` [#&#8203;5247](https://github.com/emilk/egui/pull/5247) by [@&#8203;lucasmerlin](https://github.com/lucasmerlin) - `Context::add_font` [#&#8203;5228](https://github.com/emilk/egui/pull/5228) by [@&#8203;frederik-uni](https://github.com/frederik-uni) - Impl from `Box<str>` for `WidgetText`, `RichText` [#&#8203;5309](https://github.com/emilk/egui/pull/5309) by [@&#8203;dimtpap](https://github.com/dimtpap) - Add `Window::scroll_bar_visibility` [#&#8203;5231](https://github.com/emilk/egui/pull/5231) by [@&#8203;Zeenobit](https://github.com/Zeenobit) - Add `ComboBox::close_behavior` [#&#8203;5305](https://github.com/emilk/egui/pull/5305) by [@&#8203;avalsch](https://github.com/avalsch) - Add `painter.line()` [#&#8203;5291](https://github.com/emilk/egui/pull/5291) by [@&#8203;bircni](https://github.com/bircni) - Allow attaching custom user data to a screenshot command [#&#8203;5416](https://github.com/emilk/egui/pull/5416) by [@&#8203;emilk](https://github.com/emilk) - Add `Button::image_tint_follows_text_color` [#&#8203;5430](https://github.com/emilk/egui/pull/5430) by [@&#8203;emilk](https://github.com/emilk) - Consume escape keystroke when bailing out from a drag operation [#&#8203;5433](https://github.com/emilk/egui/pull/5433) by [@&#8203;abey79](https://github.com/abey79) - Add `Context::layer_transform_to_global` & `layer_transform_from_global` [#&#8203;5465](https://github.com/emilk/egui/pull/5465) by [@&#8203;emilk](https://github.com/emilk) ##### 🔧 Changed - Update MSRV to Rust 1.80 [#&#8203;5421](https://github.com/emilk/egui/pull/5421), [#&#8203;5457](https://github.com/emilk/egui/pull/5457) by [@&#8203;emilk](https://github.com/emilk) - Expand max font atlas size from 8k to 16k [#&#8203;5257](https://github.com/emilk/egui/pull/5257) by [@&#8203;rustbasic](https://github.com/rustbasic) - Put font data into `Arc` to reduce memory consumption [#&#8203;5276](https://github.com/emilk/egui/pull/5276) by [@&#8203;StarStarJ](https://github.com/StarStarJ) - Move `egui::util::cache` to `egui::cache`; add `FramePublisher` [#&#8203;5426](https://github.com/emilk/egui/pull/5426) by [@&#8203;emilk](https://github.com/emilk) - Remove `Order::PanelResizeLine` [#&#8203;5455](https://github.com/emilk/egui/pull/5455) by [@&#8203;emilk](https://github.com/emilk) - Drag-and-drop: keep cursor set by user, if any [#&#8203;5467](https://github.com/emilk/egui/pull/5467) by [@&#8203;abey79](https://github.com/abey79) - Use `profiling` crate to support more profiler backends [#&#8203;5150](https://github.com/emilk/egui/pull/5150) by [@&#8203;teddemunnik](https://github.com/teddemunnik) - Improve hit-test of thin widgets, and widgets across layers [#&#8203;5468](https://github.com/emilk/egui/pull/5468) by [@&#8203;emilk](https://github.com/emilk) ##### 🐛 Fixed - Update `ScrollArea` drag velocity when drag stopped [#&#8203;5175](https://github.com/emilk/egui/pull/5175) by [@&#8203;valadaptive](https://github.com/valadaptive) - Fix bug causing wrong-fire of `ViewportCommand::Visible` [#&#8203;5244](https://github.com/emilk/egui/pull/5244) by [@&#8203;rustbasic](https://github.com/rustbasic) - Fix: `Ui::new_child` does not consider the `sizing_pass` field of `UiBuilder` [#&#8203;5262](https://github.com/emilk/egui/pull/5262) by [@&#8203;zhatuokun](https://github.com/zhatuokun) - Fix Ctrl+Shift+Z redo shortcut [#&#8203;5258](https://github.com/emilk/egui/pull/5258) by [@&#8203;YgorSouza](https://github.com/YgorSouza) - Fix: `Window::default_pos` does not work [#&#8203;5315](https://github.com/emilk/egui/pull/5315) by [@&#8203;rustbasic](https://github.com/rustbasic) - Fix: `Sides` did not apply the layout position correctly [#&#8203;5303](https://github.com/emilk/egui/pull/5303) by [@&#8203;zhatuokun](https://github.com/zhatuokun) - Respect `Style::override_font_id` in `RichText` [#&#8203;5310](https://github.com/emilk/egui/pull/5310) by [@&#8203;MStarha](https://github.com/MStarha) - Fix disabled widgets "eating" focus [#&#8203;5370](https://github.com/emilk/egui/pull/5370) by [@&#8203;lucasmerlin](https://github.com/lucasmerlin) - Fix cursor clipping in `TextEdit` inside a `ScrollArea` [#&#8203;3660](https://github.com/emilk/egui/pull/3660) by [@&#8203;juancampa](https://github.com/juancampa) - Make text cursor always appear on click [#&#8203;5420](https://github.com/emilk/egui/pull/5420) by [@&#8203;juancampa](https://github.com/juancampa) - Fix `on_hover_text_at_pointer` for transformed layers [#&#8203;5429](https://github.com/emilk/egui/pull/5429) by [@&#8203;emilk](https://github.com/emilk) - Fix: don't interact with `Area` outside its `constrain_rect` [#&#8203;5459](https://github.com/emilk/egui/pull/5459) by [@&#8203;MScottMcBee](https://github.com/MScottMcBee) - Fix broken images on egui.rs (move from git lfs to normal git) [#&#8203;5480](https://github.com/emilk/egui/pull/5480) by [@&#8203;emilk](https://github.com/emilk) - Fix: `ui.new_child` should now respect `disabled` [#&#8203;5483](https://github.com/emilk/egui/pull/5483) by [@&#8203;emilk](https://github.com/emilk) - Fix zero-width strokes still affecting the feathering color of boxes [#&#8203;5485](https://github.com/emilk/egui/pull/5485) by [@&#8203;emilk](https://github.com/emilk) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44Ni4xIiwidXBkYXRlZEluVmVyIjoiMzkuODYuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
pierre added 1 commit 2024-12-31 00:23:47 +00:00
Update Rust crate egui to 0.30.0
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
8f5d4dbd94
pierre scheduled this pull request to auto merge when all checks succeed 2024-12-31 00:23:47 +00:00
Author
Owner

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: custom_consumption/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path custom_consumption/Cargo.toml --package egui@0.29.1 --precise 0.30.0
    Updating crates.io index
error: failed to select a version for the requirement `egui = "^0.29.1"`
candidate versions found which didn't match: 0.30.0
location searched: crates.io index
required by package `eframe v0.29.1`
    ... which satisfies dependency `eframe = "^0.29.1"` (locked to 0.29.1) of package `custom_consumption v0.1.0 (/tmp/renovate/repos/gitea/pierre/SolarEnergy/custom_consumption)`

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: custom_consumption/Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path custom_consumption/Cargo.toml --package egui@0.29.1 --precise 0.30.0 Updating crates.io index error: failed to select a version for the requirement `egui = "^0.29.1"` candidate versions found which didn't match: 0.30.0 location searched: crates.io index required by package `eframe v0.29.1` ... which satisfies dependency `eframe = "^0.29.1"` (locked to 0.29.1) of package `custom_consumption v0.1.0 (/tmp/renovate/repos/gitea/pierre/SolarEnergy/custom_consumption)` ```
Author
Owner

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

### Edited/Blocked Notification Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. ⚠️ **Warning**: custom changes will be lost.
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/egui-0.x:renovate/egui-0.x
git checkout renovate/egui-0.x
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: pierre/SolarEnergy#129
No description provided.