--- a/radioapp/radiowidgets/src/radiocarouselanimator.cpp Tue Aug 31 15:15:02 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +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:
-*
-*/
-
-// System includes
-#include <QTimer>
-#include <QTimeLine>
-#include <HbLabel>
-
-// User includes
-#include "radiocarouselanimator.h"
-#include "radiostationcarousel.h"
-#include "radiocarouselitem.h"
-#include "radiostation.h"
-#include "radiostationmodel.h"
-#include "radiologger.h"
-
-// Constants
-const int FREQUENCY_SCROLL_DIVIDER = 100000;
-const int NUMBER_SCROLL_TIMELINE_DURATION = 1000;
-const int FLASH_TIMER_INTERVAL = 400;
-const qreal FLASHING_ITEM_DIM_OPACITY = 0.3;
-const qreal FLASHING_ITEM_NORMAL_OPACITY = 1.0;
-
-/*!
- *
- */
-RadioCarouselAnimator::RadioCarouselAnimator( RadioStationCarousel& carousel ) :
- mCarousel( carousel ),
- mAnimationTimeLine( new QTimeLine( NUMBER_SCROLL_TIMELINE_DURATION, this ) ),
- mTimer( new QTimer( this ) ),
- mCanceled( false ),
- mMode( NoAnimation ),
- mStationIsFavorite( false ),
- mFlashingToggle( false )
-{
- mAnimationTimeLine->setCurveShape( QTimeLine::EaseInCurve );
- Radio::connect( mAnimationTimeLine, SIGNAL(finished()),
- this, SLOT(finalizeNumberScroll()) );
- Radio::connect( mAnimationTimeLine, SIGNAL(frameChanged(int)),
- this, SLOT(updateNumberScroll(int)) );
-
- mTimer->setInterval( FLASH_TIMER_INTERVAL );
- mTimer->setSingleShot( false );
- Radio::connect( mTimer, SIGNAL(timeout()),
- this, SLOT(handleTimeout()) );
-}
-
-/*!
- *
- */
-RadioCarouselAnimator::~RadioCarouselAnimator()
-{
- stopAll();
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::startNumberScroll( const uint startFrequency, const uint stopFrequency )
-{
- addMode( ScrollingNumbers );
-
- //TODO: Take italy case into account
- mAnimationTimeLine->setDuration( NUMBER_SCROLL_TIMELINE_DURATION );
- mAnimationTimeLine->setFrameRange( startFrequency / FREQUENCY_SCROLL_DIVIDER,
- stopFrequency / FREQUENCY_SCROLL_DIVIDER );
- mAnimationTimeLine->start();
-
- mCarousel.scrollContentsTo( QPointF( -mCarousel.mMaxScrollPos, 0 ), mCarousel.mAutoScrollTime );
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::startFlashingIcon()
-{
- const uint frequency = mCarousel.mItems[RadioStationCarousel::CenterItem]->frequency();
- RadioStation station;
- mCarousel.mModel->findFrequency( frequency, station );
- mStationIsFavorite = station.isFavorite();
-
- mCarousel.mItems[RadioStationCarousel::CenterItem]->setIconOpacity( FLASHING_ITEM_DIM_OPACITY );
-
- addMode( FlashingIcon );
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::stopFlashingIcon()
-{
- mCarousel.mItems[RadioStationCarousel::CenterItem]->setIconOpacity( FLASHING_ITEM_NORMAL_OPACITY );
- removeMode( FlashingIcon );
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::startFlashingText()
-{
- mCarousel.mInfoText->setOpacity( FLASHING_ITEM_DIM_OPACITY );
- addMode( FlashingText );
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::stopFlashingText()
-{
- mCarousel.mInfoText->setOpacity( FLASHING_ITEM_NORMAL_OPACITY );
- removeMode( FlashingText );
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::stopAll()
-{
- mCanceled = true;
- mAnimationTimeLine->stop();
- mTimer->stop();
-
- stopFlashingText();
- stopFlashingIcon();
-
- mMode = NoAnimation;
- deleteLater();
-}
-
-/*!
- * Private slot
- *
- */
-void RadioCarouselAnimator::handleTimeout()
-{
- mFlashingToggle = !mFlashingToggle;
- if ( mMode.testFlag( IconItem ) ) {
- if ( mFlashingToggle ) {
- mCarousel.mItems[RadioStationCarousel::CenterItem]->setIconOpacity( FLASHING_ITEM_NORMAL_OPACITY );
- } else {
- mCarousel.mItems[RadioStationCarousel::CenterItem]->setIconOpacity( FLASHING_ITEM_DIM_OPACITY );
- }
- }
-
- if ( mMode.testFlag( TextItem ) ) {
- if ( mFlashingToggle ) {
- mCarousel.mInfoText->setOpacity( FLASHING_ITEM_NORMAL_OPACITY );
- } else {
- mCarousel.mInfoText->setOpacity( FLASHING_ITEM_DIM_OPACITY );
- }
- }
-}
-
-/*!
- * Private slot
- *
- */
-void RadioCarouselAnimator::updateNumberScroll( int value )
-{
- mCarousel.mItems[RadioStationCarousel::RightItem]->setFrequency( value * FREQUENCY_SCROLL_DIVIDER );
-}
-
-/*!
- * Private slot
- *
- */
-void RadioCarouselAnimator::finalizeNumberScroll()
-{
- if ( !mCanceled ) {
- mCarousel.mItems[RadioStationCarousel::CenterItem]->setFrequency(
- mCarousel.mItems[RadioStationCarousel::RightItem]->frequency() );
- mCarousel.scrollContentsTo( QPointF( -mCarousel.mMidScrollPos, 0 ), 0 );
- emit mCarousel.scanAnimationFinished();
- }
- removeMode( ScrollingNumbers );
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::addMode( AnimationMode mode )
-{
- mMode |= mode;
- if ( mMode.testFlag( TimerItem ) && !mTimer->isActive() ) {
- mTimer->start();
- }
-}
-
-/*!
- *
- */
-void RadioCarouselAnimator::removeMode( AnimationMode mode )
-{
- mMode &= ~mode;
- if ( !mMode.testFlag( TimerItem ) ) {
- mTimer->stop();
- }
-
- if ( mMode == NoAnimation ) {
- deleteLater();
- }
-
-}