Serenity Operating System
1/*
2 * Copyright (c) 2022, Valtteri Koskivuori <vkoskiv@gmail.com>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <LibGUI/Model.h>
10
11namespace Browser {
12
13class StorageModel final : public GUI::Model {
14public:
15 enum Column {
16 Key,
17 Value,
18 __Count,
19 };
20
21 void set_items(OrderedHashMap<DeprecatedString, DeprecatedString> map);
22 void clear_items();
23 virtual int row_count(GUI::ModelIndex const&) const override;
24 virtual int column_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override { return Column::__Count; }
25 virtual DeprecatedString column_name(int column) const override;
26 virtual GUI::ModelIndex index(int row, int column = 0, GUI::ModelIndex const& = GUI::ModelIndex()) const override;
27 virtual GUI::Variant data(GUI::ModelIndex const& index, GUI::ModelRole role = GUI::ModelRole::Display) const override;
28 virtual TriState data_matches(GUI::ModelIndex const& index, GUI::Variant const& term) const override;
29
30private:
31 OrderedHashMap<DeprecatedString, DeprecatedString> m_local_storage_entries;
32};
33
34}