added a custom NetworkManager, which should also accept self-signed SSL-Certificates, fixes #40
this is untested due to no available ssl-tinyrss-instance at home
This commit is contained in:
parent
b78ce66116
commit
bf831819da
6 changed files with 67 additions and 2 deletions
4
main.cpp
4
main.cpp
|
|
@ -5,6 +5,7 @@
|
|||
#include "qmlapplicationviewer.h"
|
||||
|
||||
#include "settings.hh"
|
||||
#include "mynetworkmanager.hh"
|
||||
|
||||
Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
{
|
||||
|
|
@ -28,6 +29,9 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
|||
app->installTranslator(&translator);
|
||||
|
||||
QmlApplicationViewer viewer;
|
||||
//QObject::connect(viewer.engine(), SIGNAL(quit()), viewer.data, SLOT(close()));
|
||||
viewer.setNetworkAccessManagerFactory(new MyNetworkManager);
|
||||
|
||||
|
||||
viewer.rootContext()->setContextProperty("APP_VERSION", APP_VERSION);
|
||||
|
||||
|
|
|
|||
34
mynetworkmanager.cpp
Normal file
34
mynetworkmanager.cpp
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#include "mynetworkmanager.hh"
|
||||
|
||||
QNetworkAccessManager* MyNetworkManager::create(QObject *parent) {
|
||||
QNetworkAccessManager *nam = new QNetworkAccessManager(parent);
|
||||
|
||||
connect(nam, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(onSslErrors(QNetworkReply*,QList<QSslError>)));
|
||||
// connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReplyFinished(QNetworkReply*)));
|
||||
|
||||
qDebug("new custom mynetworkManager :)");
|
||||
return nam;
|
||||
}
|
||||
|
||||
void MyNetworkManager::onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors) {
|
||||
qDebug("onSslErrors");
|
||||
reply->ignoreSslErrors(errors);
|
||||
}
|
||||
|
||||
//void MyNetworkManager::onReplyFinished(QNetworkReply *reply) {
|
||||
// Q_ASSERT(reply);
|
||||
// if (!reply)
|
||||
// return;
|
||||
|
||||
// if (reply->error() == QNetworkReply::NoError) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
// const int httpStatusCode = reply->attribute(
|
||||
// QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
// qDebug(QString("Network error = %1, HTTP code = %2, error description = '%3'")
|
||||
// .arg(reply->error())
|
||||
// .arg(httpStatusCode)
|
||||
// .arg(reply->errorString())
|
||||
// .toAscii());
|
||||
//}
|
||||
19
mynetworkmanager.hh
Normal file
19
mynetworkmanager.hh
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#ifndef MYNETWORKMANAGER_HH
|
||||
#define MYNETWORKMANAGER_HH
|
||||
|
||||
#include <qdeclarativenetworkaccessmanagerfactory.h>
|
||||
#include <QtNetwork/qnetworkreply.h>
|
||||
|
||||
class MyNetworkManager : public QObject, public QDeclarativeNetworkAccessManagerFactory
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public: // QDeclarativeNetworkAccessManagerFactory
|
||||
QNetworkAccessManager *create(QObject *parent);
|
||||
|
||||
private slots:
|
||||
void onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors);
|
||||
// void onReplyFinished(QNetworkReply *reply);
|
||||
};
|
||||
|
||||
#endif // MYNETWORKMANAGER_HH
|
||||
|
|
@ -153,6 +153,10 @@ void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
|
|||
setAttribute(attribute, true);
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::setNetworkAccessManagerFactory(QDeclarativeNetworkAccessManagerFactory *networkfactory) {
|
||||
engine()->setNetworkAccessManagerFactory(networkfactory);
|
||||
}
|
||||
|
||||
void QmlApplicationViewer::showExpanded()
|
||||
{
|
||||
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#define QMLAPPLICATIONVIEWER_H
|
||||
|
||||
#include <QtDeclarative/QDeclarativeView>
|
||||
#include <qdeclarativenetworkaccessmanagerfactory.h>
|
||||
|
||||
class QmlApplicationViewer : public QDeclarativeView
|
||||
{
|
||||
|
|
@ -31,6 +32,7 @@ public:
|
|||
|
||||
void setMainQmlFile(const QString &file);
|
||||
void addImportPath(const QString &path);
|
||||
void setNetworkAccessManagerFactory(QDeclarativeNetworkAccessManagerFactory *networkfactory);
|
||||
|
||||
// Note that this will only have an effect on Symbian and Fremantle.
|
||||
void setOrientation(ScreenOrientation orientation);
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ CONFIG += qdeclarative-boostable
|
|||
|
||||
# The .cpp file which was generated for your project. Feel free to hack it.
|
||||
SOURCES += main.cpp \
|
||||
settings.cpp
|
||||
settings.cpp \
|
||||
mynetworkmanager.cpp
|
||||
|
||||
# Please do not modify the following two lines. Required for deployment.
|
||||
include(qmlapplicationviewer/qmlapplicationviewer.pri)
|
||||
|
|
@ -44,4 +45,5 @@ RESOURCES += \
|
|||
harmattan.qrc
|
||||
|
||||
HEADERS += \
|
||||
settings.hh
|
||||
settings.hh \
|
||||
mynetworkmanager.hh
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue