/* * Copyright (c) 2022, MacDue * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "ModelTranslator.h" #include "WebContentView.h" #include #include #include #include class QTreeView; class QTableView; namespace Ladybird { class InspectorWidget final : public QWidget { Q_OBJECT public: InspectorWidget(); virtual ~InspectorWidget() = default; struct Selection { i32 dom_node_id { 0 }; Optional pseudo_element {}; bool operator==(Selection const& other) const = default; }; void clear_dom_json(); void set_dom_json(StringView dom_json); void load_style_json(StringView computed_style_json, StringView resolved_style_json, StringView custom_properties_json); void clear_style_json(); Function(i32, Optional)> on_dom_node_inspected; Function on_close; private: void set_selection(GUI::ModelIndex); void closeEvent(QCloseEvent*) override; Selection m_selection; ModelTranslator m_dom_model {}; ModelTranslator m_computed_style_model {}; ModelTranslator m_resolved_style_model {}; ModelTranslator m_custom_properties_model {}; }; }