619 break; |
619 break; |
620 |
620 |
621 case QDeclarativeInstruction::StoreSignal: |
621 case QDeclarativeInstruction::StoreSignal: |
622 { |
622 { |
623 QObject *target = stack.top(); |
623 QObject *target = stack.top(); |
624 QObject *context = stack.at(stack.count() - 1 - instr.assignBinding.context); |
624 QObject *context = stack.at(stack.count() - 1 - instr.storeSignal.context); |
625 |
625 |
626 QMetaMethod signal = target->metaObject()->method(instr.storeSignal.signalIndex); |
626 QMetaMethod signal = target->metaObject()->method(instr.storeSignal.signalIndex); |
627 |
627 |
628 QDeclarativeBoundSignal *bs = new QDeclarativeBoundSignal(target, signal, target); |
628 QDeclarativeBoundSignal *bs = new QDeclarativeBoundSignal(target, signal, target); |
629 QDeclarativeExpression *expr = |
629 QDeclarativeExpression *expr = |
630 new QDeclarativeExpression(ctxt, context, primitives.at(instr.storeSignal.value)); |
630 new QDeclarativeExpression(ctxt, context, primitives.at(instr.storeSignal.value)); |
631 expr->setSourceLocation(comp->name, instr.line); |
631 expr->setSourceLocation(comp->name, instr.line); |
|
632 static_cast<QDeclarativeExpressionPrivate *>(QObjectPrivate::get(expr))->name = datas.at(instr.storeSignal.name); |
632 bs->setExpression(expr); |
633 bs->setExpression(expr); |
633 } |
634 } |
634 break; |
635 break; |
635 |
636 |
636 case QDeclarativeInstruction::StoreImportedScript: |
637 case QDeclarativeInstruction::StoreImportedScript: |