diff --git a/src/Gui/ExpressionCompleter.cpp b/src/Gui/ExpressionCompleter.cpp index cb3e409545..1499bf2ce6 100644 --- a/src/Gui/ExpressionCompleter.cpp +++ b/src/Gui/ExpressionCompleter.cpp @@ -890,6 +890,27 @@ void ExpressionCompleter::slotUpdate(const QString& prefix, int pos) } } +ExpressionValidator::ExpressionValidator(QObject* parent) + : QValidator(parent) +{} + +void ExpressionValidator::fixup(QString &input) const +{ + if (input.startsWith(QLatin1String("="))) { + input = input.mid(1); + } +} + +QValidator::State ExpressionValidator::validate(QString &input, int &pos) const +{ + if (input.startsWith(QLatin1String("="))) { + pos = 0; + return QValidator::Invalid; + } + + return QValidator::Acceptable; +} + ExpressionLineEdit::ExpressionLineEdit(QWidget* parent, bool noProperty, char checkPrefix, @@ -902,6 +923,7 @@ ExpressionLineEdit::ExpressionLineEdit(QWidget* parent, , checkInList(checkInList) , checkPrefix(checkPrefix) { + setValidator(new ExpressionValidator(this)); connect(this, &QLineEdit::textEdited, this, &ExpressionLineEdit::slotTextChanged); } diff --git a/src/Gui/ExpressionCompleter.h b/src/Gui/ExpressionCompleter.h index ce62ef9846..cf7f5f20c9 100644 --- a/src/Gui/ExpressionCompleter.h +++ b/src/Gui/ExpressionCompleter.h @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -41,6 +42,16 @@ class ObjectIdentifier; namespace Gui { +class GuiExport ExpressionValidator : public QValidator +{ + Q_OBJECT + +public: + explicit ExpressionValidator(QObject* parent = nullptr); + void fixup(QString &input) const override; + QValidator::State validate(QString &input, int &pos) const override; +}; + /** * @brief The ExpressionCompleter class extends the QCompleter class to provide a completer model of documentobject names and properties. */