mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibWeb: Deduplicate transformation creation logic
We had two code blocks responsible for turning a TransformationStyleValue into a Transformation; get rid of one.
This commit is contained in:
parent
15fa6676b0
commit
9394c9a10b
Notes:
github-actions[bot]
2025-11-18 13:37:30 +00:00
Author: https://github.com/gmta
Commit: 9394c9a10b
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6826
Reviewed-by: https://github.com/AtkinsSJ
Reviewed-by: https://github.com/nico
2 changed files with 19 additions and 56 deletions
|
|
@ -100,37 +100,44 @@ Transformation TransformationStyleValue::to_transformation() const
|
|||
{
|
||||
auto function_metadata = transform_function_metadata(m_properties.transform_function);
|
||||
Vector<TransformValue> values;
|
||||
values.ensure_capacity(m_properties.values.size());
|
||||
size_t argument_index = 0;
|
||||
for (auto& transformation_value : m_properties.values) {
|
||||
auto const function_type = function_metadata.parameters[argument_index].type;
|
||||
auto const function_type = function_metadata.parameters[argument_index++].type;
|
||||
|
||||
if (transformation_value->is_calculated()) {
|
||||
auto& calculated = transformation_value->as_calculated();
|
||||
if (calculated.resolves_to_length()) {
|
||||
values.append(LengthPercentage { calculated });
|
||||
values.unchecked_append(LengthPercentage { calculated });
|
||||
} else if (calculated.resolves_to_number() || calculated.resolves_to_percentage()) {
|
||||
values.append(NumberPercentage { calculated });
|
||||
values.unchecked_append(NumberPercentage { calculated });
|
||||
} else if (calculated.resolves_to_angle()) {
|
||||
values.append(AngleOrCalculated { calculated });
|
||||
values.unchecked_append(AngleOrCalculated { calculated });
|
||||
} else {
|
||||
dbgln("FIXME: Unsupported calc value in transform! {}", calculated.to_string(SerializationMode::Normal));
|
||||
}
|
||||
} else if (transformation_value->is_keyword()) {
|
||||
if (function_type == TransformFunctionParameterType::LengthNone
|
||||
&& transformation_value->as_keyword().keyword() == Keyword::None) {
|
||||
// We don't add 'none' to the list of values.
|
||||
} else {
|
||||
dbgln("FIXME: Unsupported keyword value '{}' in transform", transformation_value->to_string(SerializationMode::Normal));
|
||||
}
|
||||
} else if (transformation_value->is_length()) {
|
||||
values.append({ transformation_value->as_length().length() });
|
||||
values.unchecked_append({ transformation_value->as_length().length() });
|
||||
} else if (transformation_value->is_percentage()) {
|
||||
if (function_type == TransformFunctionParameterType::NumberPercentage) {
|
||||
values.append(NumberPercentage { transformation_value->as_percentage().percentage() });
|
||||
values.unchecked_append(NumberPercentage { transformation_value->as_percentage().percentage() });
|
||||
} else {
|
||||
values.append(LengthPercentage { transformation_value->as_percentage().percentage() });
|
||||
values.unchecked_append(LengthPercentage { transformation_value->as_percentage().percentage() });
|
||||
}
|
||||
} else if (transformation_value->is_number()) {
|
||||
values.append({ Number(Number::Type::Number, transformation_value->as_number().number()) });
|
||||
values.unchecked_append({ Number(Number::Type::Number, transformation_value->as_number().number()) });
|
||||
} else if (transformation_value->is_angle()) {
|
||||
values.append({ transformation_value->as_angle().angle() });
|
||||
values.unchecked_append({ transformation_value->as_angle().angle() });
|
||||
} else {
|
||||
dbgln("FIXME: Unsupported value in transform! {}", transformation_value->to_string(SerializationMode::Normal));
|
||||
}
|
||||
argument_index++;
|
||||
}
|
||||
return Transformation { m_properties.transform_function, move(values) };
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue