GitFilesModel.h 958 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * Copyright (c) 2020, Itamar S. <itamar8910@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include "GitRepo.h"
  8. #include <AK/NonnullRefPtr.h>
  9. #include <LibGUI/Model.h>
  10. namespace HackStudio {
  11. class GitFilesModel final : public GUI::Model {
  12. public:
  13. static NonnullRefPtr<GitFilesModel> create(Vector<DeprecatedString>&& files);
  14. virtual int row_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return m_files.size(); }
  15. virtual int column_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return 1; }
  16. virtual ErrorOr<String> column_name(int) const override { return String {}; }
  17. virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
  18. virtual GUI::ModelIndex index(int row, int column, const GUI::ModelIndex&) const override;
  19. private:
  20. explicit GitFilesModel(Vector<DeprecatedString>&& files);
  21. Vector<DeprecatedString> m_files;
  22. };
  23. }