From 5358e898c682de4ab8e94670bb990564d0d0c547 Mon Sep 17 00:00:00 2001 From: aldelaro5 Date: Thu, 11 Aug 2016 14:24:10 -0400 Subject: [PATCH] Fix the breakpoint list not updating after adding a memory check via the memory view. Add the CCodeWindow to the constructor of the memoryWindow so it can call the notify update of the breakpoint list. Add the case of breakpoint update when receiving an event (the update command was issued, but wasn't managed before). Run clang format and renamed the code window names. --- .../Core/DolphinWX/Debugger/CodeWindowFunctions.cpp | 2 +- Source/Core/DolphinWX/Debugger/MemoryWindow.cpp | 13 ++++++++++--- Source/Core/DolphinWX/Debugger/MemoryWindow.h | 9 ++++++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp b/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp index eac9933294..8a46245f37 100644 --- a/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp +++ b/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp @@ -604,7 +604,7 @@ void CCodeWindow::ToggleMemoryWindow(bool bShow) if (bShow) { if (!m_MemoryWindow) - m_MemoryWindow = new CMemoryWindow(Parent, IDM_MEMORY_WINDOW); + m_MemoryWindow = new CMemoryWindow(this, Parent, IDM_MEMORY_WINDOW); Parent->DoAddPage(m_MemoryWindow, iNbAffiliation[IDM_MEMORY_WINDOW - IDM_LOG_WINDOW], Parent->bFloatWindow[IDM_MEMORY_WINDOW - IDM_LOG_WINDOW]); } diff --git a/Source/Core/DolphinWX/Debugger/MemoryWindow.cpp b/Source/Core/DolphinWX/Debugger/MemoryWindow.cpp index 24188a65ea..bfd5829ef0 100644 --- a/Source/Core/DolphinWX/Debugger/MemoryWindow.cpp +++ b/Source/Core/DolphinWX/Debugger/MemoryWindow.cpp @@ -26,6 +26,8 @@ #include "Core/HW/DSP.h" #include "Core/HW/Memmap.h" #include "Core/PowerPC/PowerPC.h" +#include "DolphinWX/Debugger/BreakpointWindow.h" +#include "DolphinWX/Debugger/CodeWindow.h" #include "DolphinWX/Debugger/MemoryView.h" #include "DolphinWX/Debugger/MemoryWindow.h" #include "DolphinWX/Globals.h" @@ -63,9 +65,10 @@ EVT_CHECKBOX(IDM_ASCII, CMemoryWindow::onAscii) EVT_CHECKBOX(IDM_HEX, CMemoryWindow::onHex) END_EVENT_TABLE() -CMemoryWindow::CMemoryWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style, const wxString& name) - : wxPanel(parent, id, pos, size, style, name) +CMemoryWindow::CMemoryWindow(CCodeWindow* code_window, wxWindow* parent, wxWindowID id, + const wxPoint& pos, const wxSize& size, long style, + const wxString& name) + : wxPanel(parent, id, pos, size, style, name), m_code_window(code_window) { DebugInterface* di = &PowerPC::debug_interface; @@ -243,6 +246,10 @@ void CMemoryWindow::OnHostMessage(wxCommandEvent& event) case IDM_NOTIFY_MAP_LOADED: NotifyMapLoaded(); break; + case IDM_UPDATE_BREAKPOINTS: + if (m_code_window->m_BreakpointWindow) + m_code_window->m_BreakpointWindow->NotifyUpdate(); + break; } } diff --git a/Source/Core/DolphinWX/Debugger/MemoryWindow.h b/Source/Core/DolphinWX/Debugger/MemoryWindow.h index c2f94677ca..3eca29e613 100644 --- a/Source/Core/DolphinWX/Debugger/MemoryWindow.h +++ b/Source/Core/DolphinWX/Debugger/MemoryWindow.h @@ -8,6 +8,7 @@ #include "Common/CommonTypes.h" class CMemoryView; +class CCodeWindow; class IniFile; class wxButton; class wxCheckBox; @@ -18,9 +19,9 @@ class wxTextCtrl; class CMemoryWindow : public wxPanel { public: - CMemoryWindow(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL | wxBORDER_NONE, - const wxString& name = _("Memory")); + CMemoryWindow(CCodeWindow* code_window, wxWindow* parent, wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, + long style = wxTAB_TRAVERSAL | wxBORDER_NONE, const wxString& name = _("Memory")); void Save(IniFile& _IniFile) const; void Load(IniFile& _IniFile); @@ -55,6 +56,8 @@ private: wxCheckBox* chkAscii; wxCheckBox* chkHex; + CCodeWindow* m_code_window; + CMemoryView* memview; wxListBox* symbols;