1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:17:35 +00:00

LibWeb: Fix ignored .to_string() errors in StyleValue

This commit is contained in:
MacDue 2023-01-12 22:15:19 +00:00 committed by Linus Groh
parent 969aacd627
commit 0e3e9d9883

View file

@ -1230,35 +1230,40 @@ ErrorOr<String> FilterValueListStyleValue::to_string() const
for (auto& filter_function : filter_value_list()) { for (auto& filter_function : filter_value_list()) {
if (!first) if (!first)
builder.append(' '); builder.append(' ');
filter_function.visit( TRY(filter_function.visit(
[&](Filter::Blur const& blur) { [&](Filter::Blur const& blur) -> ErrorOr<void> {
builder.append("blur("sv); builder.append("blur("sv);
if (blur.radius.has_value()) if (blur.radius.has_value())
builder.append(blur.radius->to_string().release_value()); builder.append(TRY(blur.radius->to_string()));
return {};
}, },
[&](Filter::DropShadow const& drop_shadow) { [&](Filter::DropShadow const& drop_shadow) -> ErrorOr<void> {
builder.appendff("drop-shadow({} {}"sv, builder.appendff("drop-shadow({} {}"sv,
drop_shadow.offset_x, drop_shadow.offset_y); drop_shadow.offset_x, drop_shadow.offset_y);
if (drop_shadow.radius.has_value()) if (drop_shadow.radius.has_value())
builder.appendff(" {}", drop_shadow.radius->to_string()); builder.appendff(" {}", TRY(drop_shadow.radius->to_string()));
if (drop_shadow.color.has_value()) { if (drop_shadow.color.has_value()) {
builder.append(' '); builder.append(' ');
serialize_a_srgb_value(builder, *drop_shadow.color); serialize_a_srgb_value(builder, *drop_shadow.color);
} }
return {};
}, },
[&](Filter::HueRotate const& hue_rotate) { [&](Filter::HueRotate const& hue_rotate) -> ErrorOr<void> {
builder.append("hue-rotate("sv); builder.append("hue-rotate("sv);
if (hue_rotate.angle.has_value()) { if (hue_rotate.angle.has_value()) {
hue_rotate.angle->visit( TRY(hue_rotate.angle->visit(
[&](Angle const& angle) { [&](Angle const& angle) -> ErrorOr<void> {
builder.append(angle.to_string().release_value()); builder.append(TRY(angle.to_string()));
return {};
}, },
[&](auto&) { [&](auto&) -> ErrorOr<void> {
builder.append('0'); builder.append('0');
}); return {};
}));
} }
return {};
}, },
[&](Filter::Color const& color) { [&](Filter::Color const& color) -> ErrorOr<void> {
builder.appendff("{}(", builder.appendff("{}(",
[&] { [&] {
switch (color.operation) { switch (color.operation) {
@ -1281,8 +1286,9 @@ ErrorOr<String> FilterValueListStyleValue::to_string() const
} }
}()); }());
if (color.amount.has_value()) if (color.amount.has_value())
builder.append(color.amount->to_string().release_value()); builder.append(TRY(color.amount->to_string()));
}); return {};
}));
builder.append(')'); builder.append(')');
first = false; first = false;
} }
@ -1738,7 +1744,7 @@ void ImageStyleValue::paint(PaintContext& context, DevicePixelRect const& dest_r
context.painter().draw_scaled_bitmap(dest_rect.to_type<int>(), *b, bitmap(0)->rect(), 1.0f, to_gfx_scaling_mode(image_rendering)); context.painter().draw_scaled_bitmap(dest_rect.to_type<int>(), *b, bitmap(0)->rect(), 1.0f, to_gfx_scaling_mode(image_rendering));
} }
static void serialize_color_stop_list(StringBuilder& builder, auto const& color_stop_list) static ErrorOr<void> serialize_color_stop_list(StringBuilder& builder, auto const& color_stop_list)
{ {
bool first = true; bool first = true;
for (auto const& element : color_stop_list) { for (auto const& element : color_stop_list) {
@ -1746,16 +1752,17 @@ static void serialize_color_stop_list(StringBuilder& builder, auto const& color_
builder.append(", "sv); builder.append(", "sv);
if (element.transition_hint.has_value()) { if (element.transition_hint.has_value()) {
builder.appendff("{}, "sv, element.transition_hint->value.to_string()); builder.appendff("{}, "sv, TRY(element.transition_hint->value.to_string()));
} }
serialize_a_srgb_value(builder, element.color_stop.color); serialize_a_srgb_value(builder, element.color_stop.color);
for (auto position : Array { &element.color_stop.position, &element.color_stop.second_position }) { for (auto position : Array { &element.color_stop.position, &element.color_stop.second_position }) {
if (position->has_value()) if (position->has_value())
builder.appendff(" {}"sv, (*position)->to_string()); builder.appendff(" {}"sv, TRY((*position)->to_string()));
} }
first = false; first = false;
} }
return {};
} }
ErrorOr<String> LinearGradientStyleValue::to_string() const ErrorOr<String> LinearGradientStyleValue::to_string() const
@ -1789,15 +1796,17 @@ ErrorOr<String> LinearGradientStyleValue::to_string() const
if (is_repeating()) if (is_repeating())
builder.append("repeating-"sv); builder.append("repeating-"sv);
builder.append("linear-gradient("sv); builder.append("linear-gradient("sv);
m_direction.visit( TRY(m_direction.visit(
[&](SideOrCorner side_or_corner) { [&](SideOrCorner side_or_corner) -> ErrorOr<void> {
builder.appendff("{}{}, "sv, m_gradient_type == GradientType::Standard ? "to "sv : ""sv, side_or_corner_to_string(side_or_corner)); builder.appendff("{}{}, "sv, m_gradient_type == GradientType::Standard ? "to "sv : ""sv, side_or_corner_to_string(side_or_corner));
return {};
}, },
[&](Angle const& angle) { [&](Angle const& angle) -> ErrorOr<void> {
builder.appendff("{}, "sv, angle.to_string()); builder.appendff("{}, "sv, TRY(angle.to_string()));
}); return {};
}));
serialize_color_stop_list(builder, m_color_stop_list); TRY(serialize_color_stop_list(builder, m_color_stop_list));
builder.append(")"sv); builder.append(")"sv);
return builder.to_string(); return builder.to_string();
} }
@ -1989,8 +1998,8 @@ ErrorOr<String> RadialGradientStyleValue::to_string() const
builder.appendff("radial-gradient({} "sv, builder.appendff("radial-gradient({} "sv,
m_ending_shape == EndingShape::Circle ? "circle"sv : "ellipse"sv); m_ending_shape == EndingShape::Circle ? "circle"sv : "ellipse"sv);
m_size.visit( TRY(m_size.visit(
[&](Extent extent) { [&](Extent extent) -> ErrorOr<void> {
builder.append([&] { builder.append([&] {
switch (extent) { switch (extent) {
case Extent::ClosestCorner: case Extent::ClosestCorner:
@ -2005,9 +2014,16 @@ ErrorOr<String> RadialGradientStyleValue::to_string() const
VERIFY_NOT_REACHED(); VERIFY_NOT_REACHED();
} }
}()); }());
return {};
}, },
[&](CircleSize const& circle_size) { builder.append(circle_size.radius.to_string().release_value()); }, [&](CircleSize const& circle_size) -> ErrorOr<void> {
[&](EllipseSize const& ellipse_size) { builder.appendff("{} {}", ellipse_size.radius_a.to_string(), ellipse_size.radius_b.to_string()); }); builder.append(TRY(circle_size.radius.to_string()));
return {};
},
[&](EllipseSize const& ellipse_size) -> ErrorOr<void> {
builder.appendff("{} {}", TRY(ellipse_size.radius_a.to_string()), TRY(ellipse_size.radius_b.to_string()));
return {};
}));
if (m_position != PositionValue::center()) { if (m_position != PositionValue::center()) {
builder.appendff(" at "sv); builder.appendff(" at "sv);
@ -2015,7 +2031,7 @@ ErrorOr<String> RadialGradientStyleValue::to_string() const
} }
builder.append(", "sv); builder.append(", "sv);
serialize_color_stop_list(builder, m_color_stop_list); TRY(serialize_color_stop_list(builder, m_color_stop_list));
builder.append(')'); builder.append(')');
return builder.to_string(); return builder.to_string();
} }
@ -2201,7 +2217,7 @@ ErrorOr<String> ConicGradientStyleValue::to_string() const
} }
if (has_from_angle || has_at_position) if (has_from_angle || has_at_position)
builder.append(", "sv); builder.append(", "sv);
serialize_color_stop_list(builder, m_color_stop_list); TRY(serialize_color_stop_list(builder, m_color_stop_list));
builder.append(')'); builder.append(')');
return builder.to_string(); return builder.to_string();
} }