Skip to content

Commit 8853208

Browse files
doublegateclaude
andauthored
feat(gui): Migrate from iced 0.13.1 to iced 0.14.0 (#65)
Complete migration of rustirc-gui crate to iced 0.14.0, resolving 82+ breaking API changes across 18 files. Breaking API changes fixed: - Space widget: with_width/with_height -> Space::new().width/height() - Application API: Now uses boot function pattern with .title() method - Horizontal/vertical space helpers removed, use Space::new() - Rule widget: horizontal_rule -> rule::horizontal - Checkbox API: checkbox(label, value) -> checkbox(value).label(label) - Scrollable IDs: scrollable::Id -> iced::widget::Id - Scrollable operations: scrollable::snap_to -> operation::snap_to - text_input::Status::Focused is now a struct variant with is_hovered - Style structs require new snap: bool field (button, container) - Pixels type bounds changed from u16 to f32 Quality assurance: - Zero compilation errors - Zero clippy warnings - All 131 tests passing Co-authored-by: Claude Opus 4.5 <[email protected]>
1 parent 5f10fa0 commit 8853208

File tree

18 files changed

+969
-899
lines changed

18 files changed

+969
-899
lines changed

CHANGELOG.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed - 2026-01-10 (Iced 0.14.0 Migration)
11+
12+
#### GUI Framework Upgrade: Iced 0.13.1 to 0.14.0
13+
- **Major Version Upgrade**: Complete migration from iced 0.13.1 to iced 0.14.0 with 82+ breaking API changes resolved
14+
- **Key Features**: Reactive rendering improvements, time-travel debugging, and enhanced API design
15+
16+
#### Breaking API Changes Fixed
17+
- **Space Widget API**: Replaced deprecated `Space::with_width/with_height` with `Space::new().width/height()`
18+
- **Application API**: Migrated from `iced::application(title, update, view)` to `iced::application(boot_fn, update, view).title()`
19+
- **Horizontal/Vertical Space**: Removed deprecated helpers, now using `Space::new().width(Length::Fill)` pattern
20+
- **Rule Widget**: Changed `horizontal_rule(height)` to `rule::horizontal(height)`
21+
- **Checkbox API**: Updated from `checkbox(label, value)` to `checkbox(value).label(label)` builder pattern
22+
- **Scrollable IDs**: Migrated from `scrollable::Id` to `iced::widget::Id`
23+
- **Scrollable Operations**: Changed `scrollable::snap_to` to `operation::snap_to`
24+
- **Text Input Status**: Updated `text_input::Status::Focused` to struct variant with `is_hovered` field
25+
- **Style Structs**: Added required `snap: bool` field to `button::Style` and `container::Style`
26+
- **Pixels Type**: Updated return types from `u16` to `f32` for Pixels trait bounds
27+
28+
#### Files Modified (19 total)
29+
- `Cargo.toml` - Version bump to iced 0.14.0
30+
- `crates/rustirc-gui/src/app.rs` - Application API and rule widget
31+
- `crates/rustirc-gui/src/dialogs.rs` - Space, checkbox, and max_width APIs
32+
- `crates/rustirc-gui/src/material_demo.rs` - Application boot function
33+
- `crates/rustirc-gui/src/widgets/message_view.rs` - Scrollable ID and operations
34+
- `crates/rustirc-gui/src/widgets/user_list.rs` - Space widget
35+
- `crates/rustirc-gui/src/widgets/tab_bar.rs` - Space widget
36+
- `crates/rustirc-gui/src/widgets/status_bar.rs` - Space widget
37+
- `crates/rustirc-gui/src/widgets/server_tree.rs` - Space widget
38+
- `crates/rustirc-gui/src/widgets/input_area.rs` - Space widget
39+
- `crates/rustirc-gui/src/components/atoms/button.rs` - button::Style snap field
40+
- `crates/rustirc-gui/src/components/atoms/input.rs` - text_input::Status pattern
41+
- `crates/rustirc-gui/src/components/molecules/message_bubble.rs` - container::Style snap field
42+
- `crates/rustirc-gui/src/components/molecules/search_bar.rs` - text_input::Status pattern
43+
- `crates/rustirc-gui/src/components/organisms/responsive_layout.rs` - Space widget and Pixels type
44+
- `crates/rustirc-gui/src/components/organisms/rich_text_editor.rs` - text_input::Status patterns
45+
46+
#### Quality Assurance
47+
- **Build Status**: Zero compilation errors
48+
- **Clippy**: Zero warnings with -D warnings flag
49+
- **Tests**: All 131 tests passing (unit + doctests)
50+
- **Compatibility**: Full backward compatibility with existing GUI functionality
51+
1052
### Added - 2025-08-26 (Material Design 3 Integration + Dependency Updates)
1153

1254
#### Material Design 3 Branch Integration Complete (2025-08-26 11:56 PM EDT)

0 commit comments

Comments
 (0)