diff options
author | 2024-02-15 02:38:07 +0100 | |
---|---|---|
committer | 2024-02-15 02:38:07 +0100 | |
commit | feab96f323189ebae070a5d025531f86e436e21f (patch) | |
tree | bc15f73541151ef27e23ba1a908713b95c027d44 /widget | |
parent | e57668d6776d4354b6d3df049aee64be0dc8eda2 (diff) | |
download | iced-feab96f323189ebae070a5d025531f86e436e21f.tar.gz iced-feab96f323189ebae070a5d025531f86e436e21f.tar.bz2 iced-feab96f323189ebae070a5d025531f86e436e21f.zip |
Add `push_maybe` to `Column` and `Row`
Diffstat (limited to 'widget')
-rw-r--r-- | widget/src/column.rs | 12 | ||||
-rw-r--r-- | widget/src/helpers.rs | 12 | ||||
-rw-r--r-- | widget/src/keyed/column.rs | 13 | ||||
-rw-r--r-- | widget/src/row.rs | 12 |
4 files changed, 49 insertions, 0 deletions
diff --git a/widget/src/column.rs b/widget/src/column.rs index 8154ad85..b9eb5d93 100644 --- a/widget/src/column.rs +++ b/widget/src/column.rs @@ -115,6 +115,18 @@ where self.children.push(child); self } + + /// Adds an element to the [`Column`], if `Some`. + pub fn push_maybe( + self, + child: Option<impl Into<Element<'a, Message, Theme, Renderer>>>, + ) -> Self { + if let Some(child) = child { + self.push(child) + } else { + self + } + } } impl<'a, Message, Renderer> Default for Column<'a, Message, Renderer> diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 400fced5..6ae35aee 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -387,6 +387,18 @@ where crate::Canvas::new(program) } +/// Creates a new [`QRCode`] widget from the given [`Data`]. +/// +/// [`Svg`]: crate::QRCode +/// [`Data`]: crate::qr_code::Data +#[cfg(feature = "qr_code")] +pub fn qr_code<Theme>(data: &crate::qr_code::Data) -> crate::QRCode<'_, Theme> +where + Theme: crate::qr_code::StyleSheet, +{ + crate::QRCode::new(data) +} + /// Creates a new [`Shader`]. /// /// [`Shader`]: crate::Shader diff --git a/widget/src/keyed/column.rs b/widget/src/keyed/column.rs index 88a6e503..ce74e701 100644 --- a/widget/src/keyed/column.rs +++ b/widget/src/keyed/column.rs @@ -124,6 +124,19 @@ where self.children.push(child); self } + + /// Adds an element to the [`Column`], if `Some`. + pub fn push_maybe( + self, + key: Key, + child: Option<impl Into<Element<'a, Message, Theme, Renderer>>>, + ) -> Self { + if let Some(child) = child { + self.push(key, child) + } else { + self + } + } } impl<'a, Key, Message, Renderer> Default for Column<'a, Key, Message, Renderer> diff --git a/widget/src/row.rs b/widget/src/row.rs index 735fbbc0..20b47a41 100644 --- a/widget/src/row.rs +++ b/widget/src/row.rs @@ -106,6 +106,18 @@ where self.children.push(child); self } + + /// Adds an element to the [`Row`], if `Some`. + pub fn push_maybe( + self, + child: Option<impl Into<Element<'a, Message, Theme, Renderer>>>, + ) -> Self { + if let Some(child) = child { + self.push(child) + } else { + self + } + } } impl<'a, Message, Renderer> Default for Row<'a, Message, Renderer> |