diff --git a/src/gui/Src/Gui/EditBreakpointDialog.cpp b/src/gui/Src/Gui/EditBreakpointDialog.cpp index 8ba5ef694..0dab9d217 100644 --- a/src/gui/Src/Gui/EditBreakpointDialog.cpp +++ b/src/gui/Src/Gui/EditBreakpointDialog.cpp @@ -4,6 +4,7 @@ #include "MiscUtil.h" #include "Configuration.h" #include "BrowseDialog.h" +#include EditBreakpointDialog::EditBreakpointDialog(QWidget* parent, const Breakpoints::Data & bp) : QDialog(parent), @@ -38,9 +39,13 @@ EditBreakpointDialog::EditBreakpointDialog(QWidget* parent, const Breakpoints::D break; } setWindowIcon(DIcon("breakpoint")); - loadFromBp(); connect(this, SIGNAL(accepted()), this, SLOT(acceptedSlot())); + connect(ui->editBreakCondition, SIGNAL(textChanged(QString)), this, SLOT(onExpressionChanged(QString))); + connect(ui->editLogCondition, SIGNAL(textChanged(QString)), this, SLOT(onExpressionChanged(QString))); + connect(ui->editCommandCondition, SIGNAL(textChanged(QString)), this, SLOT(onExpressionChanged(QString))); + + loadFromBp(); Config()->loadWindowGeometry(this); } @@ -105,3 +110,26 @@ void EditBreakpointDialog::acceptedSlot() mBp.fastResume = ui->checkBoxFastResume->isChecked(); mBp.logFile = mLogFile; } + +void EditBreakpointDialog::onExpressionChanged(const QString & text) +{ + QLineEdit* edit = qobject_cast(sender()); + if(edit) + updateExpressionStyle(edit, text); +} + +void EditBreakpointDialog::updateExpressionStyle(QLineEdit* edit, const QString & text) +{ + if(text.isEmpty() || !DbgIsDebugging()) + { + edit->setStyleSheet(""); + } + else if(DbgIsValidExpression(text.toUtf8().constData())) + { + edit->setStyleSheet("QLineEdit { border: 1px solid green; }"); + } + else + { + edit->setStyleSheet("QLineEdit { border: 1px solid red; }"); + } +} diff --git a/src/gui/Src/Gui/EditBreakpointDialog.h b/src/gui/Src/Gui/EditBreakpointDialog.h index 13228b908..481b3f093 100644 --- a/src/gui/Src/Gui/EditBreakpointDialog.h +++ b/src/gui/Src/Gui/EditBreakpointDialog.h @@ -4,6 +4,8 @@ #include "Bridge.h" #include "Breakpoints.h" +class QLineEdit; + namespace Ui { class EditBreakpointDialog; @@ -25,6 +27,7 @@ private slots: void on_editLogText_textEdited(const QString & arg1); void on_buttonLogFile_clicked(); void acceptedSlot(); + void onExpressionChanged(const QString & text); private: Ui::EditBreakpointDialog* ui; @@ -32,4 +35,5 @@ private: QString mLogFile; void loadFromBp(); + void updateExpressionStyle(QLineEdit* edit, const QString & text); };