feat(deps): bump iced 0.13 -> 0.14 (with iced_aw 0.14, iced_fonts 0.3)#18
Open
nedseb wants to merge 3 commits into
Open
feat(deps): bump iced 0.13 -> 0.14 (with iced_aw 0.14, iced_fonts 0.3)#18nedseb wants to merge 3 commits into
nedseb wants to merge 3 commits into
Conversation
Major-version migration. Net effect of breaking changes:
* `iced::application(boot, update, view)` now takes a state factory as
first argument instead of a title fn; the title moves to a builder
method `.title(MainWindow::title)`.
* `iced::window::get_latest()` -> `iced::window::latest()`.
* `iced::advanced::graphics::futures::event` -> `iced::event` (the
`advanced` module is feature-gated and we don't need it).
* `iced_fonts::REQUIRED_FONT_BYTES` is gone (per-font constants only);
iced_aw 0.14 no longer requires loading an icon font for the widgets
we use, so the `.font(...)` call is just dropped.
* `iced::Pixels: From<u16>` is gone; pass `f32` (or `Pixels(f32)`)
explicitly. Affects the log widget text size and the form spacing.
* `iced::Theme: Default` is gone; pick a variant explicitly. We pick
`Theme::Light`, matching the previous default behavior.
* `iced::Event::InputMethod(_)` is a new variant, added to the
ignored-events arm in `MainWindow::update`.
* `iced::stream::channel` now takes `impl AsyncFnOnce`, and the
resulting stream's Send-ness is gated on the closure's future being
Send. Replaced the generic `message_runner` helper with a small
`message_runner!` macro so call sites pass an `async move |s| {…}`
closure directly to `channel(...)` and the future-Send constraint is
enforced at the use site instead of through a wrapper bound that
isn't expressible cleanly in stable Rust.
* `iced_aw 0.14` dropped the `grid` feature. Replaced the `grid!` /
`grid_row!` macros with a tiny `ui::form` module exposing `form_row`
(label + content row, fixed-width label) and `form` (column of
rows). Same visual layout.
* `iced_aw::number_input` now takes `&value` instead of `value`.
Smoke test: `cargo build --release --locked` and `cargo test --release
--locked` green; binary launches, loads settings, renders. Held-back
majors not in this PR: directories 6, sysinfo 0.38.
There was a problem hiding this comment.
Pull request overview
Updates the GUI stack to iced 0.14 (and aligned iced_aw / iced_fonts versions), adapting the app’s UI and runtime wiring to upstream API changes while preserving the existing layout and behavior.
Changes:
- Bump
icedto 0.14 with matchingiced_aw0.14 andiced_fonts0.3, plus corresponding lockfile refresh. - Replace removed
iced_awgrid macros with a new localui::formhelper module and migrate both tabs to it. - Update runtime hooks for iced 0.14 (application builder/title changes, window/latest API rename, event import path, Pixels construction, theme default removal, new
Event::InputMethod).
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/ui/tab_wireless_stack.rs | Switch to new form layout and replace message_runner helper fn with a macro to satisfy channel’s AsyncFnOnce API. |
| src/ui/tab_daplink.rs | Switch to new form layout and update number_input call signature. |
| src/ui/mod.rs | Export new form module. |
| src/ui/main_window.rs | Update event import, handle new input event variant, switch to explicit Theme::Light, and update window::latest() call. |
| src/ui/log_widget.rs | Update Pixels construction to the new API. |
| src/ui/form.rs | New lightweight form helpers replacing iced_aw grid macros removed in 0.14. |
| src/main.rs | Update iced::application initialization and move title into builder .title(...); remove icon font injection. |
| Cargo.toml | Dependency bumps for iced/iced_aw/iced_fonts. |
| Cargo.lock | Large transitive update due to iced 0.14 and renderer stack changes. |
| .gitignore | Ignore local tooling files (CLAUDE.md, .codex). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ), | ||
| grid_row!( | ||
| form_row( | ||
| "(Optionnal) User program", |
Contributor
Author
There was a problem hiding this comment.
Fixed in the latest commit — "Optionnal" → "Optional".
This was referenced Apr 28, 2026
Per Copilot review on PR #18.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First of the held-back major bumps from #16. Brings the project onto iced 0.14 (released after PR #5 landed) along with the matching iced_aw 0.14 and iced_fonts 0.3.
Breaking changes worked around
iced::application(boot, update, view)now takes a state factory instead of a title fn; title moves to.title(...)buildericed::application(MainWindow::default, MainWindow::update, MainWindow::view).title(MainWindow::title)iced::window::get_latest()→iced::window::latest()iced::advanced::graphics::futures::event→iced::event(theadvancedmodule is feature-gated and we don't need it)iced_fonts::REQUIRED_FONT_BYTESremoved (per-font constants only); iced_aw 0.14 no longer needs an icon font for the widgets we use.font(...)calliced::Pixels: From<u16>removed; onlyFrom<f32>and thePixels(f32)constructor remainf32iced::Theme: DefaultremovedTheme::Lightexplicitly (matches previous behavior)iced::Event::InputMethod(_)is a new variantMainWindow::updateiced::stream::channelnow takesimpl AsyncFnOnce; the resulting stream'sSendis gated on the closure's future beingSend, which can't be expressed cleanly through a generic wrapper bound on stable Rustmessage_runnerhelper fn with a smallmessage_runner!macro so theasync move |s| { … }closure is passed directly tochannel(...)and the future-Send constraint is enforced at the use siteiced_aw 0.14dropped thegridfeatureui::formmodule exposesform_row(label + content row, fixed-width label) andform(column of rows). Same visual layout.iced_aw::number_input(value, ...)→number_input(&value, ...)&self.target_waiting_timeTest plan
cargo build --release --lockedgreen locally.cargo test --release --lockedgreen (4 existing tests still pass).Held back for follow-ups