diff --git a/Userland/Applications/Browser/InspectorWidget.cpp b/Userland/Applications/Browser/InspectorWidget.cpp index 24daae993a..cdfd78a190 100644 --- a/Userland/Applications/Browser/InspectorWidget.cpp +++ b/Userland/Applications/Browser/InspectorWidget.cpp @@ -162,12 +162,15 @@ void InspectorWidget::load_style_json(String specified_values_json, String compu { m_selection_specified_values_json = specified_values_json; m_style_table_view->set_model(Web::StylePropertiesModel::create(m_selection_specified_values_json.value().view())); + m_style_table_view->set_searchable(true); m_selection_computed_values_json = computed_values_json; m_computed_style_table_view->set_model(Web::StylePropertiesModel::create(m_selection_computed_values_json.value().view())); + m_computed_style_table_view->set_searchable(true); m_selection_custom_properties_json = custom_properties_json; m_custom_properties_table_view->set_model(Web::StylePropertiesModel::create(m_selection_custom_properties_json.value().view())); + m_custom_properties_table_view->set_searchable(true); } void InspectorWidget::update_node_box_model(Optional node_box_sizing_json) diff --git a/Userland/Libraries/LibWeb/StylePropertiesModel.cpp b/Userland/Libraries/LibWeb/StylePropertiesModel.cpp index 6c3bc47438..fa69248bda 100644 --- a/Userland/Libraries/LibWeb/StylePropertiesModel.cpp +++ b/Userland/Libraries/LibWeb/StylePropertiesModel.cpp @@ -56,4 +56,21 @@ GUI::Variant StylePropertiesModel::data(GUI::ModelIndex const& index, GUI::Model return {}; } +Vector StylePropertiesModel::matches(StringView searching, unsigned flags, GUI::ModelIndex const& parent) +{ + if (m_values.is_empty()) + return {}; + Vector found_indices; + for (auto it = m_values.begin(); !it.is_end(); ++it) { + GUI::ModelIndex index = this->index(it.index(), Column::PropertyName, parent); + if (!string_matches(data(index, GUI::ModelRole::Display).as_string(), searching, flags)) + continue; + + found_indices.append(index); + if (flags & FirstMatchOnly) + break; + } + return found_indices; +} + } diff --git a/Userland/Libraries/LibWeb/StylePropertiesModel.h b/Userland/Libraries/LibWeb/StylePropertiesModel.h index 974f403a75..b4b1debd74 100644 --- a/Userland/Libraries/LibWeb/StylePropertiesModel.h +++ b/Userland/Libraries/LibWeb/StylePropertiesModel.h @@ -33,6 +33,8 @@ public: 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(GUI::ModelIndex const&, GUI::ModelRole) const override; + virtual bool is_searchable() const override { return true; } + virtual Vector matches(StringView, unsigned flags, GUI::ModelIndex const&) override; private: explicit StylePropertiesModel(JsonObject);