Procházet zdrojové kódy

Pica/DebugUtils: Factor out BreakPointObserverDock into its own file.

Tony Wasserka před 11 roky
rodič
revize
3f649dc9b8

+ 2 - 0
src/citra_qt/CMakeLists.txt

@@ -8,6 +8,7 @@ set(SRCS
             debugger/callstack.cpp
             debugger/disassembler.cpp
             debugger/graphics.cpp
+            debugger/graphics_breakpoint_observer.cpp
             debugger/graphics_breakpoints.cpp
             debugger/graphics_cmdlists.cpp
             debugger/graphics_framebuffer.cpp
@@ -27,6 +28,7 @@ set(HEADERS
             debugger/callstack.h
             debugger/disassembler.h
             debugger/graphics.h
+            debugger/graphics_breakpoint_observer.h
             debugger/graphics_breakpoints.h
             debugger/graphics_breakpoints_p.h
             debugger/graphics_cmdlists.h

+ 32 - 0
src/citra_qt/debugger/graphics_breakpoint_observer.cpp

@@ -0,0 +1,32 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <QMetaType>
+
+#include "graphics_breakpoint_observer.h"
+
+BreakPointObserverDock::BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context,
+                                               const QString& title, QWidget* parent)
+    : QDockWidget(title, parent), BreakPointObserver(debug_context)
+{
+    qRegisterMetaType<Pica::DebugContext::Event>("Pica::DebugContext::Event");
+
+    connect(this, SIGNAL(Resumed()), this, SLOT(OnResumed()));
+
+    // NOTE: This signal is emitted from a non-GUI thread, but connect() takes
+    //       care of delaying its handling to the GUI thread.
+    connect(this, SIGNAL(BreakPointHit(Pica::DebugContext::Event,void*)),
+            this, SLOT(OnBreakPointHit(Pica::DebugContext::Event,void*)),
+            Qt::BlockingQueuedConnection);
+}
+
+void BreakPointObserverDock::OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data)
+{
+    emit BreakPointHit(event, data);
+}
+
+void BreakPointObserverDock::OnPicaResume()
+{
+    emit Resumed();
+}

+ 33 - 0
src/citra_qt/debugger/graphics_breakpoint_observer.h

@@ -0,0 +1,33 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <QDockWidget>
+
+#include "video_core/debug_utils/debug_utils.h"
+
+/**
+ * Utility class which forwards calls to OnPicaBreakPointHit and OnPicaResume to public slots.
+ * This is because the Pica breakpoint callbacks are called from a non-GUI thread, while
+ * the widget usually wants to perform reactions in the GUI thread.
+ */
+class BreakPointObserverDock : public QDockWidget, private Pica::DebugContext::BreakPointObserver {
+    Q_OBJECT
+
+public:
+    BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context, const QString& title,
+                           QWidget* parent = nullptr);
+
+    void OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data) override;
+    void OnPicaResume() override;
+
+private slots:
+    virtual void OnBreakPointHit(Pica::DebugContext::Event event, void* data) = 0;
+    virtual void OnResumed() = 0;
+
+signals:
+    void Resumed();
+    void BreakPointHit(Pica::DebugContext::Event event, void* data);
+};

+ 0 - 27
src/citra_qt/debugger/graphics_framebuffer.cpp

@@ -6,7 +6,6 @@
 #include <QComboBox>
 #include <QDebug>
 #include <QLabel>
-#include <QMetaType>
 #include <QPushButton>
 #include <QSpinBox>
 
@@ -17,32 +16,6 @@
 
 #include "util/spinbox.h"
 
-BreakPointObserverDock::BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context,
-                                               const QString& title, QWidget* parent)
-    : QDockWidget(title, parent), BreakPointObserver(debug_context)
-{
-    qRegisterMetaType<Pica::DebugContext::Event>("Pica::DebugContext::Event");
-
-    connect(this, SIGNAL(Resumed()), this, SLOT(OnResumed()));
-
-    // NOTE: This signal is emitted from a non-GUI thread, but connect() takes
-    //       care of delaying its handling to the GUI thread.
-    connect(this, SIGNAL(BreakPointHit(Pica::DebugContext::Event,void*)),
-            this, SLOT(OnBreakPointHit(Pica::DebugContext::Event,void*)),
-            Qt::BlockingQueuedConnection);
-}
-
-void BreakPointObserverDock::OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data)
-{
-    emit BreakPointHit(event, data);
-}
-
-void BreakPointObserverDock::OnPicaResume()
-{
-    emit Resumed();
-}
-
-
 GraphicsFramebufferWidget::GraphicsFramebufferWidget(std::shared_ptr<Pica::DebugContext> debug_context,
                                                      QWidget* parent)
     : BreakPointObserverDock(debug_context, tr("Pica Framebuffer"), parent),

+ 1 - 23
src/citra_qt/debugger/graphics_framebuffer.h

@@ -6,7 +6,7 @@
 
 #include <QDockWidget>
 
-#include "video_core/debug_utils/debug_utils.h"
+#include "graphics_breakpoint_observer.h"
 
 class QComboBox;
 class QLabel;
@@ -14,28 +14,6 @@ class QSpinBox;
 
 class CSpinBox;
 
-// Utility class which forwards calls to OnPicaBreakPointHit and OnPicaResume to public slots.
-// This is because the Pica breakpoint callbacks are called from a non-GUI thread, while
-// the widget usually wants to perform reactions in the GUI thread.
-class BreakPointObserverDock : public QDockWidget, Pica::DebugContext::BreakPointObserver {
-    Q_OBJECT
-
-public:
-    BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context, const QString& title,
-                           QWidget* parent = nullptr);
-
-    void OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data) override;
-    void OnPicaResume() override;
-
-private slots:
-    virtual void OnBreakPointHit(Pica::DebugContext::Event event, void* data) = 0;
-    virtual void OnResumed() = 0;
-
-signals:
-    void Resumed();
-    void BreakPointHit(Pica::DebugContext::Event event, void* data);
-};
-
 class GraphicsFramebufferWidget : public BreakPointObserverDock {
     Q_OBJECT