28class Q_QML_EXPORT QQmlBoundSignalExpression final
29 :
public QQmlJavaScriptExpression,
30 public QQmlRefCounted<QQmlBoundSignalExpression>
32 friend class QQmlRefCounted<QQmlBoundSignalExpression>;
34 QQmlBoundSignalExpression(
35 const QObject *target,
int index,
const QQmlRefPointer<QQmlContextData> &ctxt, QObject *scope,
36 const QString &expression,
const QString &fileName, quint16 line, quint16 column,
37 const QString &handlerName = QString(),
const QString ¶meterString = QString());
39 QQmlBoundSignalExpression(
40 const QObject *target,
int index,
const QQmlRefPointer<QQmlContextData> &ctxt,
41 QObject *scopeObject, QV4::Function *function, QV4::ExecutionContext *scope =
nullptr);
44 QString expressionIdentifier()
const override;
45 void expressionChanged() override;
48 void evaluate(
void **a);
50 bool mustCaptureBindableProperty()
const final {
return true;}
52 QString expression()
const;
53 const QObject *target()
const {
return m_target; }
56 ~QQmlBoundSignalExpression() override;
58 void init(
const QQmlRefPointer<QQmlContextData> &ctxt, QObject *scope);
60 bool expressionFunctionValid()
const {
return function() !=
nullptr; }
63 const QObject *m_target;
71 QQmlBoundSignal(QObject *target,
int signal, QObject *owner, QQmlEngine *engine);
74 void removeFromObject();
76 QQmlBoundSignalExpression *expression()
const;
77 void takeExpression(QQmlBoundSignalExpression *);
79 void setEnabled(
bool enabled);
82 friend void QQmlBoundSignal_callback(QQmlNotifierEndpoint *,
void **);
83 friend class QQmlPropertyPrivate;
84 friend class QQmlData;
85 friend class QQmlEngineDebugService;
86 friend class QQmlPreview::BindingPatchContext;
88 void addToObject(QObject *owner);
90 QQmlBoundSignal **m_prevSignal;
91 QQmlBoundSignal *m_nextSignal;
95 QQmlRefPointer<QQmlBoundSignalExpression> m_expression;