radioapp/radiowidgets/src/radiocarouselanimator.cpp
branchRCL_3
changeset 20 93c594350b9a
parent 19 cce62ebc198e
--- 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();
-    }
-
-}