From fb66a455c4c7c1e196fc1001a52325a33e50b127 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Thu, 2 Sep 2021 21:40:55 -0400 Subject: yuzu qt: Remove global system instances from config, WaitTree, main --- src/yuzu/debugger/wait_tree.h | 47 +++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 11 deletions(-) (limited to 'src/yuzu/debugger/wait_tree.h') 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>& Children() const; std::size_t Row() const; - static std::vector> MakeThreadItemList(); + static std::vector> 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 make( - const Kernel::KSynchronizationObject& object); + const Kernel::KSynchronizationObject& object, Core::System& system); QString GetText() const override; std::vector> GetChildren() const override; protected: const Kernel::KSynchronizationObject& object; + +private: + Core::System& system; }; class WaitTreeObjectList : public WaitTreeExpandableItem { Q_OBJECT public: - WaitTreeObjectList(const std::vector& list, bool wait_all); + WaitTreeObjectList(const std::vector& list, bool wait_all, + Core::System& system_); ~WaitTreeObjectList() override; QString GetText() const override; @@ -128,30 +142,35 @@ public: private: const std::vector& 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> 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&& list); + explicit WaitTreeThreadList(std::vector&& list, Core::System& system_); ~WaitTreeThreadList() override; QString GetText() const override; @@ -159,13 +178,15 @@ public: private: std::vector 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> 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; }; -- cgit v1.2.3