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;
69 QQmlBoundSignal(QObject *target,
int signal, QObject *owner, QQmlEngine *engine);
72 void removeFromObject();
74 QQmlBoundSignalExpression *expression()
const;
75 void takeExpression(QQmlBoundSignalExpression *);
77 void setEnabled(
bool enabled);
80 friend void QQmlBoundSignal_callback(QQmlNotifierEndpoint *,
void **);
81 friend class QQmlPropertyPrivate;
82 friend class QQmlData;
83 friend class QQmlEngineDebugService;
85 void addToObject(QObject *owner);
87 QQmlBoundSignal **m_prevSignal;
88 QQmlBoundSignal *m_nextSignal;
92 QQmlRefPointer<QQmlBoundSignalExpression> m_expression;