/*
  This file was generated by the Html5 Application wizard of Qt Creator.
  Html5ApplicationViewer is a convenience class containing mobile device specific
  code such as screen orientation handling.
  It is recommended not to modify this file, since newer versions of Qt Creator
  may offer an updated version of it.
*/

#include <QGraphicsWebView>
#include <QWebPage>
#include "navigationcontroller.h"
#include "webnavigation.h"
#include "webtouchnavigation.h"

class NavigationControllerPrivate
{
public:
    NavigationControllerPrivate(QWidget *parent, QGraphicsWebView *webView);
    ~NavigationControllerPrivate();

    QWebPage *m_webPage;
    QWidget *m_webWidget;
    QGraphicsWebView *m_graphicsWebView;
    WebNavigation *m_webNavigation;
};

NavigationControllerPrivate::NavigationControllerPrivate(QWidget *parent, QGraphicsWebView *webView)
    : m_webPage(0)
    , m_webWidget(0)
    , m_graphicsWebView(webView)
    , m_webNavigation(0)
{
    Q_UNUSED(parent);
    m_graphicsWebView->setAcceptTouchEvents(true);
    m_webPage = new QWebPage;
    m_graphicsWebView->setPage(m_webPage);
    m_webNavigation = new WebNavigation(m_graphicsWebView, m_webPage);
    m_webNavigation->setParent(m_graphicsWebView);
}

NavigationControllerPrivate::~NavigationControllerPrivate()
{
    if (m_webNavigation)
        delete m_webNavigation;
    if (m_webPage)
        delete m_webPage;
    if (m_graphicsWebView)
        delete m_graphicsWebView;
}

NavigationController::NavigationController(QWidget *parent, QGraphicsWebView *webView)
    : m_d(new NavigationControllerPrivate(parent, webView))
{
}

NavigationController::~NavigationController()
{
    delete m_d;
}

QWebPage* NavigationController::webPage() const
{
    return m_d->m_webPage;
}

QGraphicsWebView* NavigationController::graphicsWebView() const
{
    return m_d->m_graphicsWebView;
}
