diff options
Diffstat (limited to 'src/declarative/qml/qmlxmlhttprequest.cpp')
-rw-r--r-- | src/declarative/qml/qmlxmlhttprequest.cpp | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/src/declarative/qml/qmlxmlhttprequest.cpp b/src/declarative/qml/qmlxmlhttprequest.cpp index a5d6cd7..5f0fe9ce 100644 --- a/src/declarative/qml/qmlxmlhttprequest.cpp +++ b/src/declarative/qml/qmlxmlhttprequest.cpp @@ -754,10 +754,10 @@ QScriptValue NamedNodeMap::create(QScriptEngine *engine, NodeImpl *data, QList<N instance.setData(engine->newVariant(qVariantFromValue(map))); - if (!QmlEnginePrivate::get(engine)->namedNodeMapClass) - QmlEnginePrivate::get(engine)->namedNodeMapClass= new NamedNodeMapClass(engine); + if (!QmlScriptEngine::get(engine)->namedNodeMapClass) + QmlScriptEngine::get(engine)->namedNodeMapClass= new NamedNodeMapClass(engine); - instance.setScriptClass(QmlEnginePrivate::get(engine)->namedNodeMapClass); + instance.setScriptClass(QmlScriptEngine::get(engine)->namedNodeMapClass); return instance; } @@ -811,10 +811,10 @@ QScriptValue NodeList::create(QScriptEngine *engine, NodeImpl *data) instance.setData(engine->newVariant(qVariantFromValue(list))); - if (!QmlEnginePrivate::get(engine)->nodeListClass) - QmlEnginePrivate::get(engine)->nodeListClass= new NodeListClass(engine); + if (!QmlScriptEngine::get(engine)->nodeListClass) + QmlScriptEngine::get(engine)->nodeListClass= new NodeListClass(engine); - instance.setScriptClass(QmlEnginePrivate::get(engine)->nodeListClass); + instance.setScriptClass(QmlScriptEngine::get(engine)->nodeListClass); return instance; } @@ -939,7 +939,7 @@ public: Opened = 1, HeadersReceived = 2, Loading = 3, Done = 4 }; - QmlXMLHttpRequest(QmlEngine *engine); + QmlXMLHttpRequest(); virtual ~QmlXMLHttpRequest(); QScriptValue callback() const; @@ -965,8 +965,6 @@ private slots: void finished(); private: - QmlEngine *m_engine; - State m_state; bool m_errorFlag; bool m_sendFlag; @@ -987,13 +985,22 @@ private: QNetworkRequest m_request; QNetworkReply *m_network; void destroyNetwork(); + + QNetworkAccessManager *m_nam; + QNetworkAccessManager *networkAccessManager() + { + if (!m_nam) { + m_nam = new QNetworkAccessManager; + // XXX proxy, etc... + } + return m_nam; + } }; -QmlXMLHttpRequest::QmlXMLHttpRequest(QmlEngine *engine) -: m_engine(engine), m_state(Unsent), m_errorFlag(false), m_sendFlag(false), - m_network(0) +QmlXMLHttpRequest::QmlXMLHttpRequest() +: m_state(Unsent), m_errorFlag(false), m_sendFlag(false), + m_network(0), m_nam(0) { - Q_ASSERT(m_engine); } QmlXMLHttpRequest::~QmlXMLHttpRequest() @@ -1138,13 +1145,13 @@ void QmlXMLHttpRequest::send(const QByteArray &data) } if (m_method == QLatin1String("GET")) - m_network = m_engine->networkAccessManager()->get(request); + m_network = networkAccessManager()->get(request); else if (m_method == QLatin1String("HEAD")) - m_network = m_engine->networkAccessManager()->head(request); + m_network = networkAccessManager()->head(request); else if(m_method == QLatin1String("POST")) - m_network = m_engine->networkAccessManager()->post(request, data); + m_network = networkAccessManager()->post(request, data); else if(m_method == QLatin1String("PUT")) - m_network = m_engine->networkAccessManager()->put(request, data); + m_network = networkAccessManager()->put(request, data); QObject::connect(m_network, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(downloadProgress(qint64))); @@ -1291,9 +1298,7 @@ static QScriptValue qmlxmlhttprequest_open(QScriptContext *context, QScriptEngin QUrl url(context->argument(1).toString()); if (url.isRelative()) { - QmlContext *ctxt = QmlEnginePrivate::get(engine)->getContext(context); - Q_ASSERT(ctxt); - url = ctxt->resolvedUrl(url); + url = QmlScriptEngine::get(engine)->resolvedUrl(context,url); } // Argument 2 - async (optional) @@ -1527,7 +1532,7 @@ static QScriptValue qmlxmlhttprequest_onreadystatechange(QScriptContext *context static QScriptValue qmlxmlhttprequest_new(QScriptContext *context, QScriptEngine *engine) { if (context->isCalledAsConstructor()) { - context->thisObject().setData(engine->newQObject(new QmlXMLHttpRequest(QmlEnginePrivate::getEngine(engine)), QScriptEngine::ScriptOwnership)); + context->thisObject().setData(engine->newQObject(new QmlXMLHttpRequest(), QScriptEngine::ScriptOwnership)); } return engine->undefinedValue(); } |