27class Q_QML_EXPORT QQmlBoundSignalExpression final
28 :
public QQmlJavaScriptExpression,
29 public QQmlRefCounted<QQmlBoundSignalExpression>
31 friend class QQmlRefCounted<QQmlBoundSignalExpression>;
33 QQmlBoundSignalExpression(
34 const QObject *target,
int index,
const QQmlRefPointer<QQmlContextData> &ctxt, QObject *scope,
35 const QString &expression,
const QString &fileName, quint16 line, quint16 column,
36 const QString &handlerName = QString(),
const QString ¶meterString = QString());
38 QQmlBoundSignalExpression(
39 const QObject *target,
int index,
const QQmlRefPointer<QQmlContextData> &ctxt,
40 QObject *scopeObject, QV4::Function *function, QV4::ExecutionContext *scope =
nullptr);
43 QString expressionIdentifier()
const override;
44 void expressionChanged() override;
47 void evaluate(
void **a);
49 bool mustCaptureBindableProperty()
const final {
return true;}
51 QString expression()
const;
52 const QObject *target()
const {
return m_target; }
55 ~QQmlBoundSignalExpression() override;
57 void init(
const QQmlRefPointer<QQmlContextData> &ctxt, QObject *scope);
59 bool expressionFunctionValid()
const {
return function() !=
nullptr; }
62 const QObject *m_target;
68 QQmlBoundSignal(QObject *target,
int signal, QObject *owner, QQmlEngine *engine);
71 void removeFromObject();
73 QQmlBoundSignalExpression *expression()
const;
74 void takeExpression(QQmlBoundSignalExpression *);
76 void setEnabled(
bool enabled);
79 friend void QQmlBoundSignal_callback(QQmlNotifierEndpoint *,
void **);
80 friend class QQmlPropertyPrivate;
81 friend class QQmlData;
82 friend class QQmlEngineDebugService;
84 void addToObject(QObject *owner);
86 QQmlBoundSignal **m_prevSignal;
87 QQmlBoundSignal *m_nextSignal;
91 QQmlRefPointer<QQmlBoundSignalExpression> m_expression;