From 69ceebeb05d247f5318753b183559253c15ead87 Mon Sep 17 00:00:00 2001 From: Elad Ashkenazi Date: Wed, 22 Jun 2022 00:42:42 +0300 Subject: [PATCH] Debugger: Hide breakpoint and callstack list if unused (#12266) --- rpcs3/rpcs3qt/breakpoint_list.cpp | 12 ++++++++++++ rpcs3/rpcs3qt/call_stack_list.cpp | 5 +++++ rpcs3/rpcs3qt/debugger_frame.cpp | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/rpcs3/rpcs3qt/breakpoint_list.cpp b/rpcs3/rpcs3qt/breakpoint_list.cpp index 037d21f364..15cf48467e 100644 --- a/rpcs3/rpcs3qt/breakpoint_list.cpp +++ b/rpcs3/rpcs3qt/breakpoint_list.cpp @@ -26,6 +26,9 @@ breakpoint_list::breakpoint_list(QWidget* parent, breakpoint_handler* handler) : m_delete_action->setShortcutContext(Qt::WidgetShortcut); connect(m_delete_action, &QAction::triggered, this, &breakpoint_list::OnBreakpointListDelete); addAction(m_delete_action); + + // Hide until used in order to allow as much space for registers panel as possible + hide(); } /** @@ -46,6 +49,8 @@ void breakpoint_list::ClearBreakpoints() m_ppu_breakpoint_handler->RemoveBreakpoint(loc); delete currentItem; } + + hide(); } void breakpoint_list::RemoveBreakpoint(u32 addr) @@ -64,6 +69,11 @@ void breakpoint_list::RemoveBreakpoint(u32 addr) } Q_EMIT RequestShowAddress(addr); + + if (!count()) + { + hide(); + } } bool breakpoint_list::AddBreakpoint(u32 pc) @@ -86,6 +96,8 @@ bool breakpoint_list::AddBreakpoint(u32 pc) Q_EMIT RequestShowAddress(pc); + show(); + return true; } diff --git a/rpcs3/rpcs3qt/call_stack_list.cpp b/rpcs3/rpcs3qt/call_stack_list.cpp index 90638e1b85..5f62f0f563 100644 --- a/rpcs3/rpcs3qt/call_stack_list.cpp +++ b/rpcs3/rpcs3qt/call_stack_list.cpp @@ -12,6 +12,9 @@ call_stack_list::call_stack_list(QWidget* parent) : QListWidget(parent) // connects connect(this, &QListWidget::itemDoubleClicked, this, &call_stack_list::OnCallStackListDoubleClicked); + + // Hide until used in order to allow as much space for registers panel as possible + hide(); } void call_stack_list::HandleUpdate(const std::vector>& call_stack) @@ -25,6 +28,8 @@ void call_stack_list::HandleUpdate(const std::vector>& call_ call_stack_item->setData(Qt::UserRole, { addr.first }); addItem(call_stack_item); } + + setVisible(!call_stack.empty()); } void call_stack_list::OnCallStackListDoubleClicked() diff --git a/rpcs3/rpcs3qt/debugger_frame.cpp b/rpcs3/rpcs3qt/debugger_frame.cpp index d1e21ce75d..bd90bd778e 100644 --- a/rpcs3/rpcs3qt/debugger_frame.cpp +++ b/rpcs3/rpcs3qt/debugger_frame.cpp @@ -860,6 +860,7 @@ void debugger_frame::UpdateUnitList() if (emu_state == system_state::stopped) { ClearBreakpoints(); + ClearCallStack(); } OnSelectUnit(); @@ -982,14 +983,18 @@ void debugger_frame::WritePanels() } int loc = m_misc_state->verticalScrollBar()->value(); + int hloc = m_misc_state->horizontalScrollBar()->value(); m_misc_state->clear(); m_misc_state->setText(qstr(cpu->dump_misc())); m_misc_state->verticalScrollBar()->setValue(loc); + m_misc_state->horizontalScrollBar()->setValue(hloc); loc = m_regs->verticalScrollBar()->value(); + hloc = m_regs->horizontalScrollBar()->value(); m_regs->clear(); m_regs->setText(qstr(cpu->dump_regs())); m_regs->verticalScrollBar()->setValue(loc); + m_regs->horizontalScrollBar()->setValue(hloc); Q_EMIT CallStackUpdateRequested(cpu->dump_callstack_list()); }