diff options
author | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2021-09-02 21:40:55 -0400 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-10-07 13:50:13 -0400 |
commit | fb66a455c4c7c1e196fc1001a52325a33e50b127 (patch) | |
tree | 97782dab7d9b57b119c765e73a585a6b90484a43 /src/yuzu/debugger/wait_tree.h | |
parent | f84328934f5e09894a69d9fa1d2f6a34c715321b (diff) |
yuzu qt: Remove global system instances from config, WaitTree, main
Diffstat (limited to 'src/yuzu/debugger/wait_tree.h')
-rw-r--r-- | src/yuzu/debugger/wait_tree.h | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/src/yuzu/debugger/wait_tree.h b/src/yuzu/debugger/wait_tree.h index d450345df..ea4d2e299 100644 --- a/src/yuzu/debugger/wait_tree.h +++ b/src/yuzu/debugger/wait_tree.h @@ -18,6 +18,10 @@ class EmuThread; +namespace Core { +class System; +} + namespace Kernel { class KHandleTable; class KReadableEvent; @@ -42,7 +46,7 @@ public: WaitTreeItem* Parent() const; const std::vector<std::unique_ptr<WaitTreeItem>>& Children() const; std::size_t Row() const; - static std::vector<std::unique_ptr<WaitTreeThread>> MakeThreadItemList(); + static std::vector<std::unique_ptr<WaitTreeThread>> MakeThreadItemList(Core::System& system); private: std::size_t row; @@ -75,7 +79,8 @@ public: class WaitTreeMutexInfo : public WaitTreeExpandableItem { Q_OBJECT public: - explicit WaitTreeMutexInfo(VAddr mutex_address, const Kernel::KHandleTable& handle_table); + explicit WaitTreeMutexInfo(VAddr mutex_address, const Kernel::KHandleTable& handle_table, + Core::System& system_); ~WaitTreeMutexInfo() override; QString GetText() const override; @@ -86,12 +91,14 @@ private: u32 mutex_value{}; Kernel::Handle owner_handle{}; Kernel::KThread* owner{}; + + Core::System& system; }; class WaitTreeCallstack : public WaitTreeExpandableItem { Q_OBJECT public: - explicit WaitTreeCallstack(const Kernel::KThread& thread); + explicit WaitTreeCallstack(const Kernel::KThread& thread, Core::System& system_); ~WaitTreeCallstack() override; QString GetText() const override; @@ -99,27 +106,34 @@ public: private: const Kernel::KThread& thread; + + Core::System& system; }; class WaitTreeSynchronizationObject : public WaitTreeExpandableItem { Q_OBJECT public: - explicit WaitTreeSynchronizationObject(const Kernel::KSynchronizationObject& object); + explicit WaitTreeSynchronizationObject(const Kernel::KSynchronizationObject& object, + Core::System& system_); ~WaitTreeSynchronizationObject() override; static std::unique_ptr<WaitTreeSynchronizationObject> make( - const Kernel::KSynchronizationObject& object); + const Kernel::KSynchronizationObject& object, Core::System& system); QString GetText() const override; std::vector<std::unique_ptr<WaitTreeItem>> GetChildren() const override; protected: const Kernel::KSynchronizationObject& object; + +private: + Core::System& system; }; class WaitTreeObjectList : public WaitTreeExpandableItem { Q_OBJECT public: - WaitTreeObjectList(const std::vector<Kernel::KSynchronizationObject*>& list, bool wait_all); + WaitTreeObjectList(const std::vector<Kernel::KSynchronizationObject*>& list, bool wait_all, + Core::System& system_); ~WaitTreeObjectList() override; QString GetText() const override; @@ -128,30 +142,35 @@ public: private: const std::vector<Kernel::KSynchronizationObject*>& object_list; bool wait_all; + + Core::System& system; }; class WaitTreeThread : public WaitTreeSynchronizationObject { Q_OBJECT public: - explicit WaitTreeThread(const Kernel::KThread& thread); + explicit WaitTreeThread(const Kernel::KThread& thread, Core::System& system_); ~WaitTreeThread() override; QString GetText() const override; QColor GetColor() const override; std::vector<std::unique_ptr<WaitTreeItem>> GetChildren() const override; + +private: + Core::System& system; }; class WaitTreeEvent : public WaitTreeSynchronizationObject { Q_OBJECT public: - explicit WaitTreeEvent(const Kernel::KReadableEvent& object); + explicit WaitTreeEvent(const Kernel::KReadableEvent& object, Core::System& system_); ~WaitTreeEvent() override; }; class WaitTreeThreadList : public WaitTreeExpandableItem { Q_OBJECT public: - explicit WaitTreeThreadList(std::vector<Kernel::KThread*>&& list); + explicit WaitTreeThreadList(std::vector<Kernel::KThread*>&& list, Core::System& system_); ~WaitTreeThreadList() override; QString GetText() const override; @@ -159,13 +178,15 @@ public: private: std::vector<Kernel::KThread*> thread_list; + + Core::System& system; }; class WaitTreeModel : public QAbstractItemModel { Q_OBJECT public: - explicit WaitTreeModel(QObject* parent = nullptr); + explicit WaitTreeModel(Core::System& system_, QObject* parent = nullptr); ~WaitTreeModel() override; QVariant data(const QModelIndex& index, int role) const override; @@ -179,13 +200,15 @@ public: private: std::vector<std::unique_ptr<WaitTreeThread>> thread_items; + + Core::System& system; }; class WaitTreeWidget : public QDockWidget { Q_OBJECT public: - explicit WaitTreeWidget(QWidget* parent = nullptr); + explicit WaitTreeWidget(Core::System& system_, QWidget* parent = nullptr); ~WaitTreeWidget() override; public slots: @@ -198,4 +221,6 @@ public slots: private: QTreeView* view; WaitTreeModel* model; + + Core::System& system; }; |