CharacterMapFileListModel.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2020, Hüseyin Aslıtürk <asliturk@hotmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Vector.h>
  8. #include <LibGUI/Model.h>
  9. class CharacterMapFileListModel final : public GUI::Model {
  10. public:
  11. static NonnullRefPtr<CharacterMapFileListModel> create(Vector<String>& filenames)
  12. {
  13. return adopt_ref(*new CharacterMapFileListModel(filenames));
  14. }
  15. virtual ~CharacterMapFileListModel() override { }
  16. virtual int row_count(const GUI::ModelIndex&) const override
  17. {
  18. return m_filenames.size();
  19. }
  20. virtual int column_count(const GUI::ModelIndex&) const override
  21. {
  22. return 1;
  23. }
  24. virtual GUI::Variant data(const GUI::ModelIndex& index, GUI::ModelRole role) const override
  25. {
  26. VERIFY(index.is_valid());
  27. VERIFY(index.column() == 0);
  28. if (role == GUI::ModelRole::Display)
  29. return m_filenames.at(index.row());
  30. return {};
  31. }
  32. private:
  33. explicit CharacterMapFileListModel(Vector<String>& filenames)
  34. : m_filenames(filenames)
  35. {
  36. }
  37. Vector<String>& m_filenames;
  38. };