Browse Source

LibWeb: Replace ListStyleStyleValue with ShorthandStyleValue

Sam Atkins 1 year ago
parent
commit
6758decc74

+ 0 - 1
Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn

@@ -24,7 +24,6 @@ source_set("StyleValues") {
     "IntegerStyleValue.cpp",
     "LengthStyleValue.cpp",
     "LinearGradientStyleValue.cpp",
-    "ListStyleStyleValue.cpp",
     "MathDepthStyleValue.cpp",
     "NumberStyleValue.cpp",
     "OverflowStyleValue.cpp",

+ 0 - 1
Userland/Libraries/LibWeb/CMakeLists.txt

@@ -101,7 +101,6 @@ set(SOURCES
     CSS/StyleValues/IntegerStyleValue.cpp
     CSS/StyleValues/LengthStyleValue.cpp
     CSS/StyleValues/LinearGradientStyleValue.cpp
-    CSS/StyleValues/ListStyleStyleValue.cpp
     CSS/StyleValues/MathDepthStyleValue.cpp
     CSS/StyleValues/NumberStyleValue.cpp
     CSS/StyleValues/OverflowStyleValue.cpp

+ 3 - 2
Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp

@@ -57,7 +57,6 @@
 #include <LibWeb/CSS/StyleValues/InitialStyleValue.h>
 #include <LibWeb/CSS/StyleValues/IntegerStyleValue.h>
 #include <LibWeb/CSS/StyleValues/LengthStyleValue.h>
-#include <LibWeb/CSS/StyleValues/ListStyleStyleValue.h>
 #include <LibWeb/CSS/StyleValues/MathDepthStyleValue.h>
 #include <LibWeb/CSS/StyleValues/NumberStyleValue.h>
 #include <LibWeb/CSS/StyleValues/OverflowStyleValue.h>
@@ -4498,7 +4497,9 @@ RefPtr<StyleValue> Parser::parse_list_style_value(Vector<ComponentValue> const&
     if (!list_type)
         list_type = property_initial_value(m_context.realm(), PropertyID::ListStyleType);
 
-    return ListStyleStyleValue::create(list_position.release_nonnull(), list_image.release_nonnull(), list_type.release_nonnull());
+    return ShorthandStyleValue::create(PropertyID::ListStyle,
+        { PropertyID::ListStylePosition, PropertyID::ListStyleImage, PropertyID::ListStyleType },
+        { list_position.release_nonnull(), list_image.release_nonnull(), list_type.release_nonnull() });
 }
 
 RefPtr<StyleValue> Parser::parse_math_depth_value(Vector<ComponentValue> const& component_values)

+ 0 - 9
Userland/Libraries/LibWeb/CSS/StyleComputer.cpp

@@ -42,7 +42,6 @@
 #include <LibWeb/CSS/StyleValues/IdentifierStyleValue.h>
 #include <LibWeb/CSS/StyleValues/IntegerStyleValue.h>
 #include <LibWeb/CSS/StyleValues/LengthStyleValue.h>
-#include <LibWeb/CSS/StyleValues/ListStyleStyleValue.h>
 #include <LibWeb/CSS/StyleValues/MathDepthStyleValue.h>
 #include <LibWeb/CSS/StyleValues/NumberStyleValue.h>
 #include <LibWeb/CSS/StyleValues/OverflowStyleValue.h>
@@ -705,14 +704,6 @@ static void set_property_expanding_shorthands(StyleProperties& style, CSS::Prope
     }
 
     if (property_id == CSS::PropertyID::ListStyle) {
-        if (value.is_list_style()) {
-            auto const& list_style = value.as_list_style();
-            set_longhand_property(CSS::PropertyID::ListStylePosition, list_style.position());
-            set_longhand_property(CSS::PropertyID::ListStyleImage, list_style.image());
-            set_longhand_property(CSS::PropertyID::ListStyleType, list_style.style_type());
-            return;
-        }
-
         set_longhand_property(CSS::PropertyID::ListStylePosition, value);
         set_longhand_property(CSS::PropertyID::ListStyleImage, value);
         set_longhand_property(CSS::PropertyID::ListStyleType, value);

+ 0 - 1
Userland/Libraries/LibWeb/CSS/StyleValue.cpp

@@ -37,7 +37,6 @@
 #include <LibWeb/CSS/StyleValues/IntegerStyleValue.h>
 #include <LibWeb/CSS/StyleValues/LengthStyleValue.h>
 #include <LibWeb/CSS/StyleValues/LinearGradientStyleValue.h>
-#include <LibWeb/CSS/StyleValues/ListStyleStyleValue.h>
 #include <LibWeb/CSS/StyleValues/MathDepthStyleValue.h>
 #include <LibWeb/CSS/StyleValues/NumberStyleValue.h>
 #include <LibWeb/CSS/StyleValues/OverflowStyleValue.h>

+ 0 - 1
Userland/Libraries/LibWeb/CSS/StyleValue.h

@@ -109,7 +109,6 @@ using StyleValueVector = Vector<ValueComparingNonnullRefPtr<StyleValue const>>;
     __ENUMERATE_STYLE_VALUE_TYPE(Integer, integer)                                            \
     __ENUMERATE_STYLE_VALUE_TYPE(Length, length)                                              \
     __ENUMERATE_STYLE_VALUE_TYPE(LinearGradient, linear_gradient)                             \
-    __ENUMERATE_STYLE_VALUE_TYPE(ListStyle, list_style)                                       \
     __ENUMERATE_STYLE_VALUE_TYPE(MathDepth, math_depth)                                       \
     __ENUMERATE_STYLE_VALUE_TYPE(Number, number)                                              \
     __ENUMERATE_STYLE_VALUE_TYPE(Overflow, overflow)                                          \

+ 0 - 19
Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.cpp

@@ -1,19 +0,0 @@
-/*
- * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
- * Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
- * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
- * Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
-
-#include "ListStyleStyleValue.h"
-
-namespace Web::CSS {
-
-String ListStyleStyleValue::to_string() const
-{
-    return MUST(String::formatted("{} {} {}", m_properties.position->to_string(), m_properties.image->to_string(), m_properties.style_type->to_string()));
-}
-
-}

+ 0 - 53
Userland/Libraries/LibWeb/CSS/StyleValues/ListStyleStyleValue.h

@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
- * Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
- * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
- * Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
-
-#pragma once
-
-#include <LibWeb/CSS/StyleValue.h>
-
-namespace Web::CSS {
-
-class ListStyleStyleValue final : public StyleValueWithDefaultOperators<ListStyleStyleValue> {
-public:
-    static ValueComparingNonnullRefPtr<ListStyleStyleValue> create(
-        ValueComparingNonnullRefPtr<StyleValue> position,
-        ValueComparingNonnullRefPtr<StyleValue> image,
-        ValueComparingNonnullRefPtr<StyleValue> style_type)
-    {
-        return adopt_ref(*new (nothrow) ListStyleStyleValue(move(position), move(image), move(style_type)));
-    }
-    virtual ~ListStyleStyleValue() override = default;
-
-    ValueComparingNonnullRefPtr<StyleValue> position() const { return m_properties.position; }
-    ValueComparingNonnullRefPtr<StyleValue> image() const { return m_properties.image; }
-    ValueComparingNonnullRefPtr<StyleValue> style_type() const { return m_properties.style_type; }
-
-    virtual String to_string() const override;
-
-    bool properties_equal(ListStyleStyleValue const& other) const { return m_properties == other.m_properties; }
-
-private:
-    ListStyleStyleValue(
-        ValueComparingNonnullRefPtr<StyleValue> position,
-        ValueComparingNonnullRefPtr<StyleValue> image,
-        ValueComparingNonnullRefPtr<StyleValue> style_type)
-        : StyleValueWithDefaultOperators(Type::ListStyle)
-        , m_properties { .position = move(position), .image = move(image), .style_type = move(style_type) }
-    {
-    }
-
-    struct Properties {
-        ValueComparingNonnullRefPtr<StyleValue> position;
-        ValueComparingNonnullRefPtr<StyleValue> image;
-        ValueComparingNonnullRefPtr<StyleValue> style_type;
-        bool operator==(Properties const&) const = default;
-    } m_properties;
-};
-
-}

+ 2 - 0
Userland/Libraries/LibWeb/CSS/StyleValues/ShorthandStyleValue.cpp

@@ -145,6 +145,8 @@ String ShorthandStyleValue::to_string() const
             return MUST(String::formatted("{}", construct_rows_string()));
         return MUST(String::formatted("{} / {}", construct_rows_string(), columns.grid_track_size_list().to_string()));
     }
+    case PropertyID::ListStyle:
+        return MUST(String::formatted("{} {} {}", longhand(PropertyID::ListStylePosition)->to_string(), longhand(PropertyID::ListStyleImage)->to_string(), longhand(PropertyID::ListStyleType)->to_string()));
     default:
         StringBuilder builder;
         auto first = true;

+ 0 - 1
Userland/Libraries/LibWeb/Forward.h

@@ -127,7 +127,6 @@ class LengthOrCalculated;
 class LengthPercentage;
 class LengthStyleValue;
 class LinearGradientStyleValue;
-class ListStyleStyleValue;
 class MathDepthStyleValue;
 class MediaFeatureValue;
 class MediaList;