ginebra2/mostvisitedpageview.cpp
changeset 6 1c3b8676e58c
parent 5 0f2326c2a325
child 10 232fbd5a2dcb
equal deleted inserted replaced
5:0f2326c2a325 6:1c3b8676e58c
    29 #include "webpagedata.h"
    29 #include "webpagedata.h"
    30 
    30 
    31 const int KLinearSnippetHeight = 120;
    31 const int KLinearSnippetHeight = 120;
    32 
    32 
    33 namespace GVA {
    33 namespace GVA {
    34 MostVisitedPagesWidget::MostVisitedPagesWidget(ChromeSnippet* snippet,QGraphicsWidget* parent)
    34 MostVisitedPagesWidget::MostVisitedPagesWidget(ChromeSnippet* snippet, ChromeWidget* chrome)
    35                         : ChromeItem(snippet, parent)
    35   : ChromeItem(snippet, chrome->layout())
    36                         , m_parent(parent)
    36   , m_parent(chrome->layout())
    37                         , m_flowInterface(0)
    37   , m_chrome(chrome)
    38                         , m_hideOnClose(true)
    38   , m_flowInterface(0)
       
    39   , m_hideOnClose(true)
    39 {
    40 {
    40     setFlags(QGraphicsItem::ItemDoesntPropagateOpacityToChildren);
    41     setFlags(QGraphicsItem::ItemDoesntPropagateOpacityToChildren);
    41     setOpacity(0.5);
    42     setOpacity(0.5);
    42     m_mostVisitedPageStore = new MostVisitedPageStore();
    43     m_mostVisitedPageStore = new MostVisitedPageStore();
    43     WebPageController* pageController = WebPageController::getSingleton();
    44     WebPageController* pageController = WebPageController::getSingleton();
   114 }
   115 }
   115 
   116 
   116 void MostVisitedPagesWidget::updatePos(QPointF pos, qreal &toolBarHeight)
   117 void MostVisitedPagesWidget::updatePos(QPointF pos, qreal &toolBarHeight)
   117 {
   118 {
   118     QGraphicsWidget::setPos(pos);
   119     QGraphicsWidget::setPos(pos);
   119     m_flowInterface->setPos(pos.x(), m_parent->size().height() - toolBarHeight - KLinearSnippetHeight);
   120     m_flowInterface->setPos(pos.x(), m_parent->size().height() - (toolBarHeight+5) - KLinearSnippetHeight);
   120 }
   121 }
   121 
   122 
   122 void MostVisitedPagesWidget::resize(const QSize &size)
   123 void MostVisitedPagesWidget::resize(const QSize &size)
   123 {
   124 {
   124     QGraphicsWidget::resize(size);
   125     QGraphicsWidget::resize(size);
   130     m_flowInterface->displayModeChanged(newMode);
   131     m_flowInterface->displayModeChanged(newMode);
   131 }
   132 }
   132 
   133 
   133 void MostVisitedPagesWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
   134 void MostVisitedPagesWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
   134 {
   135 {
   135     painter->fillRect(0, 0, size().width(), size().height(), QColor(107, 109, 107));
   136     painter->fillRect(0, 0, size().width(), size().height(), QColor(255, 255, 255));
   136     QGraphicsWidget::paint(painter, option, widget);
   137     QGraphicsWidget::paint(painter, option, widget);
   137 }
   138 }
   138 
   139 
   139 void MostVisitedPagesWidget::setCenterIndex(QString displayMode)
   140 void MostVisitedPagesWidget::setCenterIndex(QString displayMode)
   140 {
   141 {
   167     m_flowInterface->removeEventFilter(this);
   168     m_flowInterface->removeEventFilter(this);
   168     m_flowInterface->deleteLater();
   169     m_flowInterface->deleteLater();
   169     m_flowInterface = NULL;
   170     m_flowInterface = NULL;
   170 
   171 
   171     if (m_selectIndex != -1)
   172     if (m_selectIndex != -1)
   172         static_cast<ChromeWidget*>(m_parent)->loadUrlToCurrentPage(m_mostVisitedPageStore->pageAt(m_selectIndex)->pageUrl());
   173         m_chrome->loadUrlToCurrentPage(m_mostVisitedPageStore->pageAt(m_selectIndex)->pageUrl());
   173 
   174 
   174     if (m_snippet->isVisible() && m_hideOnClose)
   175     if (m_snippet->isVisible() && m_hideOnClose)
   175         m_snippet->ChromeSnippet::toggleVisibility();
   176         m_snippet->ChromeSnippet::toggleVisibility();
   176 
   177 
   177     m_hideOnClose = false;
   178     m_hideOnClose = false;
   180 
   181 
   181 void MostVisitedPagesWidget::updateMVGeometry()
   182 void MostVisitedPagesWidget::updateMVGeometry()
   182 {
   183 {
   183     qreal toolBarHeight;
   184     qreal toolBarHeight;
   184 
   185 
   185     ChromeSnippet* visibleSnippet= static_cast<ChromeWidget*>(m_parent)->getSnippet("WebViewToolbarId");
   186     ChromeSnippet* visibleSnippet= m_chrome->getSnippet("WebViewToolbarId");
   186     if (visibleSnippet)
   187     if (visibleSnippet)
   187         toolBarHeight = visibleSnippet->widget()->geometry().height();
   188         toolBarHeight = visibleSnippet->widget()->geometry().height();
   188 
   189 
   189     resize(m_parent->size().toSize());
   190     resize(m_parent->size().toSize());
   190     updatePos(QPointF(0, 0), toolBarHeight);
   191     updatePos(QPointF(0, 0), toolBarHeight);
   196     Q_ASSERT(!page->mainFrame()->url().isEmpty());
   197     Q_ASSERT(!page->mainFrame()->url().isEmpty());
   197 
   198 
   198     QUrl pageUrl = page->mainFrame()->url();
   199     QUrl pageUrl = page->mainFrame()->url();
   199     int pageRank = 0;
   200     int pageRank = 0;
   200     QImage* pageThumbnail = NULL;
   201     QImage* pageThumbnail = NULL;
   201     //check if page exits in store along with its thumbnail
   202     //check if page exists in store along with its thumbnail
   202     if (!m_mostVisitedPageStore->contains(pageUrl.toString(), true)) {
   203     if (!m_mostVisitedPageStore->contains(pageUrl.toString(), true)) {
   203         qreal scale = 200.0 / page->viewportSize().width();
   204         qreal scale = 200.0 / page->viewportSize().width();
   204         QImage img = page->pageThumbnail(scale, scale);
   205         QImage img = page->pageThumbnail(scale, scale);
   205         pageThumbnail = new QImage(img);
   206         pageThumbnail = new QImage(img);
   206     }
   207     }