diff -r b0dd75e285d2 -r 0f2326c2a325 ginebra2/mostvisitedpageview.cpp --- a/ginebra2/mostvisitedpageview.cpp Fri May 14 15:40:36 2010 +0300 +++ b/ginebra2/mostvisitedpageview.cpp Wed Jun 23 17:59:43 2010 +0300 @@ -1,21 +1,24 @@ /* * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as published by +* the Free Software Foundation, version 2.1 of the License. * -* Initial Contributors: -* Nokia Corporation - initial contribution. +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License for more details. * -* Contributors: +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, +* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". * -* Description: +* Description: * */ - #include #include "mostvisitedpagestore.h" @@ -23,13 +26,13 @@ #include "mostvisitedpageview.h" #include "webpagecontroller.h" #include "BookmarksManager.h" +#include "webpagedata.h" const int KLinearSnippetHeight = 120; namespace GVA { -MostVisitedPagesWidget::MostVisitedPagesWidget(ChromeSnippet* snippet,QGraphicsWidget* parent) - : m_snippet(snippet) - , QGraphicsWidget(parent) +MostVisitedPagesWidget::MostVisitedPagesWidget(ChromeSnippet* snippet,QGraphicsWidget* parent) + : ChromeItem(snippet, parent) , m_parent(parent) , m_flowInterface(0) , m_hideOnClose(true) @@ -38,7 +41,8 @@ setOpacity(0.5); m_mostVisitedPageStore = new MostVisitedPageStore(); WebPageController* pageController = WebPageController::getSingleton(); - bool ret = connect(pageController, SIGNAL(loadFinished(const bool)), this, SLOT(onLoadFinished(const bool))); + connect(pageController, SIGNAL(loadFinished(const bool)), this, SLOT(onLoadFinished(const bool))); + connect(WRT::BookmarksManager::getSingleton(),SIGNAL(historyCleared()),this,SLOT(clearMVStore())); } MostVisitedPagesWidget::~MostVisitedPagesWidget() @@ -48,7 +52,8 @@ if (m_mostVisitedPageStore) delete m_mostVisitedPageStore; WebPageController* pageController = WebPageController::getSingleton(); - disconnect(pageController, SIGNAL(loadFinished()), this, SLOT(onLoadFinished())); + disconnect(pageController, SIGNAL(loadFinished(const bool)), this, SLOT(onLoadFinished(const bool))); + disconnect(WRT::BookmarksManager::getSingleton(),SIGNAL(historyCleared()),this,SLOT(clearMVStore())); } @@ -60,20 +65,20 @@ m_flowInterface = new GVA::LinearFlowSnippet(this); m_flowInterface->setZValue(m_parent->zValue() + 1); m_flowInterface->resize(QSize(m_parent->size().width(), KLinearSnippetHeight)); - connect(m_flowInterface, SIGNAL(mouseEvent(QEvent::Type)),this->m_snippet,SIGNAL(snippetMouseEvent(QEvent::Type))); - + connect(m_flowInterface, SIGNAL(mouseEvent(QEvent::Type)),this,SIGNAL(mouseEvent(QEvent::Type))); + //Initialize the page selection index m_selectIndex = -1; - + QString displayMode; if (m_parent->size().width() > m_parent->size().height()) { displayMode = "Landscape"; - + } else { displayMode = "Portrait"; } - m_flowInterface->init(displayMode,"Most Visited Pages"); + m_flowInterface->init(displayMode,qtTrId("txt_browser_most_visited_title")); MostVisitedPageList mvPageList = m_mostVisitedPageStore->pageList(); @@ -90,7 +95,7 @@ delete pageThumbnail; } } - + setCenterIndex(displayMode); m_flowInterface->prepareStartAnimation(); m_flowInterface->runStartAnimation(); @@ -122,7 +127,7 @@ void MostVisitedPagesWidget::displayModeChanged(QString& newMode) { - m_flowInterface->displayModeChanged(newMode); + m_flowInterface->displayModeChanged(newMode); } void MostVisitedPagesWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) @@ -146,7 +151,7 @@ { Q_ASSERT(m_flowInterface); m_selectIndex = index; - close(); + close(); } void MostVisitedPagesWidget::closeAnimationCompleted() @@ -157,12 +162,12 @@ QGraphicsWidget::hide(); disconnect(m_flowInterface, SIGNAL(ok(int)), this, SLOT(okTriggered(int))); disconnect(m_flowInterface, SIGNAL(endAnimationCplt()), this, SLOT(closeAnimationCompleted())); - disconnect(m_flowInterface, SIGNAL(mouseEvent(QEvent::Type)),this->m_snippet,SIGNAL(snippetMouseEvent(QEvent::Type))); + disconnect(m_flowInterface, SIGNAL(mouseEvent(QEvent::Type)),this,SIGNAL(mouseEvent(QEvent::Type))); m_flowInterface->removeEventFilter(this); m_flowInterface->deleteLater(); m_flowInterface = NULL; - + if (m_selectIndex != -1) static_cast(m_parent)->loadUrlToCurrentPage(m_mostVisitedPageStore->pageAt(m_selectIndex)->pageUrl()); @@ -179,30 +184,25 @@ ChromeSnippet* visibleSnippet= static_cast(m_parent)->getSnippet("WebViewToolbarId"); if (visibleSnippet) - toolBarHeight = visibleSnippet->widget()->geometry().height(); + toolBarHeight = visibleSnippet->widget()->geometry().height(); resize(m_parent->size().toSize()); updatePos(QPointF(0, 0), toolBarHeight); } - void MostVisitedPagesWidget::updateMVStore(QWebPage *page) + void MostVisitedPagesWidget::updateMVStore(WRT::WrtBrowserContainer *page) { Q_ASSERT(page); Q_ASSERT(!page->mainFrame()->url().isEmpty()); - QImage* pageThumbnail = 0; QUrl pageUrl = page->mainFrame()->url(); int pageRank = 0; - + QImage* pageThumbnail = NULL; //check if page exits in store along with its thumbnail if (!m_mostVisitedPageStore->contains(pageUrl.toString(), true)) { - QSize thumbnailSize(200, 200); - pageThumbnail = new QImage(thumbnailSize.width(), thumbnailSize.height(), QImage::Format_RGB32); - QPainter painter(pageThumbnail); - qreal webcoreScale = page->mainFrame()->zoomFactor(); - painter.scale(1.f / webcoreScale, 1.f / webcoreScale); - painter.fillRect(0, 0, size().width(), size().height(), QColor(255, 255, 255)); - page->mainFrame()->render(&painter, QWebFrame::AllLayers, QRegion(0, 0, thumbnailSize.width(), thumbnailSize.height())); + qreal scale = 200.0 / page->viewportSize().width(); + QImage img = page->pageThumbnail(scale, scale); + pageThumbnail = new QImage(img); } //if it is a new page to the store, get its rank from history @@ -219,5 +219,10 @@ } } +void MostVisitedPagesWidget::clearMVStore() +{ + m_mostVisitedPageStore->clearMostVisitedPageStore(); +} + } // endof namespace GVA