graphics_breakpoints_p.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include <QAbstractListModel>
  7. #include "video_core/debug_utils/debug_utils.h"
  8. class BreakPointModel : public QAbstractListModel {
  9. Q_OBJECT
  10. public:
  11. enum {
  12. Role_IsEnabled = Qt::UserRole,
  13. };
  14. BreakPointModel(std::shared_ptr<Tegra::DebugContext> context, QObject* parent);
  15. int columnCount(const QModelIndex& parent = QModelIndex()) const override;
  16. int rowCount(const QModelIndex& parent = QModelIndex()) const override;
  17. QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
  18. Qt::ItemFlags flags(const QModelIndex& index) const override;
  19. bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
  20. void OnBreakPointHit(Tegra::DebugContext::Event event);
  21. void OnResumed();
  22. private:
  23. static QString DebugContextEventToString(Tegra::DebugContext::Event event);
  24. std::weak_ptr<Tegra::DebugContext> context_weak;
  25. bool at_breakpoint;
  26. Tegra::DebugContext::Event active_breakpoint;
  27. };