DolphinQt: Don't update debug widgets when hidden

Saves on CPU usage when pausing/unpausing with the debugger disabled.
This is especially important when using frame advance rapidly.
This commit is contained in:
JosJuice
2019-07-06 10:50:11 +02:00
parent 0a7395bfba
commit 92a655c8b9
14 changed files with 108 additions and 32 deletions

View File

@ -41,14 +41,8 @@ BreakpointWidget::BreakpointWidget(QWidget* parent) : QDockWidget(parent)
CreateWidgets();
connect(&Settings::Instance(), &Settings::EmulationStateChanged, [this](Core::State state) {
if (!Settings::Instance().IsDebugModeEnabled())
return;
bool is_initialised = state != Core::State::Uninitialized;
m_new->setEnabled(is_initialised);
m_load->setEnabled(is_initialised);
m_save->setEnabled(is_initialised);
if (!is_initialised)
UpdateButtonsEnabled();
if (state == Core::State::Uninitialized)
{
PowerPC::breakpoints.Clear();
PowerPC::memchecks.Clear();
@ -65,8 +59,6 @@ BreakpointWidget::BreakpointWidget(QWidget* parent) : QDockWidget(parent)
connect(&Settings::Instance(), &Settings::ThemeChanged, this, &BreakpointWidget::UpdateIcons);
UpdateIcons();
Update();
}
BreakpointWidget::~BreakpointWidget()
@ -138,8 +130,28 @@ void BreakpointWidget::closeEvent(QCloseEvent*)
Settings::Instance().SetBreakpointsVisible(false);
}
void BreakpointWidget::showEvent(QShowEvent* event)
{
UpdateButtonsEnabled();
Update();
}
void BreakpointWidget::UpdateButtonsEnabled()
{
if (!isVisible())
return;
const bool is_initialised = Core::GetState() != Core::State::Uninitialized;
m_new->setEnabled(is_initialised);
m_load->setEnabled(is_initialised);
m_save->setEnabled(is_initialised);
}
void BreakpointWidget::Update()
{
if (!isVisible())
return;
m_table->clear();
m_table->setHorizontalHeaderLabels(