source: trunk/src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.cpp

Last change on this file was 846, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 3.0 KB
Line 
1/*
2 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 *
18 */
19
20#include "widget.h"
21
22#include "qwebelement.h"
23#include "qwebframe.h"
24#include "ui_widget.h"
25#include <QPainter>
26#include <QtTest/QtTest>
27
28Widget::Widget(QWidget* parent) :
29 QWidget(parent),
30 ui(new Ui::Widget)
31{
32 ui->setupUi(this);
33}
34
35void Widget::refreshJS()
36{
37 ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("myWidget", this);
38}
39void Widget::start()
40{
41 ui->webView->load(QUrl("qrc:///test.html"));
42 connect(ui->webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(refreshJS()));
43 ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("myWidget", this);
44}
45
46void Widget::completeTest()
47{
48 QCOMPARE(ui->lbl1->pixmap()->size(), ui->lbl2->size());
49 QCOMPARE(ui->lbl3->size(), ui->lbl4->pixmap()->size());
50 QCOMPARE(ui->lbl2->size().width(), ui->webView->page()->mainFrame()->findFirstElement("#img1").evaluateJavaScript("this.width").toInt());
51 QCOMPARE(ui->lbl3->size().width(), ui->webView->page()->mainFrame()->findFirstElement("#img2").evaluateJavaScript("this.width").toInt());
52 emit testComplete();
53}
54
55void Widget::setPixmap(const QPixmap& p)
56{
57 ui->lbl1->setPixmap(p);
58}
59QPixmap Widget::pixmap() const
60{
61 QPixmap px(ui->lbl3->size());
62 {
63 QPainter p(&px);
64 ui->lbl3->render(&p);
65 }
66 return px;
67}
68void Widget::setImage(const QImage& img)
69{
70 ui->lbl4->setPixmap(QPixmap::fromImage(img));
71}
72
73QImage Widget::image() const
74{
75 QImage img(ui->lbl2->size(), QImage::Format_ARGB32);
76 {
77 QPainter p(&img);
78 ui->lbl2->render(&p);
79 }
80 return img;
81}
82
83Widget::~Widget()
84{
85 delete ui;
86}
87
88void Widget::changeEvent(QEvent* e)
89{
90 QWidget::changeEvent(e);
91 switch (e->type()) {
92 case QEvent::LanguageChange:
93 ui->retranslateUi(this);
94 break;
95 default:
96 break;
97 }
98}
99void Widget::compare(const QVariant& a, const QVariant& b)
100{
101 QCOMPARE(a, b);
102}
103
104void Widget::imageSlot(const QImage& img)
105{
106 QCOMPARE(img.size(), ui->lbl3->size());
107 emit pixmapSignal(QPixmap::fromImage(img));
108}
109
110void Widget::pixmapSlot(const QPixmap& pxm)
111{
112 QCOMPARE(pxm.size(), ui->lbl2->size());
113 emit imageSignal(ui->lbl4->pixmap()->toImage());
114}
115
116void Widget::randomSlot(const QPixmap& pxm)
117{
118 QVERIFY(pxm.isNull());
119}
Note: See TracBrowser for help on using the repository browser.