summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-04-27 07:22:05 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-04-27 07:22:05 (GMT)
commitd62bc81491b4b3ef76d626fd56f736427ee1e20c (patch)
treeb8a75f34c0b4d6e64cda081a9d125b431834422d /src
parent7e94543a9b013b6b1140137ba64406b74a363afc (diff)
downloadQt-d62bc81491b4b3ef76d626fd56f736427ee1e20c.zip
Qt-d62bc81491b4b3ef76d626fd56f736427ee1e20c.tar.gz
Qt-d62bc81491b4b3ef76d626fd56f736427ee1e20c.tar.bz2
Fix use of qmlContext() - move outside contructor.
Diffstat (limited to 'src')
-rw-r--r--src/declarative/fx/qfxwebview.cpp97
1 files changed, 47 insertions, 50 deletions
diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp
index 147415d..293c72b 100644
--- a/src/declarative/fx/qfxwebview.cpp
+++ b/src/declarative/fx/qfxwebview.cpp
@@ -199,24 +199,13 @@ QFxWebView::~QFxWebView()
void QFxWebView::init()
{
+ Q_D(QFxWebView);
+
setAcceptedMouseButtons(Qt::LeftButton);
setOptions(HasContents | MouseEvents);
setFocusable(true);
- QWebPage *wp = new QFxWebPage(this);
-
- // QML elements don't default to having a background,
- // even though most we pages will set one anyway.
- QPalette pal = QApplication::palette();
- pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0));
- wp->setPalette(pal);
-
- // ### Need to delay this as qmlEngine() is not set yet
- wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager());
- setPage(wp);
-
- // XXX settable from QML?
- settings()->setAttribute(QWebSettings::PluginsEnabled, true);
+ d->page = 0;
}
void QFxWebView::componentComplete()
@@ -298,17 +287,16 @@ void QFxWebView::doLoadFinished(bool ok)
*/
QString QFxWebView::url() const
{
- Q_D(const QFxWebView);
- return d->page->mainFrame()->url().toString();
+ return page()->mainFrame()->url().toString();
}
void QFxWebView::setUrl(const QString &n)
{
Q_D(QFxWebView);
- if(n == d->page->mainFrame()->url().toString())
+ if(n == page()->mainFrame()->url().toString())
return;
- d->page->setViewportSize(QSize(
+ page()->setViewportSize(QSize(
d->idealwidth>0 ? d->idealwidth : width(),
d->idealheight>0 ? d->idealheight : height()));
@@ -317,7 +305,7 @@ void QFxWebView::setUrl(const QString &n)
url = qmlContext(this)->resolvedUrl(n);
if (isComponentComplete())
- d->page->mainFrame()->load(url);
+ page()->mainFrame()->load(url);
else {
d->pending = d->PendingUrl;
d->pending_url = url;
@@ -430,7 +418,7 @@ void QFxWebView::updateCacheForVisibility()
void QFxWebView::expandToWebPage()
{
Q_D(QFxWebView);
- QSize cs = d->page->mainFrame()->contentsSize();
+ QSize cs = page()->mainFrame()->contentsSize();
if (cs.width() < d->idealwidth)
cs.setWidth(d->idealwidth);
if (cs.height() < d->idealheight)
@@ -439,8 +427,8 @@ void QFxWebView::expandToWebPage()
cs.setWidth(width());
if (heightValid() && cs.height() < height())
cs.setHeight(height());
- if (cs != d->page->viewportSize()) {
- d->page->setViewportSize(cs);
+ if (cs != page()->viewportSize()) {
+ page()->setViewportSize(cs);
d->clearCache();
setImplicitWidth(cs.width());
setImplicitHeight(cs.height());
@@ -525,7 +513,7 @@ void QFxWebView::paintGLContents(GLPainter &p)
#endif
{
Q_D(QFxWebView);
- QWebFrame *frame = d->page->mainFrame();
+ QWebFrame *frame = page()->mainFrame();
const QRect content(QPoint(0,0),frame->contentsSize());
if (content.width() <= 0 || content.height() <= 0)
@@ -605,8 +593,7 @@ void QFxWebView::paintGLContents(GLPainter &p)
QString QFxWebView::propertyInfo() const
{
- Q_D(const QFxWebView);
- return d->page->mainFrame()->url().toString();
+ return page()->mainFrame()->url().toString();
}
static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e)
@@ -639,12 +626,12 @@ void QFxWebView::timerEvent(QTimerEvent *event)
if (event->timerId() ==d->dcTimer.timerId()) {
d->dcTimer.stop();
if (d->lastPress) {
- d->page->event(d->lastPress);
+ page()->event(d->lastPress);
delete d->lastPress;
d->lastPress = 0;
}
if (d->lastRelease) {
- d->page->event(d->lastRelease);
+ page()->event(d->lastRelease);
delete d->lastRelease;
d->lastRelease = 0;
}
@@ -720,7 +707,7 @@ void QFxWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Q_D(const QFxWebView);
if (d->interactive && !d->dcTimer.isActive()) {
QMouseEvent *me = sceneMouseEventToMouseEvent(event);
- d->page->event(me);
+ page()->event(me);
event->setAccepted(
#if QT_VERSION <= 0x040500 // XXX see bug 230835
true
@@ -740,7 +727,7 @@ void QFxWebView::keyPressEvent(QKeyEvent* event)
{
Q_D(const QFxWebView);
if (d->interactive)
- d->page->event(event);
+ page()->event(event);
if (!event->isAccepted())
QFxItem::keyPressEvent(event);
}
@@ -749,7 +736,7 @@ void QFxWebView::keyReleaseEvent(QKeyEvent* event)
{
Q_D(const QFxWebView);
if (d->interactive)
- d->page->event(event);
+ page()->event(event);
if (!event->isAccepted())
QFxItem::keyReleaseEvent(event);
}
@@ -760,8 +747,7 @@ void QFxWebView::keyReleaseEvent(QKeyEvent* event)
*/
QAction *QFxWebView::backAction() const
{
- Q_D(const QFxWebView);
- return d->page->action(QWebPage::Back);
+ return page()->action(QWebPage::Back);
}
/*!
@@ -770,8 +756,7 @@ QAction *QFxWebView::backAction() const
*/
QAction *QFxWebView::forwardAction() const
{
- Q_D(const QFxWebView);
- return d->page->action(QWebPage::Forward);
+ return page()->action(QWebPage::Forward);
}
/*!
@@ -780,8 +765,7 @@ QAction *QFxWebView::forwardAction() const
*/
QAction *QFxWebView::reloadAction() const
{
- Q_D(const QFxWebView);
- return d->page->action(QWebPage::Reload);
+ return page()->action(QWebPage::Reload);
}
/*!
@@ -790,8 +774,7 @@ QAction *QFxWebView::reloadAction() const
*/
QAction *QFxWebView::stopAction() const
{
- Q_D(const QFxWebView);
- return d->page->action(QWebPage::Stop);
+ return page()->action(QWebPage::Stop);
}
/*!
@@ -810,10 +793,7 @@ QAction *QFxWebView::stopAction() const
*/
QString QFxWebView::title() const
{
- Q_D(const QFxWebView);
- if (d->page)
- return d->page->mainFrame()->title();
- return QString();
+ return page()->mainFrame()->title();
}
@@ -832,10 +812,7 @@ QString QFxWebView::title() const
*/
QPixmap QFxWebView::icon() const
{
- Q_D(const QFxWebView);
- if (d->page)
- return d->page->mainFrame()->icon().pixmap(QSize(256,256));
- return QPixmap();
+ return page()->mainFrame()->icon().pixmap(QSize(256,256));
}
@@ -849,8 +826,7 @@ QPixmap QFxWebView::icon() const
*/
void QFxWebView::setTextSizeMultiplier(qreal factor)
{
- Q_D(QFxWebView);
- d->page->mainFrame()->setTextSizeMultiplier(factor);
+ page()->mainFrame()->setTextSizeMultiplier(factor);
}
/*!
@@ -858,8 +834,7 @@ void QFxWebView::setTextSizeMultiplier(qreal factor)
*/
qreal QFxWebView::textSizeMultiplier() const
{
- Q_D(const QFxWebView);
- return d->page->mainFrame()->textSizeMultiplier();
+ return page()->mainFrame()->textSizeMultiplier();
}
void QFxWebView::setStatusBarMessage(const QString& s)
@@ -878,9 +853,31 @@ QString QFxWebView::status() const
QWebPage *QFxWebView::page() const
{
Q_D(const QFxWebView);
+
+ if (!d->page) {
+ QFxWebView *self = const_cast<QFxWebView*>(this);
+ QWebPage *wp = new QFxWebPage(self);
+
+ // QML elements don't default to having a background,
+ // even though most we pages will set one anyway.
+ QPalette pal = QApplication::palette();
+ pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0));
+ wp->setPalette(pal);
+
+ wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager());
+
+ // XXX settable from QML?
+ wp->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
+
+ self->setPage(wp);
+
+ return wp;
+ }
+
return d->page;
}
+
void QFxWebView::setPage(QWebPage *page)
{
Q_D(QFxWebView);