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
_______________________________________________ Qt-qml mailing list Qt-qml@trolltech.com http://lists.trolltech.com/mailman/listinfo/qt-qml