void tst_qdeclarativeengine::networkAccessManager() { QDeclarativeEngine *engine = new QDeclarativeEngine; // Test QDeclarativeEngine created manager QPointer<QNetworkAccessManager> manager = engine->networkAccessManager(); QVERIFY(manager != 0); delete engine; // Test factory created manager engine = new QDeclarativeEngine; NetworkAccessManagerFactory factory; engine->setNetworkAccessManagerFactory(&factory); QVERIFY(engine->networkAccessManagerFactory() == &factory); QVERIFY(engine->networkAccessManager() == factory.manager); delete engine; }
void QDeclarativeGeoMapPixmapObject::load() { // need to deal with absolute / relative local / remote files QUrl url = QDeclarativeEngine::contextForObject(this)->resolvedUrl(m_source); QString path; if (url.scheme().compare(QLatin1String("qrc"), Qt::CaseInsensitive) == 0) { if (url.authority().isEmpty()) path = QLatin1Char(':') + url.path(); } else if (url.scheme().compare(QLatin1String("file"), Qt::CaseInsensitive) == 0) { path = url.toLocalFile(); } if (!path.isEmpty()) { QFile f(path); if (f.open(QIODevice::ReadOnly)) { QImage image; QImageReader imageReader(&f); if (imageReader.read(&image)) { setPixmap(QPixmap::fromImage(image)); setStatus(QDeclarativeGeoMapPixmapObject::Ready); } else { setPixmap(QPixmap()); setStatus(QDeclarativeGeoMapPixmapObject::Error); //qWarning() << "image read fail"; } } else { setPixmap(QPixmap()); setStatus(QDeclarativeGeoMapPixmapObject::Error); //qWarning() << "file open fail"; } } else { if (m_reply) { m_reply->abort(); m_reply->deleteLater(); m_reply = 0; } QDeclarativeEngine *engine = QDeclarativeEngine::contextForObject(this)->engine(); if (engine) { QNetworkAccessManager *nam = engine->networkAccessManager(); m_reply = nam->get(QNetworkRequest(url)); if (m_reply->isFinished()) { if (m_reply->error() == QNetworkReply::NoError) { finished(); } else { error(m_reply->error()); } delete m_reply; m_reply = 0; return; } setStatus(QDeclarativeGeoMapPixmapObject::Loading); connect(m_reply, SIGNAL(finished()), this, SLOT(finished())); connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(error(QNetworkReply::NetworkError))); } else { setPixmap(QPixmap()); setStatus(QDeclarativeGeoMapPixmapObject::Error); //qWarning() << "null engine fail"; } } }