ginebra2/PageSnippet.cpp
author hgs
Wed, 01 Sep 2010 13:56:21 -0400
changeset 11 786160610b4d
parent 3 0954f5dd2cd0
child 12 afcd8e6d025b
permissions -rw-r--r--
201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
*
hgs
parents:
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents:
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents:
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents:
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents:
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents:
diff changeset
    12
* GNU Lesser General Public License for more details.
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents:
diff changeset
    15
* along with this program.  If not,
hgs
parents:
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
* Description:
hgs
parents:
diff changeset
    19
*
hgs
parents:
diff changeset
    20
*/
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include "PageSnippet.h"
hgs
parents:
diff changeset
    23
#include "PageItem.h"
hgs
parents:
diff changeset
    24
#include "Utilities.h"
hgs
parents:
diff changeset
    25
#include "ExternalEventCharm.h"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include <QGraphicsWebView>
hgs
parents:
diff changeset
    28
#include <QVariant>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
namespace GVA {
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// ----------------------------
hgs
parents:
diff changeset
    33
// Inlines
hgs
parents:
diff changeset
    34
// ----------------------------
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
inline PageItem *PageSnippet::pageItem() {
hgs
parents:
diff changeset
    37
    return static_cast<PageItem *>(widget());
hgs
parents:
diff changeset
    38
}
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
inline PageItem const *PageSnippet::constPageItem() const {
hgs
parents:
diff changeset
    41
    return static_cast<PageItem const *>(constWidget());
hgs
parents:
diff changeset
    42
}
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// ----------------------------
hgs
parents:
diff changeset
    45
// PageSnippet
hgs
parents:
diff changeset
    46
// ----------------------------
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
PageSnippet::PageSnippet(const QString & elementId, ChromeWidget * chrome,
hgs
parents:
diff changeset
    49
                         QGraphicsWidget * widget, const QWebElement & element)
hgs
parents:
diff changeset
    50
  : ChromeSnippet(elementId, chrome, widget, element),
hgs
parents:
diff changeset
    51
    m_externalEventCharm(0)
hgs
parents:
diff changeset
    52
{
hgs
parents:
diff changeset
    53
}
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
PageSnippet::~PageSnippet() {
hgs
parents:
diff changeset
    56
    delete m_externalEventCharm;
hgs
parents:
diff changeset
    57
}
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
PageSnippet * PageSnippet::instance(const QString& elementId, ChromeWidget * chrome, const QWebElement & element)
hgs
parents:
diff changeset
    60
{
hgs
parents:
diff changeset
    61
    PageSnippet* that = new PageSnippet(elementId, chrome, 0, element);
hgs
parents:
diff changeset
    62
    that->setChromeWidget( new PageItem( that, chrome ) );
hgs
parents:
diff changeset
    63
    return that;
hgs
parents:
diff changeset
    64
}
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
void PageSnippet::setChromeWidget(QGraphicsWidget * widget) {
hgs
parents:
diff changeset
    67
    ChromeSnippet::setChromeWidget(widget);
hgs
parents:
diff changeset
    68
    m_externalEventCharm = new ExternalEventCharm(widget);
hgs
parents:
diff changeset
    69
    safe_connect(m_externalEventCharm, SIGNAL(externalMouseEvent(QEvent*, const QString &, const QString &)),
hgs
parents:
diff changeset
    70
                 this, SIGNAL(externalMouseEvent(QEvent*, const QString &, const QString &)));
hgs
parents:
diff changeset
    71
}
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
void PageSnippet::setVisible(bool visiblity, bool animate) {
hgs
parents:
diff changeset
    74
    ChromeSnippet::setVisible(visiblity, animate);
hgs
parents:
diff changeset
    75
}
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
QString PageSnippet::url() const {
hgs
parents:
diff changeset
    78
    return constPageItem()->url();
hgs
parents:
diff changeset
    79
}
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
void PageSnippet::setUrl(const QString &url) {
hgs
parents:
diff changeset
    82
    pageItem()->setUrl(url);
hgs
parents:
diff changeset
    83
}
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
void PageSnippet::setHtml(const QString &value) {
hgs
parents:
diff changeset
    86
    pageItem()->setHtml(value);
hgs
parents:
diff changeset
    87
}
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
QString PageSnippet::html() const {
hgs
parents:
diff changeset
    90
    return constPageItem()->html();
hgs
parents:
diff changeset
    91
}
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
void PageSnippet::setGeometry(int x, int y, int width, int height) {
hgs
parents:
diff changeset
    94
    widget()->setGeometry(x, y, width, height);
hgs
parents:
diff changeset
    95
}
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
void PageSnippet::setSize(int width, int height) {
hgs
parents:
diff changeset
    98
    pageItem()->setSize(QSizeF(width, height));
hgs
parents:
diff changeset
    99
}
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
QVariant PageSnippet::evaluateJavaScript(const QString &expression) {
hgs
parents:
diff changeset
   102
    return pageItem()->evaluateJavaScript(expression);
hgs
parents:
diff changeset
   103
}
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
void PageSnippet::instantiate() {
hgs
parents:
diff changeset
   106
    pageItem()->instantiate();
hgs
parents:
diff changeset
   107
}
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
void PageSnippet::cleanUp() {
hgs
parents:
diff changeset
   110
    pageItem()->cleanUpOnTimer();
hgs
parents:
diff changeset
   111
}
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
}