diff -r bf4420e9fa4d -r 2e16851ffecd browsercore/appfw/ThumbnailEngine/TnEngineScaler.cpp --- a/browsercore/appfw/ThumbnailEngine/TnEngineScaler.cpp Fri Jun 11 16:23:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* -* Copyright (c) 2009 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 -#include -#include "TnEngineScaler.h" - -namespace WRT { - -TnEngineScaler::TnEngineScaler(MTnEngineScalerCallback& callback) -: m_callback(&callback) -{ - m_resultBitmap = 0; -} - -void TnEngineScaler::init() -{ - m_scalingTimer = new QTimer(); - connect(m_scalingTimer, SIGNAL(timeout()), this, SLOT(run())); -} - -TnEngineScaler* TnEngineScaler::initWithCallback(MTnEngineScalerCallback& callback) -{ - TnEngineScaler* self = new TnEngineScaler(callback); - self->init(); - return self; -} - -TnEngineScaler::~TnEngineScaler() -{ - cancel(); - delete m_resultBitmap; - delete m_scalingTimer; -} - -void TnEngineScaler::startScaling(QPixmap& source, const QRect& targetRect) -{ - // cancel outstanding request - cancel(); - if (!m_resultBitmap || m_resultBitmap->size() != targetRect.size()) { - deleteResultBitmap(); - m_resultBitmap = new QPixmap(targetRect.size()); - } - *m_resultBitmap = source.scaled(targetRect.size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); - m_targetRect = targetRect; - m_scalingTimer->start(20); -} - -void TnEngineScaler::deleteResultBitmap() -{ - delete m_resultBitmap; - m_resultBitmap = 0; -} - -void TnEngineScaler::cancel() -{ - m_scalingTimer->stop(); - deleteResultBitmap(); -} - -void TnEngineScaler::run() -{ - m_scalingTimer->stop(); - m_callback->scalingCompleted(*m_resultBitmap, m_targetRect); - // if the callback called StartScalingL(), we must not delete the bitmap - if (!isActive()) { - deleteResultBitmap(); - } -} - -bool TnEngineScaler::isActive() -{ - return m_scalingTimer->isActive(); -} - -} -