cutter/src/dialogs/preferences/DebugOptionsWidget.cpp

73 lines
2.3 KiB
C++
Raw Normal View History

#include "DebugOptionsWidget.h"
#include "ui_DebugOptionsWidget.h"
#include <QLabel>
#include <QTimer>
#include <QComboBox>
#include <QShortcut>
#include <QFontDialog>
#include "PreferencesDialog.h"
2018-10-17 07:55:53 +00:00
#include "common/Helpers.h"
#include "common/Configuration.h"
2019-03-16 12:41:45 +00:00
DebugOptionsWidget::DebugOptionsWidget(PreferencesDialog *dialog)
: QDialog(dialog),
ui(new Ui::DebugOptionsWidget)
{
ui->setupUi(this);
updateDebugPlugin();
}
DebugOptionsWidget::~DebugOptionsWidget() {}
void DebugOptionsWidget::updateDebugPlugin()
{
ui->esilBreakOnInvalid->setChecked(Config()->getConfigBool("esil.breakoninvalid"));
disconnect(ui->pluginComboBox, SIGNAL(currentIndexChanged(const QString &)), this,
SLOT(on_pluginComboBox_currentIndexChanged(const QString &)));
QStringList plugins = Core()->getDebugPlugins();
for (const QString &str : plugins)
ui->pluginComboBox->addItem(str);
QString plugin = Core()->getActiveDebugPlugin();
ui->pluginComboBox->setCurrentText(plugin);
connect(ui->pluginComboBox, SIGNAL(currentIndexChanged(const QString &)), this,
SLOT(on_pluginComboBox_currentIndexChanged(const QString &)));
QString stackSize = Core()->getConfig("esil.stack.size");
ui->stackSize->setText(stackSize);
ui->stackSize->setPlaceholderText(stackSize);
QString stackAddr = Core()->getConfig("esil.stack.addr");
ui->stackAddr->setText(stackAddr);
ui->stackAddr->setPlaceholderText(stackAddr);
connect(ui->stackAddr, &QLineEdit::editingFinished, this, &DebugOptionsWidget::updateStackAddr);
connect(ui->stackSize, &QLineEdit::editingFinished, this, &DebugOptionsWidget::updateStackSize);
}
void DebugOptionsWidget::on_pluginComboBox_currentIndexChanged(const QString &plugin)
{
Core()->setDebugPlugin(plugin);
}
void DebugOptionsWidget::updateStackSize()
{
QString newSize = ui->stackSize->text();
Core()->setConfig("esil.stack.size", newSize);
ui->stackSize->setPlaceholderText(newSize);
}
void DebugOptionsWidget::updateStackAddr()
{
QString newAddr = ui->stackAddr->text();
Core()->setConfig("esil.stack.addr", newAddr);
ui->stackAddr->setPlaceholderText(newAddr);
}
void DebugOptionsWidget::on_esilBreakOnInvalid_toggled(bool checked)
{
Config()->setConfig("esil.breakoninvalid", checked);
}