9 |
PictureView::PictureView(QWidget* parent) |
PictureView::PictureView(QWidget* parent) |
10 |
: QWidget(parent) |
: QWidget(parent) |
11 |
{ |
{ |
12 |
|
http.connect(&http, SIGNAL(requestFinished(int,bool)),this, SLOT(onLoad(int,bool)) ); |
13 |
} |
} |
14 |
|
|
15 |
void PictureView::paintEvent ( QPaintEvent* event) |
void PictureView::paintEvent ( QPaintEvent* event) |
16 |
{ |
{ |
17 |
// Q_UNUSED(event); |
Q_UNUSED(event); |
18 |
QPainter painter(this); |
QPainter painter(this); |
19 |
painter.drawPixmap(0,0,image); |
painter.drawPixmap(0,0,image); |
20 |
painter.end(); |
painter.end(); |
29 |
} else { |
} else { |
30 |
requestedUrl = source; |
requestedUrl = source; |
31 |
|
|
32 |
QUrl imageUrl(requestedUrl); |
QUrl url(requestedUrl); |
33 |
http = new QHttp(imageUrl.host() ); |
http.setHost(url.host() ); |
34 |
http->connect(http, SIGNAL(requestFinished(int,bool)),this, SLOT(onLoad(int,bool)) ); |
http.get(url.path(), 0); |
|
|
|
|
http->get(imageUrl.path(), 0); |
|
35 |
} |
} |
36 |
} |
} |
37 |
|
|
38 |
void PictureView::onLoad(int id, bool ok) |
void PictureView::onLoad(int id, bool ok) |
39 |
{ |
{ |
40 |
// Q_UNUSED(id); |
Q_UNUSED(id); |
41 |
// Q_UNUSED(ok); |
Q_UNUSED(ok); |
42 |
|
qint64 byteCount = http.bytesAvailable(); |
43 |
|
|
44 |
QByteArray data = http->readAll(); |
if (byteCount > 0) { |
45 |
|
|
46 |
QPixmap pixmap; |
QByteArray data = http.readAll(); |
|
pixmap.loadFromData( data ); |
|
|
delete http; |
|
47 |
|
|
48 |
QPixmap scaledImage = pixmap.scaledToHeight(size().height(), Qt::SmoothTransformation ); |
QPixmap pixmap; |
49 |
|
pixmap.loadFromData( data ); |
50 |
|
|
51 |
image = scaledImage; |
QPixmap scaledImage = pixmap.scaledToHeight(size().height(), Qt::SmoothTransformation ); |
|
this->repaint(); |
|
52 |
|
|
53 |
map.insert(requestedUrl, scaledImage); |
image = scaledImage; |
54 |
|
this->repaint(); |
55 |
|
|
56 |
|
map.insert(requestedUrl, scaledImage); |
57 |
|
} |
58 |
} |
} |