--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/ProgressBarItem.cpp Tue Jun 29 00:46:29 2010 -0400
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+*
+* 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.
+*
+* 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.
+*
+* 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:
+*
+*/
+#include <QtGui>
+#include "ProgressBarItem.h"
+#include "GWebContentView.h"
+#include "ContentViewDelegate.h"
+#include "ChromeSnippet.h"
+#include "webpagecontroller.h"
+
+#include <QDebug>
+
+namespace GVA {
+
+ ProgressBarItem::ProgressBarItem(ChromeSnippet * snippet, QGraphicsItem* parent)
+ : NativeChromeItem(snippet, parent),
+ m_progress(0)
+ {
+ //Set indicator color from element css
+ QString cssColor = m_snippet->element().styleProperty("color", QWebElement::ComputedStyle);
+ CSSToQColor(cssColor, m_color);
+
+ connectAll();
+ }
+
+ ProgressBarItem:: ~ProgressBarItem()
+ {
+
+ }
+
+ void ProgressBarItem::onProgress(int progress)
+ {
+ setProgress(((qreal)progress)/100);
+ }
+
+ void ProgressBarItem::setProgress(qreal progress)
+ {
+ //QApplication::processEvents(QEventLoop::ExcludeSocketNotifiers);
+ //qDebug() << "ProgressBarItem::onProgress: " << progress;
+ if (m_progress != progress){
+ m_progress = progress;
+ update();
+ }
+ }
+
+ void ProgressBarItem::onStart() {
+ onProgress(0);
+ }
+
+ void ProgressBarItem::onFinished(bool ok) {
+ Q_UNUSED(ok)
+ onProgress(0);
+ }
+
+ void ProgressBarItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* opt, QWidget* widget)
+ {
+ Q_UNUSED(opt)
+ Q_UNUSED(widget)
+
+ //painter->fillRect(QRectF(0,0, geometry().width(), geometry().height()), Qt::blue);
+ if (m_progress > 0) {
+ QSizeF s = size();
+ qreal minWidth = s.width()/10;
+ painter->fillRect(QRectF(0,0, minWidth + (s.width() - minWidth)*m_progress, s.height()), m_color);
+ }
+ NativeChromeItem::paint(painter, opt, widget);
+ }
+
+ void ProgressBarItem::connectAll() {
+ WebPageController* pageController = WebPageController::getSingleton();
+ if (pageController){
+ connect(pageController, SIGNAL(loadStarted()), this, SLOT(onStart()));
+ connect(pageController, SIGNAL(loadProgress(int)), this, SLOT(onProgress(int)));
+ connect(pageController, SIGNAL(loadFinished(bool)), this, SLOT(onFinished(bool)));
+ }
+ }
+
+} // end of namespace GVA
+
+