diff --git a/src/citra_qt/debugger/graphics/graphics.cpp b/src/citra_qt/debugger/graphics/graphics.cpp index 1a3c0157c0..674b831001 100644 --- a/src/citra_qt/debugger/graphics/graphics.cpp +++ b/src/citra_qt/debugger/graphics/graphics.cpp @@ -64,15 +64,22 @@ void GPUCommandStreamItemModel::OnGXCommandFinishedInternal(int total_command_co } GPUCommandStreamWidget::GPUCommandStreamWidget(QWidget* parent) - : QDockWidget(tr("Graphics Debugger"), parent) { + : QDockWidget(tr("Graphics Debugger"), parent), model(this) { setObjectName(QStringLiteral("GraphicsDebugger")); - GPUCommandStreamItemModel* command_model = new GPUCommandStreamItemModel(this); - g_debugger.RegisterObserver(command_model); - - QListView* command_list = new QListView; - command_list->setModel(command_model); + auto* command_list = new QListView; + command_list->setModel(&model); command_list->setFont(GetMonospaceFont()); setWidget(command_list); } + +void GPUCommandStreamWidget::showEvent(QShowEvent* event) { + g_debugger.RegisterObserver(&model); + QDockWidget::showEvent(event); +} + +void GPUCommandStreamWidget::hideEvent(QHideEvent* event) { + g_debugger.UnregisterObserver(&model); + QDockWidget::hideEvent(event); +} diff --git a/src/citra_qt/debugger/graphics/graphics.h b/src/citra_qt/debugger/graphics/graphics.h index 8837fb7922..9193c28219 100644 --- a/src/citra_qt/debugger/graphics/graphics.h +++ b/src/citra_qt/debugger/graphics/graphics.h @@ -37,5 +37,10 @@ class GPUCommandStreamWidget : public QDockWidget { public: GPUCommandStreamWidget(QWidget* parent = nullptr); +protected: + void showEvent(QShowEvent* event) override; + void hideEvent(QHideEvent* event) override; + private: + GPUCommandStreamItemModel model; };