summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/StylePropertiesModel.h
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@gmail.com>2021-08-24 16:27:10 +0100
committerAndreas Kling <kling@serenityos.org>2021-09-02 22:16:41 +0200
commit57ee7b3d561ef1bb24ba899a9eeeaa0c99c60b37 (patch)
tree90a931a844e4b80aa881f1ad341629007d36aa47 /Userland/Libraries/LibWeb/StylePropertiesModel.h
parent08aa7b77a7b4925c2694b999cadf4cc15a966455 (diff)
downloadserenity-57ee7b3d561ef1bb24ba899a9eeeaa0c99c60b37.zip
LibWeb: Modify StylePropertiesModel to work with JSON
Now that the DOM Inspector communicates remotely with the web content, we can't read the `StyleProperties` object from a `Node` directly, but will receive JSON over IPC. This updates the model to match.
Diffstat (limited to 'Userland/Libraries/LibWeb/StylePropertiesModel.h')
-rw-r--r--Userland/Libraries/LibWeb/StylePropertiesModel.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/Userland/Libraries/LibWeb/StylePropertiesModel.h b/Userland/Libraries/LibWeb/StylePropertiesModel.h
index a5e84c617a..3b7ae1742c 100644
--- a/Userland/Libraries/LibWeb/StylePropertiesModel.h
+++ b/Userland/Libraries/LibWeb/StylePropertiesModel.h
@@ -1,19 +1,18 @@
/*
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2021, Sam Atkins <atkinssj@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
-#include <AK/NonnullRefPtrVector.h>
+#include <AK/JsonObject.h>
#include <LibGUI/Model.h>
#include <LibWeb/CSS/StyleProperties.h>
namespace Web {
-class StyleProperties;
-
class StylePropertiesModel final : public GUI::Model {
public:
enum Column {
@@ -22,18 +21,26 @@ public:
__Count
};
- static NonnullRefPtr<StylePropertiesModel> create(const CSS::StyleProperties& properties) { return adopt_ref(*new StylePropertiesModel(properties)); }
+ static NonnullRefPtr<StylePropertiesModel> create(StringView properties)
+ {
+ auto json_or_error = JsonValue::from_string(properties);
+ if (!json_or_error.has_value())
+ VERIFY_NOT_REACHED();
+
+ return adopt_ref(*new StylePropertiesModel(json_or_error.value().as_object()));
+ }
+
+ virtual ~StylePropertiesModel() override;
- virtual int row_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override;
- virtual int column_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return Column::__Count; }
+ virtual int row_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override;
+ virtual int column_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override { return Column::__Count; }
virtual String column_name(int) const override;
- virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
+ virtual GUI::Variant data(GUI::ModelIndex const&, GUI::ModelRole) const override;
private:
- explicit StylePropertiesModel(const CSS::StyleProperties& properties);
- const CSS::StyleProperties& properties() const { return *m_properties; }
+ explicit StylePropertiesModel(JsonObject);
- NonnullRefPtr<CSS::StyleProperties> m_properties;
+ JsonObject m_properties;
struct Value {
String name;