ginebra2/WebChromeSnippet.cpp
changeset 6 1c3b8676e58c
parent 5 0f2326c2a325
equal deleted inserted replaced
5:0f2326c2a325 6:1c3b8676e58c
    30 
    30 
    31 namespace GVA {
    31 namespace GVA {
    32 
    32 
    33   static WebChromeItem * newChromeItem(
    33   static WebChromeItem * newChromeItem(
    34       ChromeWidget * chrome,
    34       ChromeWidget * chrome,
    35       const QRectF& ownerArea,
       
    36       const QWebElement & element)
    35       const QWebElement & element)
    37   {
    36   {
    38     QString type = element.attribute("data-GinebraItemType", "normal");
    37     QString type = element.attribute("data-GinebraItemType", "normal");
    39 
    38 
    40     if (type == "popup") {
    39     if (type == "popup") {
    41       QString modal = element.attribute("data-GinebraPopupModal", "true");
    40       QString modal = element.attribute("data-GinebraPopupModal", "true");
    42       return new PopupWebChromeItem(ownerArea, chrome, element, 0, modal == "true");
    41       return new PopupWebChromeItem(chrome, element, 0, modal == "true");
    43     }
    42     }
    44 
    43 
    45     return new WebChromeItem(ownerArea, chrome, element);
    44     return new WebChromeItem(chrome, element);
    46   }
    45   }
    47 
    46 
    48   WebChromeSnippet::WebChromeSnippet(
    47   WebChromeSnippet::WebChromeSnippet(
    49           const QString & elementId,
    48           const QString & elementId,
    50           ChromeWidget * chrome,
    49           ChromeWidget * chrome,
    51           const QRectF& ownerArea,
       
    52           const QWebElement & element)
    50           const QWebElement & element)
    53     : ChromeSnippet(elementId, chrome, newChromeItem(chrome, ownerArea, element), element)
    51     : ChromeSnippet(elementId, chrome, newChromeItem(chrome, element), element)
    54 
    52 
    55   {
    53   {
    56     WebChromeItem * item = static_cast<WebChromeItem*> (widget());
    54     WebChromeItem * item = static_cast<WebChromeItem*> (widget());
    57     item->init(this);
    55     item->init(this);
    58   }
    56   }
    75 
    73 
    76   void WebChromeSnippet:: updateOwnerArea()
    74   void WebChromeSnippet:: updateOwnerArea()
    77   {
    75   {
    78 
    76 
    79     WebChromeItem * item = static_cast<WebChromeItem*> (widget());
    77     WebChromeItem * item = static_cast<WebChromeItem*> (widget());
    80     //Setting owner area also resets the item's size and preferred size
    78     item->updateSizes();
    81     item->setOwnerArea(m_chrome->getSnippetRect(m_elementId));
    79     //TODO: Revisit this, don't use owner area
    82     //qDebug() << WebChromeSnippet::updateOwnerArea: id: " << m_elementId << " element rect: " << item->ownerArea();
    80     //item->setCachedHandlers(m_chrome->dom()->getCachedHandlers(m_elementId, item->ownerArea()));
    83     //NB: Should move this to WebChromeItem::setOwnerArea()?
       
    84     item->setCachedHandlers(m_chrome->dom()->getCachedHandlers(m_elementId, item->ownerArea()));
       
    85 
    81 
    86   }
    82   }
    87 
    83 
    88 } // endof namespace GVA
    84 } // endof namespace GVA