/* * Copyright (c) 2020, Hüseyin Aslıtürk * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include class CharacterMapFileListModel final : public GUI::Model { public: static NonnullRefPtr create(Vector& file_names) { return adopt_ref(*new CharacterMapFileListModel(file_names)); } virtual ~CharacterMapFileListModel() override { } virtual int row_count(const GUI::ModelIndex&) const override { return m_file_names.size(); } virtual int column_count(const GUI::ModelIndex&) const override { return 1; } virtual GUI::Variant data(const GUI::ModelIndex& index, GUI::ModelRole role) const override { VERIFY(index.is_valid()); VERIFY(index.column() == 0); if (role == GUI::ModelRole::Display) return m_file_names.at(index.row()); return {}; } virtual void update() override { did_update(); } private: explicit CharacterMapFileListModel(Vector& file_names) : m_file_names(file_names) { } Vector& m_file_names; };