Динамически установить imageSource в ImageView Blackberry 10

Пожалуйста, помогите мне. Я застрял с этим больше недели. Я излучаю сигнал с изображением из моего файла cpp. Мне нужно заменить изображение по умолчанию, которое я поместил в imageView в QMl, используя это излучаемое изображение. Вот мой полный код.

PostHttp.hpp

/* Copyright (c) 2012 Research In Motion Limited.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

 #ifndef POSTHTTP_HPP
 #define POSTHTTP_HPP
 #include "qvariant.h"
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 namespace bb {
namespace cascades {
    class Container;
}
 }
  using namespace bb::cascades;

 class QNetworkAccessManager;

class PostHttp: public QObject {
Q_OBJECT
public:
PostHttp(QObject* parent = 0);
 bb::cascades::Image m_image;
 ImageView* imageView;
 Container* mRootContainer;
 bool createFolder(QString path);
 bool openAndSaveFile(QString filePathWithName, QNetworkReply* reply);
public Q_SLOTS:
void loginWebService(const QString &body, const QString &pass,
        bool istoken);
void newsFeedWebService(const qint16 num);
void logoutWebService();
void imageFetcher();
void get(const QUrl &url);
void post(const QVariantMap &body, const QUrl &url);


Q_SIGNALS:
void complete(const QVariantList &info);
void newsfeedComplete(const QVariantList &info);
void imageLoaded(const QVariant &image);

private Q_SLOTS:
void onGetReply();
void onNewsFeedReply();
void onImageReply();

Q_INVOKABLE void generatePage();
 Q_INVOKABLE void loadImages();
private:
bb::cascades::QListDataModel* m_model;
QImage setImage(const QImage &image);
bb::cascades::DataModel* model() const;
QNetworkAccessManager* m_networkAccessManager;
bb::data::JsonDataAccess* dataAccess;

public:
QString token;

};

#endif

PostHttp.cpp

#include "PostHttp.hpp"
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace bb::data;
using namespace bb::cascades;
using namespace bb::utility;
QString globalTokenValue;
int globalUserId;
bool flag = true;
bool flag1 = true;
QVariantList data;

PostHttp::PostHttp(QObject* parent) :
    QObject(parent), m_networkAccessManager(
            new QNetworkAccessManager(this)), m_model(
            new QListDataModel()) {

}

//! [0]

/**
 * PostHttp::post
 *
 * Make a network request to httpbin.org/post with POST data and get
 * the response
 */
//! [1]
void PostHttp::post(const QVariantMap &body, const QUrl &url) {
JsonDataAccess jda;
QByteArray jsonData;
jda.saveToBuffer(*(&body), &jsonData);

QByteArray postDataSize = QByteArray::number(jsonData.size());
QNetworkRequest request(*(&url));

request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
request.setHeader(QNetworkRequest::ContentLengthHeader,
        QString(postDataSize).toUtf8());
//QNetworkReply* reply = m_networkAccessManager->post(request, body.toAscii());
qDebug() < "json" < jsonData;
QNetworkReply* reply = m_networkAccessManager->post(request, jsonData);
qDebug() < "strdgfyusujnm kjh " < (&url)->toString();
if ((&url)->toString()
        ==    "http:///GetNewsFeed") {
    connect(reply, SIGNAL(finished()), this, SLOT(onNewsFeedReply()));
} else {
    connect(reply, SIGNAL(finished()), this, SLOT(onGetReply()));
}
}

void PostHttp::loginWebService(const QString &body, const QString &pass,
    bool istoken) {

qint64 date = QDateTime::currentMSecsSinceEpoch();
QString time = QString::number(date);
QVariantMap data;
QVariantMap loginData;
QVariantMap devicedata;
devicedata.insert("OS", "BlackBerry OS 6.0.0.706");
devicedata.insert("deviceId", "232BC441");
devicedata.insert("deviceModel", "9800");
devicedata.insert("screenSize", "480x360");
loginData.insert("device", devicedata);
loginData.insert("email", *(&body));
loginData.insert("password", *(&pass));
loginData.insert("requestDate", "/Date(" + time + "+200)/");
data.insert("apiKey", "4f74721be9b51f24f065b044");
data.insert("data", loginData);
data.insert("requestDate", "/Date(" + time + "+200)/");
if (istoken) {

} else {
    data.insert("token", "");
}
const QUrl url(
         "http:///LoginRequest");
post(data, url);
}

void PostHttp::newsFeedWebService(const qint16 num) {

qint64 date = QDateTime::currentMSecsSinceEpoch();
QString time = QString::number(date);
QVariantMap data;
QVariantMap newsfeedData;
newsfeedData.insert("postId", 0);
newsfeedData.insert("requestType", 2);
newsfeedData.insert("requestedCount", num);
newsfeedData.insert("userId", globalUserId);
data.insert("apiKey", "4f74721be9b51f24f065b044");
data.insert("data", newsfeedData);
data.insert("requestDate", "/Date(" + time + "+200)/");
data.insert("token", globalTokenValue);
const QUrl url(
        "http:///GetNewsFeed");
if (flag == true) {
    post(data, url);
}

}

void PostHttp::logoutWebService() {
qint64 date = QDateTime::currentMSecsSinceEpoch();
QString time = QString::number(date);
QVariantMap data;
QVariantMap logoutData;
logoutData.insert("logoutRequestType", 1);
logoutData.insert("userId", globalUserId);
data.insert("apiKey", "4f74721be9b51f24f065b044");
data.insert("data", logoutData);
data.insert("requestDate", "/Date(" + time + "+200)/");
data.insert("token", globalTokenValue);
const QUrl url(
        "http:///LogoutUser");
post(data, url);
}

void PostHttp::imageFetcher() {
const QUrl url(
        "http://upload.wikimedia.org/wikipedia/commons/e/e7/Nuvola_filesystems_services.png");
if (flag1 == true) {
    get(url);
}
}

void PostHttp::get(const QUrl &url) {
QNetworkRequest request(*(&url));
QNetworkReply* reply = m_networkAccessManager->get(request);
connect(reply, SIGNAL(finished()), this, SLOT(onImageReply()));
}
/**
 * PostHttp::onGetReply()
 *
 * SLOT
 * Read and return the http response from our http post request
 */
void PostHttp::onGetReply() {
QNetworkReply* reply = qobject_castreadAll());
            response = QString::fromUtf8(buffer);
            JsonDataAccess dataAccess;
            QVariantMap results =
                       dataAccess.loadFromBuffer(response).toMap();
            QString token = (results["Token"]).value();
            int userId = (results["userId"]).value();
            if (globalTokenValue == "") {
                globalTokenValue = token;
                globalUserId = userId;
            } else
                flag = false;
            QString success = (results["Success"]).value();

        }
    } else {
        response =
                tr("Error: %1 status: %2").arg(reply- >errorString(),
                        reply->attribute(
                                   QNetworkRequest::HttpStatusCodeAttribute).toString());
        qDebug() < response;
    }

    reply->deleteLater();
}

if (response.trimmed().isEmpty()) {
    response = tr("Unable to retrieve post response");
}
qDebug() < "response" < response;

}

void PostHttp::onNewsFeedReply() {

QNetworkReply* reply = qobject_cast 0) {
            const QByteArray buffer(reply->readAll());
            response = QString::fromUtf8(buffer);
            JsonDataAccess dataAccess;
            QVariantMap results =
                      dataAccess.loadFromBuffer(response).toMap();
            data = results.value("Data").toList();
            qDebug() < "first element is" < data.first().toString();
            emit newsfeedComplete(data);

        }
    }
}

}
 void PostHttp::onImageReply() {
QNetworkReply* reply = qobject_castbytesAvailable();
        if (available > 0) {
            const QByteArray buffer(reply->readAll());
            response = QString::fromUtf8(buffer);
            img.loadFromData(buffer);
            img = img.scaled(40, 40, Qt::KeepAspectRatioByExpanding);
            const QImage swappedImage = img.rgbSwapped();
            const bb::ImageData imageData = bb::ImageData::fromPixels(
                    swappedImage.bits(), bb::PixelFormat::RGBX,
                    swappedImage.width(),  swappedImage.height(),
                    swappedImage.bytesPerLine());
            QByteArray byteArray = bb::utility::ImageConverter::encode(
                    "image/png", imageData, 75);
            qDebug() < "bytearray is" < byteArray;
//              QVariant image(byteArray);
            QVariant realImage(byteArray);

            qDebug() < "imag of image is" < realImage;
            emit imageLoaded(realImage);
        }
    }
}
}
//! [1]

Ответы на вопрос(2)

Ваш ответ на вопрос