SamplesModel.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibGUI/Model.h>
  8. class Profile;
  9. class SamplesModel final : public GUI::Model {
  10. public:
  11. static NonnullRefPtr<SamplesModel> create(Profile& profile)
  12. {
  13. return adopt_ref(*new SamplesModel(profile));
  14. }
  15. enum Column {
  16. SampleIndex,
  17. Timestamp,
  18. ProcessID,
  19. ThreadID,
  20. ExecutableName,
  21. InnermostStackFrame,
  22. __Count
  23. };
  24. virtual ~SamplesModel() override;
  25. virtual int row_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override;
  26. virtual int column_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override;
  27. virtual String column_name(int) const override;
  28. virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
  29. virtual void update() override;
  30. private:
  31. explicit SamplesModel(Profile&);
  32. Profile& m_profile;
  33. GUI::Icon m_user_frame_icon;
  34. GUI::Icon m_kernel_frame_icon;
  35. };