// public methods: QScriptValue REcmaSharedPointerTextLabel::clone (QScriptContext* context, QScriptEngine* engine) { //REcmaHelper::functionStart("REcmaSharedPointerTextLabel::clone", context, engine); //qDebug() << "ECMAScript WRAPPER: REcmaSharedPointerTextLabel::clone"; //QCoreApplication::processEvents(); QScriptValue result = engine->undefinedValue(); // public function: can be called from ECMA wrapper of ECMA shell: RTextLabel* self = getSelf("clone", context); //Q_ASSERT(self!=NULL); if (self==NULL) { return REcmaHelper::throwError("self is NULL", context); } if( context->argumentCount() == 0 ){ // prepare arguments: // end of arguments // call C++ function: // return type 'RTextLabel *' RTextLabel * cppResult = self->clone(); // return type: RTextLabel * // pointer, copyable result = qScriptValueFromValue(engine, *cppResult); } else { return REcmaHelper::throwError("Wrong number/types of arguments for RTextLabel.clone().", context); } //REcmaHelper::functionEnd("REcmaSharedPointerTextLabel::clone", context, engine); return result; }
void REcmaHelper::fromScriptValue(QScriptEngine* engine, QScriptValue scriptValue, QList<QSharedPointer<RShape> >& cppValue) { QVariantList variantList = engine->fromScriptValue<QVariantList>(scriptValue); for (int i = 0; i < variantList.size(); ++i) { QVariant v = variantList.at(i); QSharedPointer<RShape> pShape = v.value<QSharedPointer<RShape> >(); if (!pShape.isNull()) { cppValue.append(pShape); } else { RShape* shape = v.value<RShape*>(); if (shape!=NULL) { QSharedPointer<RShape> pShape(shape->clone()); cppValue.append(pShape); } else if (v.canConvert<RArc>()) { RArc obj = v.value<RArc>(); QSharedPointer<RArc> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RCircle>()) { RCircle obj = v.value<RCircle>(); QSharedPointer<RCircle> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RLine>()) { RLine obj = v.value<RLine>(); QSharedPointer<RLine> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RPoint>()) { RPoint obj = v.value<RPoint>(); QSharedPointer<RPoint> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RPolyline>()) { RPolyline obj = v.value<RPolyline>(); QSharedPointer<RPolyline> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RSpline>()) { RSpline obj = v.value<RSpline>(); QSharedPointer<RSpline> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RTextLabel>()) { RTextLabel obj = v.value<RTextLabel>(); QSharedPointer<RTextLabel> p(obj.clone()); cppValue.append(p); } else if (v.canConvert<RTriangle>()) { RTriangle obj = v.value<RTriangle>(); QSharedPointer<RTriangle> p(obj.clone()); cppValue.append(p); } } } }