// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QQMLEXPRESSION_H #define QQMLEXPRESSION_H #include #include #include #include QT_BEGIN_NAMESPACE class QString; class QQmlEngine; class QQmlContext; class QQmlExpressionPrivate; class QQmlContextData; class Q_QML_EXPORT QQmlExpression : public QObject { Q_OBJECT public: QQmlExpression(); QQmlExpression(QQmlContext *, QObject *, const QString &, QObject * = nullptr); explicit QQmlExpression(const QQmlScriptString &, QQmlContext * = nullptr, QObject * = nullptr, QObject * = nullptr); ~QQmlExpression() override; QQmlEngine *engine() const; QQmlContext *context() const; QString expression() const; void setExpression(const QString &); bool notifyOnValueChanged() const; void setNotifyOnValueChanged(bool); QString sourceFile() const; int lineNumber() const; int columnNumber() const; void setSourceLocation(const QString &fileName, int line, int column = 0); QObject *scopeObject() const; bool hasError() const; void clearError(); QQmlError error() const; QVariant evaluate(bool *valueIsUndefined = nullptr); Q_SIGNALS: void valueChanged(); private: QQmlExpression(QQmlExpressionPrivate &dd, QObject *parent); Q_DISABLE_COPY(QQmlExpression) Q_DECLARE_PRIVATE(QQmlExpression) friend class QQmlDebugger; friend class QQmlContext; }; QT_END_NAMESPACE #endif // QQMLEXPRESSION_H