diff --git a/Userland/Libraries/LibGUI/ItemListModel.h b/Userland/Libraries/LibGUI/ItemListModel.h index ff7639ef1c..5703e69179 100644 --- a/Userland/Libraries/LibGUI/ItemListModel.h +++ b/Userland/Libraries/LibGUI/ItemListModel.h @@ -36,9 +36,11 @@ public: virtual ~ItemListModel() override { } - virtual int row_count(ModelIndex const&) const override + virtual int row_count(ModelIndex const& index) const override { - return m_provided_row_count.has_value() ? *m_provided_row_count : m_data.size(); + if (!index.is_valid()) + return m_provided_row_count.has_value() ? *m_provided_row_count : m_data.size(); + return 0; } virtual int column_count(ModelIndex const& index) const override @@ -77,6 +79,13 @@ public: return {}; } + virtual TriState data_matches(GUI::ModelIndex const& index, GUI::Variant const& term) const override + { + if (index.data().as_string().contains(term.as_string(), CaseSensitivity::CaseInsensitive)) + return TriState::True; + return TriState::False; + } + virtual bool is_searchable() const override { return true; } virtual Vector matches(StringView searching, unsigned flags, GUI::ModelIndex const&) override {