--- infoscreen/pictureview.cpp 2010/01/05 14:03:06 524 +++ infoscreen/pictureview.cpp 2010/01/05 17:19:02 526 @@ -9,11 +9,12 @@ PictureView::PictureView(QWidget* parent) : QWidget(parent) { + http.connect(&http, SIGNAL(requestFinished(int,bool)),this, SLOT(onLoad(int,bool)) ); } void PictureView::paintEvent ( QPaintEvent* event) { - // Q_UNUSED(event); + Q_UNUSED(event); QPainter painter(this); painter.drawPixmap(0,0,image); painter.end(); @@ -28,30 +29,30 @@ } else { requestedUrl = source; - QUrl imageUrl(requestedUrl); - http = new QHttp(imageUrl.host() ); - http->connect(http, SIGNAL(requestFinished(int,bool)),this, SLOT(onLoad(int,bool)) ); - - http->get(imageUrl.path(), 0); + QUrl url(requestedUrl); + http.setHost(url.host() ); + http.get(url.path(), 0); } } void PictureView::onLoad(int id, bool ok) { -// Q_UNUSED(id); -// Q_UNUSED(ok); + Q_UNUSED(id); + Q_UNUSED(ok); + qint64 byteCount = http.bytesAvailable(); - QByteArray data = http->readAll(); + if (byteCount > 0) { - QPixmap pixmap; - pixmap.loadFromData( data ); - delete http; + QByteArray data = http.readAll(); - QPixmap scaledImage = pixmap.scaledToHeight(size().height(), Qt::SmoothTransformation ); + QPixmap pixmap; + pixmap.loadFromData( data ); - image = scaledImage; - this->repaint(); + QPixmap scaledImage = pixmap.scaledToHeight(size().height(), Qt::SmoothTransformation ); - map.insert(requestedUrl, scaledImage); + image = scaledImage; + this->repaint(); + map.insert(requestedUrl, scaledImage); + } }