summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-15 02:38:07 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-15 02:38:07 +0100
commitfeab96f323189ebae070a5d025531f86e436e21f (patch)
treebc15f73541151ef27e23ba1a908713b95c027d44 /widget
parente57668d6776d4354b6d3df049aee64be0dc8eda2 (diff)
downloadiced-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.rs12
-rw-r--r--widget/src/helpers.rs12
-rw-r--r--widget/src/keyed/column.rs13
-rw-r--r--widget/src/row.rs12
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>