mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 06:17:35 +00:00
LibWeb: Add Layout::Node::debug_description()
This returns a String with this format: - LayoutNodeClassName<TAG_NAME>#id.class1.class2.class3 I've rewritten this function 10+ times at this point, so I'm just gonna add it to the repository for future debugging needs. :^)
This commit is contained in:
parent
cf5eeb9f4b
commit
c8051f8b5b
2 changed files with 20 additions and 0 deletions
|
@ -527,6 +527,25 @@ String Node::class_name() const
|
||||||
return demangle(typeid(*this).name());
|
return demangle(typeid(*this).name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String Node::debug_description() const
|
||||||
|
{
|
||||||
|
StringBuilder builder;
|
||||||
|
builder.append(class_name().substring_view(13));
|
||||||
|
if (dom_node()) {
|
||||||
|
builder.appendff("<{}>", dom_node()->node_name());
|
||||||
|
if (dom_node()->is_element()) {
|
||||||
|
auto& element = static_cast<DOM::Element const&>(*dom_node());
|
||||||
|
if (auto id = element.get_attribute(HTML::AttributeNames::id); !id.is_null())
|
||||||
|
builder.appendff("#{}", id);
|
||||||
|
for (auto const& class_name : element.class_names())
|
||||||
|
builder.appendff(".{}", class_name);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
builder.append("(anonymous)");
|
||||||
|
}
|
||||||
|
return builder.to_string();
|
||||||
|
}
|
||||||
|
|
||||||
bool Node::is_inline_block() const
|
bool Node::is_inline_block() const
|
||||||
{
|
{
|
||||||
return is_inline() && is<BlockContainer>(*this);
|
return is_inline() && is<BlockContainer>(*this);
|
||||||
|
|
|
@ -74,6 +74,7 @@ public:
|
||||||
bool is_root_element() const;
|
bool is_root_element() const;
|
||||||
|
|
||||||
String class_name() const;
|
String class_name() const;
|
||||||
|
String debug_description() const;
|
||||||
|
|
||||||
bool has_style() const { return m_has_style; }
|
bool has_style() const { return m_has_style; }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue