diff -r 000000000000 -r 1450b09d0cfd ginebra2/iconwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ginebra2/iconwidget.cpp Tue May 04 12:39:35 2010 +0300 @@ -0,0 +1,89 @@ +/* +* 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". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "iconwidget.h" +#include "webpagecontroller.h" +#include + +namespace GVA { + +IconWidget::IconWidget(ChromeSnippet * snippet, QGraphicsItem* parent) + : NativeChromeItem(snippet, parent) +{ + m_drawingDefault = false; + m_icon = QIcon(); + m_defaultImage = QImage(":/chrome/demochrome/Scroll.png"); + } + +void IconWidget::paint(QPainter* painter, const QStyleOptionGraphicsItem* opt, QWidget* widget) +{ + painter->save(); + if (m_drawingDefault) { + painter->drawImage(QRectF(0,0, geometry().width(), geometry().height()), m_defaultImage); + } + else { + if (!m_icon.isNull()) { + m_icon.paint(painter, 0, 0, geometry().width(), geometry().height()); + } + } + painter->restore(); +} + +void IconWidget::onLoadStarted() +{ + m_drawingDefault = true; + update(); +} + +void IconWidget::onIconChanged() +{ + m_drawingDefault = false; + WebPageController* pageController = WebPageController::getSingleton(); + m_icon = pageController->pageIcon(); + if (!m_icon.isNull()) { + update(); + } +} +void IconWidget::onUrlChanged(const QUrl& url) +{ + m_icon = QWebSettings::iconForUrl(url); + if (!m_icon.isNull()) { + m_drawingDefault = false; + update(); + } +} + +void IconWidget::connectToWebpageController() +{ + WebPageController* pageController = WebPageController::getSingleton(); + connect(pageController, SIGNAL(loadStarted()), this, SLOT(onLoadStarted())); + connect(pageController, SIGNAL(currentPageUrlChanged(const QUrl&)), this, SLOT(onUrlChanged(const QUrl&))); + connect(pageController, SIGNAL(currentPageIconChanged()), this, SLOT(onIconChanged())); +} + +void IconWidget::setIconForUrl(const QUrl& url) { + m_drawingDefault = false; + m_icon = QWebSettings::iconForUrl(url); + update(); +} +void IconWidget::setDefaultImage(const QImage& image) { + m_drawingDefault = true; + m_defaultImage = image; + update(); +} +}//end of name space