ginebra2/GWebPage.cpp
changeset 5 0f2326c2a325
child 6 1c3b8676e58c
equal deleted inserted replaced
1:b0dd75e285d2 5:0f2326c2a325
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 *
       
     5 * This program is free software: you can redistribute it and/or modify
       
     6 * it under the terms of the GNU Lesser General Public License as published by
       
     7 * the Free Software Foundation, version 2.1 of the License.
       
     8 *
       
     9 * This program 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
       
    12 * GNU Lesser General Public License for more details.
       
    13 *
       
    14 * You should have received a copy of the GNU Lesser General Public License
       
    15 * along with this program.  If not,
       
    16 * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
       
    17 *
       
    18 * Description:
       
    19 *
       
    20 */
       
    21 
       
    22 #include "GWebPage.h"
       
    23 
       
    24 
       
    25 namespace GVA {
       
    26 
       
    27 // ----------------------------------------
       
    28 // WebPageWrapper
       
    29 // ----------------------------------------
       
    30 
       
    31 WebPageWrapper::WebPageWrapper(QObject *parent, const QString &prefix)
       
    32     : QWebPage(parent),
       
    33     m_prefix(prefix) {
       
    34 }
       
    35 
       
    36 // Called when javascript errors are hit in the chrome page.
       
    37 void WebPageWrapper::javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID) {
       
    38     qDebug() << m_prefix << ":";
       
    39     qDebug() << (const char*)QString("===\t%2:%3 %4")
       
    40             .arg(sourceID)
       
    41             .arg(lineNumber)
       
    42             .arg(message).toAscii();
       
    43 }
       
    44 
       
    45 // ----------------------------------------
       
    46 // GSuperWebPage
       
    47 // ----------------------------------------
       
    48 
       
    49 GSuperWebPage::GSuperWebPage(WebPageWrapper *page, ChromeWidget *chromeWidget)
       
    50     : GWebPage(page),
       
    51     m_chromeWidget(chromeWidget)
       
    52 {
       
    53     if (!m_page) {
       
    54         m_page = new WebPageWrapper(this, "Superpage javascript error");
       
    55     }
       
    56     qDebug() << "GSuperWebPage::GSuperWebPage: page=" << GWebPage::page();
       
    57     connect(GWebPage::page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(onJavaScriptWindowObjectCleared()));
       
    58 }
       
    59 
       
    60 void GSuperWebPage::load(const QString &url) {
       
    61     qDebug() << "GSuperWebPage::load: " << url;
       
    62     page()->mainFrame()->load(url);
       
    63 }
       
    64 
       
    65 void GSuperWebPage::onJavaScriptWindowObjectCleared() {
       
    66     qDebug() << "GSuperWebPage::onJavaScriptWindowObjectCleared: " << objectName();
       
    67     if (m_chromeWidget)
       
    68         m_chromeWidget->exportJSObjectsToPage(m_page);
       
    69 }
       
    70 
       
    71 }  // GVA namespace