BrowserView.cpp Example File
demos/embedded/anomaly/src/BrowserView.cpp
 #include "BrowserView.h"
 #include <QtGui>
 #include <QtNetwork>
 #include <QtWebKit>
 #include "ControlStrip.h"
 #include "TitleBar.h"
 #include "flickcharm.h"
 #include "webview.h"
 #include "ZoomStrip.h"
 #if defined (Q_OS_SYMBIAN)
 #include "sym_iap_util.h"
 #endif
 BrowserView::BrowserView(QWidget *parent)
     : QWidget(parent)
     , m_titleBar(0)
     , m_webView(0)
     , m_progress(0)
     , m_currentZoom(100)
 {
     m_titleBar = new TitleBar(this);
     m_webView = new WebView(this);
     m_zoomStrip = new ZoomStrip(this);
     m_controlStrip = new ControlStrip(this);
     m_zoomLevels << 30 << 50 << 67 << 80 << 90;
     m_zoomLevels << 100;
     m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300;
     QTimer::singleShot(0, this, SLOT(initialize()));
 }
 void BrowserView::initialize()
 {
     connect(m_zoomStrip, SIGNAL(zoomInClicked()), SLOT(zoomIn()));
     connect(m_zoomStrip, SIGNAL(zoomOutClicked()), SLOT(zoomOut()));
     connect(m_controlStrip, SIGNAL(menuClicked()), SIGNAL(menuButtonClicked()));
     connect(m_controlStrip, SIGNAL(backClicked()), m_webView, SLOT(back()));
     connect(m_controlStrip, SIGNAL(forwardClicked()), m_webView, SLOT(forward()));
     connect(m_controlStrip, SIGNAL(closeClicked()), qApp, SLOT(quit()));
     QPalette pal = m_webView->palette();
     pal.setBrush(QPalette::Base, Qt::white);
     m_webView->setPalette(pal);
     FlickCharm *flickCharm = new FlickCharm(this);
     flickCharm->activateOn(m_webView);
     m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
     connect(m_webView, SIGNAL(loadStarted()), SLOT(start()));
     connect(m_webView, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));
     connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(finish(bool)));
     connect(m_webView, SIGNAL(urlChanged(QUrl)), SLOT(updateTitleBar()));
     m_webView->setHtml("about:blank");
     m_webView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     m_webView->setFocus();
 #ifdef Q_OS_SYMBIAN
     QTimer::singleShot(0, this, SLOT(setDefaultIap()));
 #endif
 }
 void BrowserView::start()
 {
     m_progress = 0;
     updateTitleBar();
     
 }
 void BrowserView::setProgress(int percent)
 {
     m_progress = percent;
     updateTitleBar();
     
 }
 void BrowserView::updateTitleBar()
 {
     QUrl url = m_webView->url();
     m_titleBar->setHost(url.host());
     m_titleBar->setTitle(m_webView->title());
     m_titleBar->setProgress(m_progress);
 }
 void BrowserView::finish(bool ok)
 {
     m_progress = 0;
     updateTitleBar();
     
     if (!ok) {
         
     }
 }
 void BrowserView::zoomIn()
 {
     int i = m_zoomLevels.indexOf(m_currentZoom);
     Q_ASSERT(i >= 0);
     if (i < m_zoomLevels.count() - 1)
         m_currentZoom = m_zoomLevels[i + 1];
     m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
 }
 void BrowserView::zoomOut()
 {
     int i = m_zoomLevels.indexOf(m_currentZoom);
     Q_ASSERT(i >= 0);
     if (i > 0)
         m_currentZoom = m_zoomLevels[i - 1];
     m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
 }
 void BrowserView::resizeEvent(QResizeEvent *event)
 {
     QWidget::resizeEvent(event);
     int h1 = m_titleBar->sizeHint().height();
     int h2 = m_controlStrip->sizeHint().height();
     m_titleBar->setGeometry(0, 0, width(), h1);
     m_controlStrip->setGeometry(0, height() - h2, width(), h2);
     m_webView->setGeometry(0, h1, width(), height() - h1);
     int zw = m_zoomStrip->sizeHint().width();
     int zh = m_zoomStrip->sizeHint().height();
     m_zoomStrip->move(width() - zw, (height() - zh) / 2);
 }
 #ifdef Q_OS_SYMBIAN
 void BrowserView::setDefaultIap()
 {
     qt_SetDefaultIap();
     m_webView->load(QUrl("http:
 }
 #endif
 void BrowserView::navigate(const QUrl &url)
 {
     m_webView->load(url);
 }
| Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies) | Trademarks | Qt 4.6.3 |