ginebra2/ContentViews/WebView.cpp
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
    23 #include "browserpagefactory.h"
    23 #include "browserpagefactory.h"
    24 #include "wrtbrowsercontainer.h"
    24 #include "wrtbrowsercontainer.h"
    25 
    25 
    26 #include <QWebFrame>
    26 #include <QWebFrame>
    27 #include <QWebPage>
    27 #include <QWebPage>
       
    28 #include "qstmgestureevent.h"
       
    29 #include "qstmfilelogger.h"
    28 
    30 
    29 namespace GVA {
    31 namespace GVA {
    30 
    32 
    31 WebView::WebView()
    33 WebView::WebView()
    32     : QGraphicsWebView()
    34     : WebViewParent()
    33     , m_webPage(0)
    35     , m_webPage(0)
    34 {}
    36 {
       
    37     setAttribute(Qt::WA_OpaquePaintEvent, true);
       
    38     setResizesToContents(true);
       
    39     setObjectName("WebView");
       
    40     setAcceptHoverEvents(false);   
       
    41     installEventFilter(this);
       
    42 }
    35 
    43 
    36 WebView::~WebView()
    44 WebView::~WebView()
    37 {}
    45 {}
    38 
    46 
    39 QWebPage* WebView::page() const
    47 QWebPage* WebView::page() const
    54     m_webPage = page;
    62     m_webPage = page;
    55 
    63 
    56     if (!m_webPage)
    64     if (!m_webPage)
    57         m_webPage = createWebPage();
    65         m_webPage = createWebPage();
    58 
    66 
    59     QGraphicsWebView::setPage(m_webPage);
    67     WebViewParent::setPage(m_webPage);
       
    68 
       
    69     setGeometry(QRectF(pos(), m_webPage->mainFrame()->contentsSize()));
    60 
    70 
    61     emit titleChanged(title());
    71     emit titleChanged(title());
    62     emit urlChanged(url());
    72     emit urlChanged(url());
    63 }
    73 }
    64 
    74 
    65 QWebPage* WebView::createWebPage()
    75 QWebPage* WebView::createWebPage()
    66 {
    76 {
    67     return reinterpret_cast<QWebPage*>(BrowserPageFactory::openBrowserPage());
    77     return reinterpret_cast<QWebPage*>(BrowserPageFactory::openBrowserPage());
    68 }
    78 }
    69 
    79 
       
    80 
       
    81 bool WebView::sceneEvent(QEvent* event)
       
    82 {
       
    83     if (!WebViewParent::eventFilter(this, event)) {
       
    84         return WebViewParent::sceneEvent(event);
       
    85     }
       
    86     return false;
       
    87 }
       
    88 
       
    89 bool WebView::eventFilter(QObject* o, QEvent* e)
       
    90 {
       
    91     return WebViewParent::eventFilter(o, e);
       
    92 }
       
    93 
       
    94 
       
    95 bool WebView::event(QEvent * e) 
       
    96 {
       
    97     if (e->type() == QEvent::Gesture) {
       
    98           QStm_Gesture* gesture = getQStmGesture(e);
       
    99           if (gesture) {
       
   100               QGraphicsObject* go = this->parentItem()->toGraphicsObject();
       
   101               return go->event(e);
       
   102           }
       
   103     }
       
   104     return WebViewParent::event(e);
       
   105 }
       
   106 
    70 }//namespace GVA
   107 }//namespace GVA