CalculatorDialog/WordEditDialog : Fixed expression validation not working due to not setting a callback on textChange
This commit is contained in:
parent
3a89a56377
commit
3a9ef35db8
|
|
@ -16,6 +16,8 @@ CalculatorDialog::CalculatorDialog(QWidget* parent) : QDialog(parent), ui(new Ui
|
|||
ui->txtExpression->selectAll();
|
||||
ui->txtExpression->setFocus();
|
||||
mValidateThread = new ValidateExpressionThread(this);
|
||||
mValidateThread->setOnExpressionChangedCallback(std::bind(&CalculatorDialog::validateExpression, this, std::placeholders::_1));
|
||||
|
||||
connect(mValidateThread, SIGNAL(expressionChanged(bool, bool, dsint)), this, SLOT(expressionChanged(bool, bool, dsint)));
|
||||
connect(ui->txtExpression, SIGNAL(textChanged(QString)), mValidateThread, SLOT(textChanged(QString)));
|
||||
}
|
||||
|
|
@ -25,6 +27,14 @@ CalculatorDialog::~CalculatorDialog()
|
|||
delete ui;
|
||||
}
|
||||
|
||||
void CalculatorDialog::validateExpression(QString expression)
|
||||
{
|
||||
duint value;
|
||||
bool validExpression = DbgFunctions()->ValFromString(expression.toUtf8().constData(), &value);
|
||||
bool validPointer = validExpression && DbgMemIsValidReadPtr(value);
|
||||
this->mValidateThread->emitExpressionChanged(validExpression, validPointer, value);
|
||||
}
|
||||
|
||||
void CalculatorDialog::showEvent(QShowEvent* event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ class CalculatorDialog : public QDialog
|
|||
public:
|
||||
explicit CalculatorDialog(QWidget* parent = 0);
|
||||
~CalculatorDialog();
|
||||
void validateExpression(QString expression);
|
||||
void setExpressionFocus();
|
||||
void showEvent(QShowEvent* event);
|
||||
void hideEvent(QHideEvent* event);
|
||||
|
|
|
|||
|
|
@ -14,11 +14,21 @@ WordEditDialog::WordEditDialog(QWidget* parent) : QDialog(parent), ui(new Ui::Wo
|
|||
ui->unsignedLineEdit->setValidator(new QRegExpValidator(QRegExp("^\\d*(\\d+)?$"), this));// No signs, 0-9
|
||||
|
||||
mValidateThread = new ValidateExpressionThread(this);
|
||||
mValidateThread->setOnExpressionChangedCallback(std::bind(&WordEditDialog::validateExpression, this, std::placeholders::_1));
|
||||
|
||||
connect(mValidateThread, SIGNAL(expressionChanged(bool, bool, dsint)), this, SLOT(expressionChanged(bool, bool, dsint)));
|
||||
connect(ui->expressionLineEdit, SIGNAL(textChanged(QString)), mValidateThread, SLOT(textChanged(QString)));
|
||||
mWord = 0;
|
||||
}
|
||||
|
||||
void WordEditDialog::validateExpression(QString expression)
|
||||
{
|
||||
duint value;
|
||||
bool validExpression = DbgFunctions()->ValFromString(expression.toUtf8().constData(), &value);
|
||||
bool validPointer = validExpression && DbgMemIsValidReadPtr(value);
|
||||
this->mValidateThread->emitExpressionChanged(validExpression, validPointer, value);
|
||||
}
|
||||
|
||||
WordEditDialog::~WordEditDialog()
|
||||
{
|
||||
delete ui;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ class WordEditDialog : public QDialog
|
|||
public:
|
||||
explicit WordEditDialog(QWidget* parent = 0);
|
||||
~WordEditDialog();
|
||||
void validateExpression(QString expression);
|
||||
void setup(QString title, duint defVal, int byteCount);
|
||||
duint getVal();
|
||||
void showEvent(QShowEvent* event);
|
||||
|
|
|
|||
Loading…
Reference in New Issue