CodeViewWidget: Add WithDetailedUpdate to update CodeWidget

This used to also update the function calls and callers.
This commit is contained in:
Sepalani 2021-02-14 16:01:32 +04:00
parent 2f85b80b7b
commit 5f629abd8b
4 changed files with 21 additions and 7 deletions

View File

@ -442,8 +442,19 @@ void CodeViewWidget::SetAddress(u32 address, SetAddressUpdate update)
return;
m_address = address;
if (update == SetAddressUpdate::WithUpdate)
switch (update)
{
case SetAddressUpdate::WithoutUpdate:
return;
case SetAddressUpdate::WithUpdate:
// Update the CodeViewWidget
Update();
break;
case SetAddressUpdate::WithDetailedUpdate:
// Update the CodeWidget's views (code view, function calls/callers, ...)
emit UpdateCodeWidget();
break;
}
}
void CodeViewWidget::ReplaceAddress(u32 address, ReplaceWith replace)
@ -611,7 +622,7 @@ void CodeViewWidget::OnFollowBranch()
if (!branch_addr)
return;
SetAddress(branch_addr, SetAddressUpdate::WithUpdate);
SetAddress(branch_addr, SetAddressUpdate::WithDetailedUpdate);
}
void CodeViewWidget::OnRenameSymbol()
@ -785,7 +796,7 @@ void CodeViewWidget::mousePressEvent(QMouseEvent* event)
if (column(item) == CODE_VIEW_COLUMN_BREAKPOINT)
ToggleBreakpoint();
else
SetAddress(addr, SetAddressUpdate::WithUpdate);
SetAddress(addr, SetAddressUpdate::WithDetailedUpdate);
Update();
break;

View File

@ -25,7 +25,8 @@ public:
enum class SetAddressUpdate
{
WithUpdate,
WithoutUpdate
WithoutUpdate,
WithDetailedUpdate
};
explicit CodeViewWidget();
@ -49,6 +50,7 @@ signals:
void ShowMemory(u32 address);
void SymbolsChanged();
void BreakpointsChanged();
void UpdateCodeWidget();
private:
enum class ReplaceWith

View File

@ -170,6 +170,7 @@ void CodeWidget::ConnectWidgets()
connect(m_code_view, &CodeViewWidget::SymbolsChanged, this, &CodeWidget::UpdateSymbols);
connect(m_code_view, &CodeViewWidget::BreakpointsChanged, this,
[this] { emit BreakpointsChanged(); });
connect(m_code_view, &CodeViewWidget::UpdateCodeWidget, this, &CodeWidget::Update);
connect(m_code_view, &CodeViewWidget::RequestPPCComparison, this,
&CodeWidget::RequestPPCComparison);

View File

@ -419,7 +419,7 @@ void MainWindow::CreateComponents()
};
const auto request_view_in_memory = [this](u32 addr) { m_memory_widget->SetAddress(addr); };
const auto request_view_in_code = [this](u32 addr) {
m_code_widget->SetAddress(addr, CodeViewWidget::SetAddressUpdate::WithUpdate);
m_code_widget->SetAddress(addr, CodeViewWidget::SetAddressUpdate::WithDetailedUpdate);
};
connect(m_watch_widget, &WatchWidget::RequestMemoryBreakpoint, request_memory_breakpoint);
@ -439,7 +439,7 @@ void MainWindow::CreateComponents()
connect(m_memory_widget, &MemoryWidget::BreakpointsChanged, m_breakpoint_widget,
&BreakpointWidget::Update);
connect(m_memory_widget, &MemoryWidget::ShowCode, m_code_widget, [this](u32 address) {
m_code_widget->SetAddress(address, CodeViewWidget::SetAddressUpdate::WithUpdate);
m_code_widget->SetAddress(address, CodeViewWidget::SetAddressUpdate::WithDetailedUpdate);
});
connect(m_breakpoint_widget, &BreakpointWidget::BreakpointsChanged, m_code_widget,
@ -448,7 +448,7 @@ void MainWindow::CreateComponents()
&MemoryWidget::Update);
connect(m_breakpoint_widget, &BreakpointWidget::SelectedBreakpoint, [this](u32 address) {
if (Core::GetState() == Core::State::Paused)
m_code_widget->SetAddress(address, CodeViewWidget::SetAddressUpdate::WithUpdate);
m_code_widget->SetAddress(address, CodeViewWidget::SetAddressUpdate::WithDetailedUpdate);
});
}