void MyHttpRequest::finished(QNetworkReply *reply) { Data temp = queue_replyData.dequeue (); ReplyType type=temp.replyType; bool isError = !(reply->error () == QNetworkReply::NoError); if(type==CallbackFun){ #if(QT_VERSION>=0x050000) QJSValueList list; list.append (QJSValue(isError)); list.append (QJSValue(isError?reply->errorString ():reply->readAll ())); temp.callbackFun.call (list); #else QScriptValueList list; list.append (QScriptValue(isError)); list.append (QScriptValue(isError?reply->errorString ():reply->readAll ())); temp.callbackFun.call (QScriptValue(), list); #endif }else if(type==ConnectSlot){ QObject* obj = temp.caller; QByteArray slotName = temp.slotName; if(obj!=NULL){ bool ok;//记录调用槽是否成功 int parameterCount = obj->metaObject()->method(obj->metaObject()->indexOfMethod(slotName)).parameterTypes().length(); QRegExp reg("^[^(]+"); reg.indexIn (slotName); slotName = reg.cap (0).toLatin1 (); if(parameterCount==0){//如果形参个数为0个 ok = QMetaObject::invokeMethod(obj, slotName); }else if(parameterCount==1){ ok = QMetaObject::invokeMethod(obj, slotName, Q_ARG(QNetworkReply*, reply)); }else if(parameterCount==2){
void QQuickWebEngineViewPrivate::didFindText(quint64 requestId, int matchCount) { QJSValue callback = m_callbacks.take(requestId); QJSValueList args; args.append(QJSValue(matchCount)); callback.call(args); }
void QQuickWebEngineViewPrivate::didRunJavaScript(quint64 requestId, const QVariant &result) { Q_Q(QQuickWebEngineView); QJSValue callback = m_callbacks.take(requestId); QJSValueList args; args.append(qmlEngine(q)->toScriptValue(result)); callback.call(args); }
QString HsQMLAutoListModel::keyFunction(const QJSValue& a) { if (mKeyFunctionValid) { QJSValueList args; args.append(a); return mKeyFunction.call(args).toString(); } else { return a.toString(); } }
bool HsQMLAutoListModel::equalityTest(const QJSValue& a, const QJSValue& b) { if (mEqualityTestValid) { QJSValueList args; args.append(a); args.append(b); return mEqualityTest.call(args).toBool(); } else { return a.equals(b); } }
void QQuickWebEngineViewExperimental::findText(const QString &subString, FindFlags options, const QJSValue &callback) { if (subString.isEmpty()) { d_ptr->adapter->stopFinding(); if (!callback.isUndefined()) { QJSValueList args; args.append(QJSValue(0)); const_cast<QJSValue&>(callback).call(args); } } else { quint64 requestId = d_ptr->adapter->findText(subString, options & FindCaseSensitively, options & FindBackward); if (!callback.isUndefined()) d_ptr->m_callbacks.insert(requestId, callback); } }