diff options
| author | TryTwo <taolas@gmail.com> | 2024-05-14 13:49:00 -0700 |
|---|---|---|
| committer | Admiral H. Curtiss <pikachu025@gmail.com> | 2024-06-01 03:42:25 +0200 |
| commit | 1396e927c72095a6dfd1e95c36ef594e8bd7b63e (patch) | |
| tree | d1f7274cd0e0c128919c7edaf30ac6ce75f8e34a /Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp | |
| parent | e52b814eb2119f51a68285aa3a7581f0350f6fbd (diff) | |
BreakpointWidget: Give conditionals a popup text entry on click.
Diffstat (limited to 'Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp b/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp index 95932182fb..cfceac3ef8 100644 --- a/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp @@ -5,6 +5,7 @@ #include <QApplication> #include <QHeaderView> +#include <QInputDialog> #include <QMenu> #include <QMouseEvent> #include <QPainter> @@ -219,10 +220,26 @@ void BreakpointWidget::OnClicked(QTableWidgetItem* item) return; } + std::optional<QString> string = std::nullopt; + + if (item->column() == CONDITION_COLUMN) + { + bool ok; + QString new_text = QInputDialog::getMultiLineText( + this, tr("Edit Conditional"), tr("Edit conditional expression"), item->text(), &ok); + + if (!ok || item->text() == new_text) + return; + + // If new_text is empty, leaving string as nullopt will clear the conditional. + if (!new_text.isEmpty()) + string = new_text; + } + if (m_table->item(item->row(), 0)->data(IS_MEMCHECK_ROLE).toBool()) - EditMBP(address, item->column()); + EditMBP(address, item->column(), string); else - EditBreakpoint(address, item->column()); + EditBreakpoint(address, item->column(), string); } void BreakpointWidget::UpdateButtonsEnabled() @@ -310,12 +327,9 @@ void BreakpointWidget::Update() m_table->setItem(i, READ_COLUMN, empty_item.clone()); m_table->setItem(i, WRITE_COLUMN, empty_item.clone()); - QString condition; - - if (bp.condition) - condition = QString::fromStdString(bp.condition->GetText()); - - m_table->setItem(i, CONDITION_COLUMN, create_item(condition)); + m_table->setItem( + i, CONDITION_COLUMN, + create_item(bp.condition ? QString::fromStdString(bp.condition->GetText()) : QString())); i++; } @@ -362,12 +376,9 @@ void BreakpointWidget::Update() m_table->setItem(i, WRITE_COLUMN, mbp.is_break_on_write ? icon_item.clone() : empty_item.clone()); - QString condition; - - if (mbp.condition) - condition = QString::fromStdString(mbp.condition->GetText()); - - m_table->setItem(i, CONDITION_COLUMN, create_item(condition)); + m_table->setItem( + i, CONDITION_COLUMN, + create_item(mbp.condition ? QString::fromStdString(mbp.condition->GetText()) : QString())); i++; } |
