WebKit/qt/tests/hybridPixmap/widget.cpp
changeset 2 303757a437d3
parent 0 4f2f89ce4247
equal deleted inserted replaced
0:4f2f89ce4247 2:303757a437d3
     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 
       
    28 Widget::Widget(QWidget* parent) :
       
    29     QWidget(parent),
       
    30     ui(new Ui::Widget)
       
    31 {
       
    32     ui->setupUi(this);
       
    33 }
       
    34 
       
    35 void Widget::refreshJS()
       
    36 {
       
    37     ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("myWidget", this);
       
    38 }
       
    39 void 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 
       
    46 void 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 
       
    55 void Widget::setPixmap(const QPixmap& p)
       
    56 {
       
    57     ui->lbl1->setPixmap(p);
       
    58 }
       
    59 QPixmap 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 }
       
    68 void Widget::setImage(const QImage& img)
       
    69 {
       
    70     ui->lbl4->setPixmap(QPixmap::fromImage(img));
       
    71 }
       
    72 
       
    73 QImage 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 
       
    83 Widget::~Widget()
       
    84 {
       
    85     delete ui;
       
    86 }
       
    87 
       
    88 void 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 }
       
    99 void Widget::compare(const QVariant& a, const QVariant& b)
       
   100 {
       
   101     QCOMPARE(a, b);
       
   102 }
       
   103 
       
   104 void Widget::imageSlot(const QImage& img)
       
   105 {
       
   106     QCOMPARE(img.size(), ui->lbl3->size());
       
   107     emit pixmapSignal(QPixmap::fromImage(img));
       
   108 }
       
   109 
       
   110 void Widget::pixmapSlot(const QPixmap& pxm)
       
   111 {
       
   112     QCOMPARE(pxm.size(), ui->lbl2->size());
       
   113     emit imageSignal(ui->lbl4->pixmap()->toImage());
       
   114 }
       
   115 
       
   116 void Widget::randomSlot(const QPixmap& pxm)
       
   117 {
       
   118     QVERIFY(pxm.isNull());
       
   119 }