ginebra2/PageItem.cpp
changeset 6 1c3b8676e58c
parent 5 0f2326c2a325
equal deleted inserted replaced
5:0f2326c2a325 6:1c3b8676e58c
    20 */
    20 */
    21 
    21 
    22 #include "PageItem.h"
    22 #include "PageItem.h"
    23 #include "GWebTouchNavigation.h"
    23 #include "GWebTouchNavigation.h"
    24 #include "Utilities.h"
    24 #include "Utilities.h"
    25 #include "GWebPage.h"
    25 #include "GSuperWebPage.h"
    26 #include "ChromeWidget.h"
    26 #include "ChromeWidget.h"
    27 
    27 
    28 #include <QGraphicsWebView>
    28 #include <QGraphicsWebView>
    29 #include <QTimer>
    29 #include <QTimer>
    30 
    30 
    43 };
    43 };
    44 
    44 
    45 // ---------------------------------
    45 // ---------------------------------
    46 
    46 
    47 PageItem::PageItem(ChromeSnippet * snippet, ChromeWidget* chrome)
    47 PageItem::PageItem(ChromeSnippet * snippet, ChromeWidget* chrome)
    48   : NativeChromeItem(snippet, chrome),
    48   : NativeChromeItem(snippet, chrome->layout()),
    49     m_webView(0),
    49     m_webView(0),
    50     m_touchNavigation(0),
    50     m_touchNavigation(0),
    51     m_superPage(0),
    51     m_superPage(0),
    52     m_page(0),
    52     m_page(0),
    53     m_chrome(chrome),
    53     m_chrome(chrome),
    66     if (m_isInstantiated) {
    66     if (m_isInstantiated) {
    67         m_cleanupTimer->stop(); // make sure cleanup not scheduled
    67         m_cleanupTimer->stop(); // make sure cleanup not scheduled
    68         return;
    68         return;
    69     }
    69     }
    70 
    70 
    71     qDebug() << "PageItem::instantiate";
       
    72 
       
    73     // Create the web page.
    71     // Create the web page.
    74     m_page = new WebPageWrapper(this, "Page snippet javascript error");
    72     m_page = new WebPageWrapper(this, "Page snippet javascript error");
    75     m_page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
    73     m_page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
    76     m_page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
    74     m_page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
    77 
    75 
    86     m_superPage = new GSuperWebPage(m_page, m_chrome);
    84     m_superPage = new GSuperWebPage(m_page, m_chrome);
    87 
    85 
    88     // Create the web view.
    86     // Create the web view.
    89     m_webView = new PageItemWebView(this);
    87     m_webView = new PageItemWebView(this);
    90     m_webView->setPage(m_page);
    88     m_webView->setPage(m_page);
    91     safe_connect(m_webView, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool)));
       
    92 
    89 
    93     m_touchNavigation = new GWebTouchNavigation(m_page, m_webView);
    90     m_touchNavigation = new GWebTouchNavigation(m_page, m_webView);
    94 
    91 
    95     // create and setup timer to delay cleanup
    92     // create and setup timer to delay cleanup
    96     m_cleanupTimer = new QTimer();
    93     m_cleanupTimer = new QTimer();
   113 
   110 
   114     m_cleanupTimer->start();
   111     m_cleanupTimer->start();
   115 }
   112 }
   116 
   113 
   117 void PageItem::cleanUp() {   // slot
   114 void PageItem::cleanUp() {   // slot
   118     qDebug() << "PageItem::cleanUp";
       
   119     delete m_cleanupTimer;
   115     delete m_cleanupTimer;
   120     m_cleanupTimer = 0;
   116     m_cleanupTimer = 0;
   121     delete m_touchNavigation;
   117     delete m_touchNavigation;
   122     m_touchNavigation = 0;
   118     m_touchNavigation = 0;
   123     delete m_webView;
   119     delete m_webView;
   126     m_superPage = 0;
   122     m_superPage = 0;
   127     m_isInstantiated = false;
   123     m_isInstantiated = false;
   128 }
   124 }
   129 
   125 
   130 void PageItem::resizeEvent(::QGraphicsSceneResizeEvent *event) {
   126 void PageItem::resizeEvent(::QGraphicsSceneResizeEvent *event) {
   131     qDebug() << "PageItem::resizeEvent: " << event->newSize();
       
   132     setWebViewSize(event->newSize());
   127     setWebViewSize(event->newSize());
   133 }
   128 }
   134 
   129 
   135 void PageItem::setSize(const QSizeF &size) {
   130 void PageItem::setSize(const QSizeF &size) {
   136     resize(size);
   131     resize(size);
   185 //    // Paint the background.
   180 //    // Paint the background.
   186 //    painter->fillRect(QRectF(0,0, geometry().width(), geometry().height()), Qt::blue);
   181 //    painter->fillRect(QRectF(0,0, geometry().width(), geometry().height()), Qt::blue);
   187 //}
   182 //}
   188 
   183 
   189 QVariant PageItem::evaluateJavaScript(const QString &expression) {
   184 QVariant PageItem::evaluateJavaScript(const QString &expression) {
   190     qDebug() << "PageItem::evaluateJavaScript: " << expression;
       
   191     if (m_webView) {
   185     if (m_webView) {
   192         QWebFrame *frame = m_webView->page()->mainFrame();
   186         QWebFrame *frame = m_webView->page()->mainFrame();
   193         if (frame)
   187         if (frame)
   194             return frame->evaluateJavaScript(expression);
   188             return frame->evaluateJavaScript(expression);
   195     }
   189     }
   196     return QVariant();
   190     return QVariant();
   197 }
   191 }
   198 
   192 
   199 void PageItem::onLoadFinished(bool ok) {   // slot
       
   200     qDebug() << "PageItem::onLoadFinished: " << ok;
       
   201 }
       
   202 
       
   203 } // GVA namespace
   193 } // GVA namespace