mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-04 07:10:57 +00:00 
			
		
		
		
	This adds the default behavior of search and highlighting of abstractView to the inspectorWidget. Search results are based on the titles in the first columns.
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
 | 
						|
 * Copyright (c) 2021, Sam Atkins <atkinssj@serenityos.org>
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: BSD-2-Clause
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <AK/JsonObject.h>
 | 
						|
#include <LibGUI/Model.h>
 | 
						|
#include <LibWeb/CSS/StyleProperties.h>
 | 
						|
 | 
						|
namespace Web {
 | 
						|
 | 
						|
class StylePropertiesModel final : public GUI::Model {
 | 
						|
public:
 | 
						|
    enum Column {
 | 
						|
        PropertyName,
 | 
						|
        PropertyValue,
 | 
						|
        __Count
 | 
						|
    };
 | 
						|
 | 
						|
    static NonnullRefPtr<StylePropertiesModel> create(StringView properties)
 | 
						|
    {
 | 
						|
        auto json_or_error = JsonValue::from_string(properties).release_value_but_fixme_should_propagate_errors();
 | 
						|
        return adopt_ref(*new StylePropertiesModel(json_or_error.as_object()));
 | 
						|
    }
 | 
						|
 | 
						|
    virtual ~StylePropertiesModel() override;
 | 
						|
 | 
						|
    virtual int row_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override;
 | 
						|
    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<GUI::ModelIndex> matches(StringView, unsigned flags, GUI::ModelIndex const&) override;
 | 
						|
 | 
						|
private:
 | 
						|
    explicit StylePropertiesModel(JsonObject);
 | 
						|
 | 
						|
    JsonObject m_properties;
 | 
						|
 | 
						|
    struct Value {
 | 
						|
        String name;
 | 
						|
        String value;
 | 
						|
    };
 | 
						|
    Vector<Value> m_values;
 | 
						|
};
 | 
						|
 | 
						|
}
 |