[Qt-qml] NetworkAccessManager
Jack Wootton
jackwootton at gmail.com
Mon Apr 26 17:18:56 CEST 2010
Hi,
I'm trying to set some proxy settings for a QML application - it's not
working as expected. I'm unsure the API is being used correctly, can
someone check my code makes sense?
There are 3 files: main.cpp, MyNetworkAccessManagerFactory.h and
MyNetworkAccessManagerFactory.cpp
I'm using qt 4.7 and followed the documentation (
http://doc.qt.nokia.com/4.7-snapshot/qdeclarativenetworkaccessmanagerfactory.html)
when writing the code. The method
MyNetworkAccessManagerFactory::create(QObject* parent) does get called when
the QML document is loaded using the QDeclarativeView, so the framework is
definitely picking up the new proxy settings.
The questions I have are:
1. Is the implementation of MyNetworkAccessManagerFactory::create correct?
I assumed because I was subclassing from a class with 'factory' in its name,
that it was ok to return the same pointer to NetworkAccessManager.
2. How do I know if the method that calls "create" takes ownership of the
returned pointer or not? I assumed it didn't, hence cleaning up in
~MyNetworkAccessManagerFactory();
3. Is there anything obviously wrong with the way I'm using the
NetworkAccessManager?
main.cpp
=======
/*------------------ start ------------------*/
QApplication app(argc, argv);
QDeclarativeView view;
QDeclarativeEngine* engine = view.engine();
MyNetworkAccessManagerFactory* namf = new MyNetworkAccessManagerFactory();
engine->setNetworkAccessManagerFactory(namf);
view.setSource(QUrl("mainwindow.qml"));
view.show();
return app.exec();
/*------------------ finish ------------------*/
MyNetworkAccessManagerFactory.h
===========================
class MyNetworkAccessManagerFactory : public
QDeclarativeNetworkAccessManagerFactory
{
public:
MyNetworkAccessManagerFactory();
~MyNetworkAccessManagerFactory();
public:
QNetworkAccessManager* create ( QObject * parent );
private:
QNetworkAccessManager* nam;
};
MyNetworkAccessManagerFactory.cpp
=============================
MyNetworkAccessManagerFactory::MyNetworkAccessManagerFactory() : nam(NULL)
{
}
MyNetworkAccessManagerFactory::~MyNetworkAccessManagerFactory()
{
delete nam;
}
QNetworkAccessManager* MyNetworkAccessManagerFactory::create ( QObject*
parent )
{
if (nam == NULL)
{
QNetworkProxy proxy;
proxy.setHostName("my.proxy.com");
proxy.setPort(3128);
QNetworkProxy::setApplicationProxy(proxy);
nam = new QNetworkAccessManager(parent);
nam->setProxy(proxy);
}
return nam;
}
--
Regards
Jack
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20100426/204e528e/attachment.html
More information about the Qt-qml
mailing list