summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibWeb/DOMTreeJSONModel.cpp56
-rw-r--r--Userland/Libraries/LibWeb/DOMTreeJSONModel.h5
2 files changed, 9 insertions, 52 deletions
diff --git a/Userland/Libraries/LibWeb/DOMTreeJSONModel.cpp b/Userland/Libraries/LibWeb/DOMTreeJSONModel.cpp
index efd0fea541..2ec8991518 100644
--- a/Userland/Libraries/LibWeb/DOMTreeJSONModel.cpp
+++ b/Userland/Libraries/LibWeb/DOMTreeJSONModel.cpp
@@ -27,17 +27,16 @@ DOMTreeJSONModel::~DOMTreeJSONModel()
GUI::ModelIndex DOMTreeJSONModel::index(int row, int column, const GUI::ModelIndex& parent) const
{
if (!parent.is_valid()) {
- return create_index(row, column, (void*)get_internal_id(m_dom_tree));
+ return create_index(row, column, &m_dom_tree);
}
- auto const& parent_node = find_node(parent);
+ auto const& parent_node = *static_cast<JsonObject const*>(parent.internal_data());
auto const* children = get_children(parent_node);
if (!children)
- return create_index(row, column, (void*)get_internal_id(m_dom_tree));
+ return create_index(row, column, &m_dom_tree);
auto const& child_node = children->at(row).as_object();
- auto child_internal_id = (void*)get_internal_id(child_node);
- return create_index(row, column, child_internal_id);
+ return create_index(row, column, &child_node);
}
GUI::ModelIndex DOMTreeJSONModel::parent_index(const GUI::ModelIndex& index) const
@@ -47,7 +46,7 @@ GUI::ModelIndex DOMTreeJSONModel::parent_index(const GUI::ModelIndex& index) con
if (!index.is_valid())
return {};
- auto const& node = find_node(index);
+ auto const& node = *static_cast<JsonObject const*>(index.internal_data());
auto node_internal_id = get_internal_id(node);
auto const* parent_node = find_parent_of_child_with_internal_id(node_internal_id);
@@ -57,7 +56,7 @@ GUI::ModelIndex DOMTreeJSONModel::parent_index(const GUI::ModelIndex& index) con
// If the parent is the root document, we know it has index 0, 0
auto parent_node_internal_id = get_internal_id(*parent_node);
if (parent_node_internal_id == get_internal_id(m_dom_tree)) {
- return create_index(0, 0, (void*)parent_node_internal_id);
+ return create_index(0, 0, parent_node);
}
// Otherwise, we need to find the grandparent, to find the index of parent within that
@@ -71,7 +70,7 @@ GUI::ModelIndex DOMTreeJSONModel::parent_index(const GUI::ModelIndex& index) con
for (size_t grandparent_child_index = 0; grandparent_child_index < grandparent_children->size(); ++grandparent_child_index) {
auto const& child = grandparent_children->at(grandparent_child_index).as_object();
if (get_internal_id(child) == parent_node_internal_id)
- return create_index(grandparent_child_index, 0, (void*)(parent_node_internal_id));
+ return create_index(grandparent_child_index, 0, parent_node);
}
return {};
@@ -82,7 +81,7 @@ int DOMTreeJSONModel::row_count(const GUI::ModelIndex& index) const
if (!index.is_valid())
return 1;
- auto const& node = find_node(index);
+ auto const& node = *static_cast<JsonObject const*>(index.internal_data());
auto const* children = get_children(node);
return children ? children->size() : 0;
}
@@ -115,7 +114,7 @@ static String with_whitespace_collapsed(const StringView& string)
GUI::Variant DOMTreeJSONModel::data(const GUI::ModelIndex& index, GUI::ModelRole role) const
{
- auto const& node = find_node(index);
+ auto const& node = *static_cast<JsonObject const*>(index.internal_data());
auto node_name = node.get("name").as_string();
auto type = node.get("type").as_string_or("unknown");
@@ -183,32 +182,6 @@ JsonObject const* DOMTreeJSONModel::find_parent_of_child_with_internal_id(JsonOb
return nullptr;
}
-JsonObject const* DOMTreeJSONModel::find_child_with_internal_id(size_t internal_id) const
-{
- return find_child_with_internal_id(m_dom_tree, internal_id);
-}
-
-JsonObject const* DOMTreeJSONModel::find_child_with_internal_id(JsonObject const& node, size_t internal_id) const
-{
- auto node_internal_id = get_internal_id(node);
- if (node_internal_id == internal_id) {
- return &node;
- }
-
- auto const* children = get_children(node);
- if (!children)
- return nullptr;
-
- for (size_t i = 0; i < children->size(); ++i) {
- auto const& child = children->at(i).as_object();
-
- if (auto const* maybe_node = find_child_with_internal_id(child, internal_id); maybe_node)
- return maybe_node;
- }
-
- return nullptr;
-}
-
size_t DOMTreeJSONModel::get_internal_id(JsonObject const& o)
{
return o.get("internal_id").as_u32();
@@ -221,15 +194,4 @@ JsonArray const* DOMTreeJSONModel::get_children(JsonObject const& o)
return nullptr;
}
-JsonObject const& DOMTreeJSONModel::find_node(GUI::ModelIndex const& index) const
-{
- auto internal_id = (size_t)(index.internal_data());
-
- if (auto const* maybe_node = find_child_with_internal_id(internal_id); maybe_node)
- return *maybe_node;
-
- dbgln("Failed to find node with internal_id={}", internal_id);
- VERIFY_NOT_REACHED();
-}
-
}
diff --git a/Userland/Libraries/LibWeb/DOMTreeJSONModel.h b/Userland/Libraries/LibWeb/DOMTreeJSONModel.h
index d81896a9d1..e8a65800a2 100644
--- a/Userland/Libraries/LibWeb/DOMTreeJSONModel.h
+++ b/Userland/Libraries/LibWeb/DOMTreeJSONModel.h
@@ -39,11 +39,6 @@ private:
JsonObject const* find_parent_of_child_with_internal_id(size_t) const;
JsonObject const* find_parent_of_child_with_internal_id(JsonObject const&, size_t) const;
- JsonObject const* find_child_with_internal_id(size_t) const;
- JsonObject const* find_child_with_internal_id(JsonObject const&, size_t) const;
-
- JsonObject const& find_node(GUI::ModelIndex const&) const;
-
static size_t get_internal_id(const JsonObject& o);
static JsonArray const* get_children(const JsonObject& o);