mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 20:29:18 +00:00
LibWeb: Delete redundant GridFitContent class from track representation
GridSize already supports the FitContent type, so there is no need to additionally wrap it in a GridFitContent class.
This commit is contained in:
parent
e0af205d69
commit
6169e91994
Notes:
github-actions[bot]
2025-06-18 14:52:36 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: 6169e91994
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5134
Reviewed-by: https://github.com/AtkinsSJ ✅
5 changed files with 12 additions and 42 deletions
|
@ -1,5 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022, Martin Falisse <mfalisse@outlook.com>
|
* Copyright (c) 2022, Martin Falisse <mfalisse@outlook.com>
|
||||||
|
* Copyright (c) 2025, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -89,8 +90,9 @@ String GridSize::to_string() const
|
||||||
{
|
{
|
||||||
switch (m_type) {
|
switch (m_type) {
|
||||||
case Type::LengthPercentage:
|
case Type::LengthPercentage:
|
||||||
case Type::FitContent:
|
|
||||||
return m_value.get<LengthPercentage>().to_string();
|
return m_value.get<LengthPercentage>().to_string();
|
||||||
|
case Type::FitContent:
|
||||||
|
return MUST(String::formatted("fit-content({})", m_value.get<LengthPercentage>().to_string()));
|
||||||
case Type::FlexibleLength:
|
case Type::FlexibleLength:
|
||||||
return m_value.get<Flex>().to_string();
|
return m_value.get<Flex>().to_string();
|
||||||
case Type::MaxContent:
|
case Type::MaxContent:
|
||||||
|
@ -118,16 +120,6 @@ String GridMinMax::to_string() const
|
||||||
return MUST(builder.to_string());
|
return MUST(builder.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
GridFitContent::GridFitContent(GridSize max_grid_size)
|
|
||||||
: m_max_grid_size(max_grid_size)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
String GridFitContent::to_string() const
|
|
||||||
{
|
|
||||||
return MUST(String::formatted("fit-content({})", m_max_grid_size.to_string()));
|
|
||||||
}
|
|
||||||
|
|
||||||
GridRepeat::GridRepeat(GridTrackSizeList grid_track_size_list, int repeat_count)
|
GridRepeat::GridRepeat(GridTrackSizeList grid_track_size_list, int repeat_count)
|
||||||
: m_type(Type::Default)
|
: m_type(Type::Default)
|
||||||
, m_grid_track_size_list(grid_track_size_list)
|
, m_grid_track_size_list(grid_track_size_list)
|
||||||
|
@ -164,7 +156,7 @@ String GridRepeat::to_string() const
|
||||||
return MUST(builder.to_string());
|
return MUST(builder.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
ExplicitGridTrack::ExplicitGridTrack(Variant<GridFitContent, GridRepeat, GridMinMax, GridSize>&& value)
|
ExplicitGridTrack::ExplicitGridTrack(Variant<GridRepeat, GridMinMax, GridSize>&& value)
|
||||||
: m_value(move(value))
|
: m_value(move(value))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022, Martin Falisse <mfalisse@outlook.com>
|
* Copyright (c) 2022, Martin Falisse <mfalisse@outlook.com>
|
||||||
|
* Copyright (c) 2025, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -61,19 +62,6 @@ private:
|
||||||
Variant<Empty, LengthPercentage, Flex> m_value;
|
Variant<Empty, LengthPercentage, Flex> m_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
class GridFitContent {
|
|
||||||
public:
|
|
||||||
GridFitContent(GridSize);
|
|
||||||
|
|
||||||
GridSize const& max_grid_size() const& { return m_max_grid_size; }
|
|
||||||
|
|
||||||
String to_string() const;
|
|
||||||
bool operator==(GridFitContent const& other) const = default;
|
|
||||||
|
|
||||||
private:
|
|
||||||
GridSize m_max_grid_size;
|
|
||||||
};
|
|
||||||
|
|
||||||
class GridMinMax {
|
class GridMinMax {
|
||||||
public:
|
public:
|
||||||
GridMinMax(CSS::GridSize min_grid_size, CSS::GridSize max_grid_size);
|
GridMinMax(CSS::GridSize min_grid_size, CSS::GridSize max_grid_size);
|
||||||
|
@ -145,10 +133,7 @@ private:
|
||||||
|
|
||||||
class ExplicitGridTrack {
|
class ExplicitGridTrack {
|
||||||
public:
|
public:
|
||||||
ExplicitGridTrack(Variant<GridFitContent, GridRepeat, GridMinMax, GridSize>&& value);
|
ExplicitGridTrack(Variant<GridRepeat, GridMinMax, GridSize>&& value);
|
||||||
|
|
||||||
bool is_fit_content() const { return m_value.has<GridFitContent>(); }
|
|
||||||
GridFitContent const& fit_content() const { return m_value.get<GridFitContent>(); }
|
|
||||||
|
|
||||||
bool is_repeat() const { return m_value.has<GridRepeat>(); }
|
bool is_repeat() const { return m_value.has<GridRepeat>(); }
|
||||||
GridRepeat const& repeat() const { return m_value.get<GridRepeat>(); }
|
GridRepeat const& repeat() const { return m_value.get<GridRepeat>(); }
|
||||||
|
@ -163,7 +148,7 @@ public:
|
||||||
bool operator==(ExplicitGridTrack const& other) const = default;
|
bool operator==(ExplicitGridTrack const& other) const = default;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Variant<GridFitContent, GridRepeat, GridMinMax, GridSize> m_value;
|
Variant<GridRepeat, GridMinMax, GridSize> m_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -283,7 +283,7 @@ private:
|
||||||
Vector<Gfx::UnicodeRange> parse_unicode_ranges(TokenStream<ComponentValue>&);
|
Vector<Gfx::UnicodeRange> parse_unicode_ranges(TokenStream<ComponentValue>&);
|
||||||
RefPtr<UnicodeRangeStyleValue const> parse_unicode_range_value(TokenStream<ComponentValue>&);
|
RefPtr<UnicodeRangeStyleValue const> parse_unicode_range_value(TokenStream<ComponentValue>&);
|
||||||
Optional<GridSize> parse_grid_size(ComponentValue const&);
|
Optional<GridSize> parse_grid_size(ComponentValue const&);
|
||||||
Optional<GridFitContent> parse_grid_fit_content(Vector<ComponentValue> const&);
|
Optional<GridSize> parse_grid_fit_content(Vector<ComponentValue> const&);
|
||||||
Optional<GridMinMax> parse_min_max(Vector<ComponentValue> const&);
|
Optional<GridMinMax> parse_min_max(Vector<ComponentValue> const&);
|
||||||
Optional<GridRepeat> parse_repeat(Vector<ComponentValue> const&);
|
Optional<GridRepeat> parse_repeat(Vector<ComponentValue> const&);
|
||||||
Optional<ExplicitGridTrack> parse_track_sizing_function(ComponentValue const&);
|
Optional<ExplicitGridTrack> parse_track_sizing_function(ComponentValue const&);
|
||||||
|
|
|
@ -3243,7 +3243,7 @@ Optional<CSS::GridSize> Parser::parse_grid_size(ComponentValue const& component_
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<CSS::GridFitContent> Parser::parse_grid_fit_content(Vector<ComponentValue> const& component_values)
|
Optional<GridSize> Parser::parse_grid_fit_content(Vector<ComponentValue> const& component_values)
|
||||||
{
|
{
|
||||||
// https://www.w3.org/TR/css-grid-2/#valdef-grid-template-columns-fit-content
|
// https://www.w3.org/TR/css-grid-2/#valdef-grid-template-columns-fit-content
|
||||||
// 'fit-content( <length-percentage> )'
|
// 'fit-content( <length-percentage> )'
|
||||||
|
@ -3254,7 +3254,7 @@ Optional<CSS::GridFitContent> Parser::parse_grid_fit_content(Vector<ComponentVal
|
||||||
function_tokens.discard_whitespace();
|
function_tokens.discard_whitespace();
|
||||||
auto maybe_length_percentage = parse_length_percentage(function_tokens);
|
auto maybe_length_percentage = parse_length_percentage(function_tokens);
|
||||||
if (maybe_length_percentage.has_value())
|
if (maybe_length_percentage.has_value())
|
||||||
return CSS::GridFitContent(CSS::GridSize(CSS::GridSize::Type::FitContent, maybe_length_percentage.value()));
|
return GridSize(GridSize::Type::FitContent, maybe_length_percentage.value());
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,13 +153,6 @@ GridFormattingContext::GridTrack GridFormattingContext::GridTrack::create_from_d
|
||||||
// NOTE: repeat() is expected to be expanded beforehand.
|
// NOTE: repeat() is expected to be expanded beforehand.
|
||||||
VERIFY(!definition.is_repeat());
|
VERIFY(!definition.is_repeat());
|
||||||
|
|
||||||
if (definition.is_fit_content()) {
|
|
||||||
return GridTrack {
|
|
||||||
.min_track_sizing_function = CSS::GridSize::make_auto(),
|
|
||||||
.max_track_sizing_function = definition.fit_content().max_grid_size(),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (definition.is_minmax()) {
|
if (definition.is_minmax()) {
|
||||||
return GridTrack {
|
return GridTrack {
|
||||||
.min_track_sizing_function = definition.minmax().min_grid_size(),
|
.min_track_sizing_function = definition.minmax().min_grid_size(),
|
||||||
|
@ -577,7 +570,7 @@ void GridFormattingContext::initialize_grid_tracks_from_definition(GridDimension
|
||||||
repeat_count = track_definition.repeat().repeat_count();
|
repeat_count = track_definition.repeat().repeat_count();
|
||||||
}
|
}
|
||||||
for (auto _ = 0; _ < repeat_count; _++) {
|
for (auto _ = 0; _ < repeat_count; _++) {
|
||||||
if (track_definition.is_default() || track_definition.is_fit_content() || track_definition.is_minmax()) {
|
if (track_definition.is_default() || track_definition.is_minmax()) {
|
||||||
tracks.append(GridTrack::create_from_definition(track_definition));
|
tracks.append(GridTrack::create_from_definition(track_definition));
|
||||||
} else if (track_definition.is_repeat()) {
|
} else if (track_definition.is_repeat()) {
|
||||||
for (auto& explicit_grid_track : track_definition.repeat().grid_track_size_list().track_list()) {
|
for (auto& explicit_grid_track : track_definition.repeat().grid_track_size_list().track_list()) {
|
||||||
|
@ -2306,7 +2299,7 @@ void GridFormattingContext::init_grid_lines(GridDimension dimension)
|
||||||
line_names.extend(item.get<CSS::GridLineNames>().names);
|
line_names.extend(item.get<CSS::GridLineNames>().names);
|
||||||
} else if (item.has<CSS::ExplicitGridTrack>()) {
|
} else if (item.has<CSS::ExplicitGridTrack>()) {
|
||||||
auto const& explicit_track = item.get<CSS::ExplicitGridTrack>();
|
auto const& explicit_track = item.get<CSS::ExplicitGridTrack>();
|
||||||
if (explicit_track.is_default() || explicit_track.is_minmax() || explicit_track.is_fit_content()) {
|
if (explicit_track.is_default() || explicit_track.is_minmax()) {
|
||||||
lines.append({ .names = line_names });
|
lines.append({ .names = line_names });
|
||||||
line_names.clear();
|
line_names.clear();
|
||||||
} else if (explicit_track.is_repeat()) {
|
} else if (explicit_track.is_repeat()) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue