ui/views/effectengine/src/glxeffectengine.cpp
changeset 44 aa2fa096cbfb
parent 43 72396548277c
child 45 863223ea6961
--- a/ui/views/effectengine/src/glxeffectengine.cpp	Fri May 28 21:11:54 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,468 +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:   ?Description
-*
-*/
-
-
-#include <glxeffectengine.h>
-#include "glxeffectpluginbase.h"
-#include "glxforwardtransitionplugin.h"
-#include "glxbackwardtransitionplugin.h"
-#include "glxfadeplugin.h"
-#include <QDebug>
-
-#include <xqsettingsmanager.h>
-#include <xqsettingskey.h>
-#include <QStringList>
-const TUint32 KGlxTransitionEffect     = 0x1;
-const TUint32 KGlxTransitionDelay  = 0x2;
-const TUint32 KGlxSlow  = 0x3;
-const TUint32 KGlxMeduim  = 0x4;
-const TUint32 KGlxFast  = 0x5;
-const TUint32 KGlxWaveEffect  = 0x6;
-const TUint32 KGlxFadeEffect  = 0x7;
-const TUint32 KGlxZoomToFaceEffect  = 0x8;
-const TUint32 KCRUidGallery = 0x20007194;
-GlxSlideShowSetting::GlxSlideShowSetting( int slideDelayTime, GlxEffect effect, GlxSlideShowMoveDir moveDir ) 
-    : mSlideDelayTime(slideDelayTime),
-      mEffect ( effect),
-      mMoveDir ( moveDir)
-{
-    mSettingsManager = new XQSettingsManager();
-    mTransitionEffectCenrepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxTransitionEffect);
-    mTransitionDelayCenrepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxTransitionDelay);
-    mSlowCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxSlow);
-    mMediumCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxMeduim);
-    mFastCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxFast);
-
-    mWaveEffectCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxWaveEffect );
-    mFadeEffectCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxFadeEffect);
-    mZoomEffectCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxZoomToFaceEffect );
-}
-
-GlxSlideShowSetting::~GlxSlideShowSetting( )
-{
-        delete mFastCenRepKey;
-        delete mMediumCenRepKey;
-        delete mSlowCenRepKey;
-        delete mZoomEffectCenRepKey;
-        delete mFadeEffectCenRepKey;
-        delete mWaveEffectCenRepKey;
-        delete mTransitionDelayCenrepKey;
-        delete mTransitionEffectCenrepKey;
-        delete mSettingsManager;
-}
-int GlxSlideShowSetting::slideShowDelayIndex()
-{
-    QVariant effectvalue = mSettingsManager->readItemValue(*mTransitionDelayCenrepKey);
-    return effectvalue.toInt();
-}
-void GlxSlideShowSetting::setSlideShowDelayIndex( int index )
-{
-    mSettingsManager->writeItemValue(*mTransitionDelayCenrepKey, index);
-}
-QStringList GlxSlideShowSetting::slideShowEffectList()
-{
-	if(mSettingsManager->readItemValue(*mWaveEffectCenRepKey).toInt() == WAVE_EFFECT)
-        mEffectList<<"Flip";
-    if(mSettingsManager->readItemValue(*mFadeEffectCenRepKey).toInt() == SMOOTH_FADE)
-        mEffectList<<"Fade";
-    if(mSettingsManager->readItemValue(*mZoomEffectCenRepKey).toInt() == ZOOM_TO_FACE)
-        mEffectList<<"Zoom to face"; 
-    return mEffectList;
-}
-int GlxSlideShowSetting::slideShowEffectIndex()
-{
-    QVariant effectvalue = mSettingsManager->readItemValue(*mTransitionEffectCenrepKey);
-    return effectvalue.toInt();
-}
-void GlxSlideShowSetting::setslideShowEffectIndex( int index )
-{
-    mEffect = ( GlxEffect ) ( index + 1 ) ;
-    mSettingsManager->writeItemValue(*mTransitionEffectCenrepKey, index);
-}
-void GlxSlideShowSetting::readSlideShowSetting()
-{
-//To:Do read from the file system
-    QVariant effectvalue = mSettingsManager->readItemValue(*mTransitionDelayCenrepKey);
-    switch (effectvalue.toInt()) {
-               case SLOW:
-                   mSlideDelayTime = mSettingsManager->readItemValue(*mSlowCenRepKey).toInt();
-                   break;
-               case MEDIUM:
-                   mSlideDelayTime = mSettingsManager->readItemValue(*mMediumCenRepKey).toInt();
-                   break;
-               case FAST:
-                   mSlideDelayTime = mSettingsManager->readItemValue(*mFastCenRepKey).toInt();
-                   break;
-               default:
-    				mSlideDelayTime = 3000;
-                   break;
-	}
-    mEffect = ( GlxEffect ) ( mSettingsManager->readItemValue(*mTransitionEffectCenrepKey).toInt() + 1 )  ; 
-    mMoveDir = MOVE_FORWARD;
-    qDebug("GlxSlideShowSetting::readSlideShowSetting() slide delay time %d effect %d move direction %d", mSlideDelayTime, mEffect, mMoveDir);
-}
-
-
-GlxTransitionEffectSetting::GlxTransitionEffectSetting(GlxEffect effect): mEffect(effect), mTransitionLater(false), mItem(0)
-{
-    qDebug("GlxTransitionEffectSetting::GlxTransitionEffectSetting() effect id %d ", effect);
-    mEffectFileList.clear();
-    mItemType.clear();
-    mEventType.clear();
-    init();
-}
-
-void GlxTransitionEffectSetting::init()
-{
-    qDebug("GlxTransitionEffectSetting::init() effect id %d ", mEffect);
-    
-    switch( mEffect ) {
-        case GRID_TO_FULLSCREEN :
-            mEffectFileList.append( QString(":/data/gridtofullscreenhide.fxml"));
-            mItemType.append( QString("HbGridViewItem") );
-            mEventType.append(QString("click1") );
-            
-            mEffectFileList.append( QString(":/data/gridtofullscreenshow.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click2") );
-            break;
-            
-        case FULLSCREEN_TO_GRID :
-            mEffectFileList.append( QString(":/data/fullscreentogrid.fxml"));
-            mItemType.append( QString("HbGridView") );
-            mEventType.append(QString("click3") );
-            break;
-            
-        case GRID_TO_ALBUMLIST:
-            mEffectFileList.append( QString(":/data/gridtoalbumlisthide.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click4") );
-                        
-            mEffectFileList.append( QString(":/data/gridtoalbumlist.fxml"));
-            mItemType.append( QString("HbListView") );
-            mEventType.append(QString("click5") );
-            break;
-             
-        case ALBUMLIST_TO_GRID:
-            mEffectFileList.append( QString(":/data/albumlisttogrid.fxml"));
-            mItemType.append( QString("HbListView") );
-            mEventType.append(QString("click6") );
-                        
-            mEffectFileList.append( QString(":/data/albumlisttogridshow.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click7") );
-            break;
-            
-        case FULLSCREEN_TO_DETAIL :
-            mEffectFileList.append( QString(":/data/view_flip_hide.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click8") );
-                        
-            mEffectFileList.append( QString(":/data/view_flip_show.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click9") );
-            mTransitionLater = true;
-            break;
-            
-        case DETAIL_TO_FULLSCREEN :
-            mEffectFileList.append( QString(":/data/view_flip_hide.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click10") );
-                        
-            mEffectFileList.append( QString(":/data/view_flip_show.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click11") );
-            mTransitionLater = true;
-            break;            
-            
-        default :
-            break;
-    }    
-}
-
-GlxTransitionEffectSetting::~GlxTransitionEffectSetting()
-{
-    qDebug("GlxTransitionEffectSetting::~GlxTransitionEffectSetting() effect id %d ", mEffect);
-    mEffectFileList.clear();
-    mItemType.clear();
-    mEventType.clear();
-}
-
-
-GlxSlideShowEffectEngine::GlxSlideShowEffectEngine( ) : mNbrEffectRunning( 0 ), 
-        mEffectPlugin(NULL), 
-        mTransitionEffect(NO_EFFECT)
-{
-    qDebug("GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()");
-    mTransitionEffectList.clear();
-}
-
-GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()
-{
-    qDebug("GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()");
-    delete mEffectPlugin;
-    mEffectPlugin = NULL;
-	
-    cleanTransitionEfffect();
-}
-
-void GlxSlideShowEffectEngine::registerEffect(const QString &itemType)
-{
-    effectPluginResolver();
-    QList <QString > effectPathList = mEffectPlugin->getEffectFileList();
-    
-    qDebug("GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16());
-    for ( int i = 0; i < effectPathList.count() ; ++i ) {
-        HbEffect::add(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i));
-    }    
-}
-
-void GlxSlideShowEffectEngine::deRegisterEffect(const QString &itemType)
-{
-    qDebug("GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16());
-    QList <QString > effectPathList = mEffectPlugin->getEffectFileList();
-    for ( int i = 0; i < effectPathList.count() ; ++i ) {
-        HbEffect::remove(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i));
-    }
-    delete mEffectPlugin ;
-    mEffectPlugin = NULL;
-}
-
-void GlxSlideShowEffectEngine::registerTransitionEffect()  
-{
-    qDebug("GlxSlideShowEffectEngine::registerTransitionEffect()");
-    initTransitionEffect();
-}
-
-void GlxSlideShowEffectEngine::deregistertransitionEffect()
-{
-    qDebug("GlxSlideShowEffectEngine::deregisterTransitionEffect()");
-    cleanTransitionEfffect();
-}
-
-void GlxSlideShowEffectEngine::runEffect(QGraphicsItem *  item, const QString &  itemType )
-{
-    qDebug("GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16());
-    HbEffect::start(item, itemType, QString( "Click1" ), this, "slideShowEffectFinished");
-    ++mNbrEffectRunning;
-}
-
-void GlxSlideShowEffectEngine::runEffect(QList< QGraphicsItem * > &  items, const QString &  itemType )
-{
-    qDebug("GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16());
-    mEffectPlugin->setUpItems(items);
-    for ( int i = 0; i < items.count() ; ++i ) {
-        if ( mEffectPlugin->isAnimationLater(i) == FALSE ) {
-            HbEffect::start(items.at(i), itemType, QString( "Click%1").arg(i), this, "slideShowEffectFinished");
-        }
-        ++mNbrEffectRunning;
-    }
-}
-
-void GlxSlideShowEffectEngine::runEffect(QList< QGraphicsItem * > &  items, GlxEffect transitionEffect)
-{
-    qDebug("GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect);
-    
-    GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect );
-    
-    if ( effectSetting == NULL || items.count() != effectSetting->count() ) {
-         return;
-    }
-    
-    mTransitionEffect = transitionEffect;
-    for ( int i = 0; i < effectSetting->count() ; ++i) {
-        ++mNbrEffectRunning;
-        if ( ( i == effectSetting->count() -1) && effectSetting->isTransitionLater() )
-        {
-            effectSetting->setAnimationItem( items.at(i) );
-            items.at(i)->hide();
-        }
-        else {
-            HbEffect::start(items.at(i), effectSetting->itemType().at(i), effectSetting->eventType().at(i), this, "transitionEffectFinished");
-        }
-    }    
-}
-
-void GlxSlideShowEffectEngine::cancelEffect(QGraphicsItem *  item)
-{
-    if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) {
-        HbEffect::cancel( item, QString( "Click1" ) );
-    }
-}
-
-void GlxSlideShowEffectEngine::cancelEffect(const QList< QGraphicsItem * > &  items)
-{
-    for ( int i = 0; i < items.count() ; ++i ) {    
-        if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) {
-            HbEffect::cancel( items.at(i), QString( "Click%1").arg(i) );
-        }
-    }
-}
-
-void GlxSlideShowEffectEngine::cancelEffect(QList< QGraphicsItem * > &  items, GlxEffect transitionEffect)
-{
-    GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect );
-    
-    if ( effectSetting == NULL || items.count() != effectSetting->count() ) {
-         return;
-    }
-    
-    for ( int i = 0; i < effectSetting->count() ; ++i) {
-        HbEffect::cancel(items.at(i), effectSetting->eventType().at(i) );
-    }     
-}
-
-bool GlxSlideShowEffectEngine::isEffectRuning(QGraphicsItem *  item)
-{
-    if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) {
-        return true;
-    }
-    return false;
-}
-
-bool GlxSlideShowEffectEngine::isEffectRuning(const QList< QGraphicsItem * > &  items)
-{
-    for ( int i = 0; i < items.count() ; ++i ) {    
-        if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) {
-            return true;
-        }
-    }
-    return false;
-}
-
-void GlxSlideShowEffectEngine::slideShowEffectFinished( const HbEffect::EffectStatus &status )
-{
-    Q_UNUSED( status )
-    qDebug("GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning);
-    
-    --mNbrEffectRunning;
-    
-    if ( mEffectPlugin->isAnimationLater( mNbrEffectRunning) ) {
-        HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1").arg(mNbrEffectRunning), this, "slideShowEffectFinished");
-    }
-    
-    if (mNbrEffectRunning == 0) {
-        emit effectFinished();
-    }
-}
-
-void GlxSlideShowEffectEngine::transitionEffectFinished( const HbEffect::EffectStatus &status )
-{
-    Q_UNUSED( status )
-    qDebug("GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason);
-    
-    --mNbrEffectRunning;
-    if ( mNbrEffectRunning == 1 ) {
-        GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( mTransitionEffect );
-        if (  effectSetting->isTransitionLater() ){ 
-            effectSetting->animationItem()->show();
-            HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at(1), effectSetting->eventType().at(1), this, "transitionEffectFinished");
-            mTransitionEffect = NO_EFFECT;
-        }    
-    }
-    
-    if (mNbrEffectRunning == 0) {
-        emit effectFinished();
-    }
-}
-
-void GlxSlideShowEffectEngine::effectPluginResolver()
-{
-//TO:DO improved the code by using factory design pattern
-
-    delete mEffectPlugin;
-    mEffectPlugin = NULL;
-    
-    switch ( mSlideShowSetting.effect() ) {
-    case WAVE_EFFECT :
-        mEffectPlugin = new GlxForwardTransitionPlugin();
-        break ;
-        
-    /*case TRANSITION_EFFECT :
-        if ( slideShowMoveDir() == MOVE_FORWARD ) {
-            mEffectPlugin = new GlxForwardTransitionPlugin();
-        }
-        else {
-            mEffectPlugin = new GlxBackwardTransitionPlugin();
-        }
-        break;*/
-        
-    case SMOOTH_FADE :
-        mEffectPlugin = new GlxFadePlugin();
-        break;
-        
-    default :
-        mEffectPlugin = new GlxFadePlugin();
-        break;        
-    }
-}
-
-void GlxSlideShowEffectEngine::initTransitionEffect()
-{
-    GlxTransitionEffectSetting *effectSetting = NULL;
-    
-    effectSetting = new GlxTransitionEffectSetting(GRID_TO_FULLSCREEN);
-    for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
-    }
-    mTransitionEffectList[GRID_TO_FULLSCREEN] = effectSetting;
-    
-    effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID );
-    for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
-    }
-    mTransitionEffectList[FULLSCREEN_TO_GRID] = effectSetting;
-    
-    effectSetting = new GlxTransitionEffectSetting( GRID_TO_ALBUMLIST );
-    for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
-    }
-    mTransitionEffectList[GRID_TO_ALBUMLIST] = effectSetting;
-    
-    effectSetting = new GlxTransitionEffectSetting( ALBUMLIST_TO_GRID );
-    for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
-    }
-    mTransitionEffectList[ALBUMLIST_TO_GRID] = effectSetting;
-    
-    effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_DETAIL );
-    for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
-    }
-    mTransitionEffectList[FULLSCREEN_TO_DETAIL] = effectSetting; 
-    
-    effectSetting = new GlxTransitionEffectSetting( DETAIL_TO_FULLSCREEN );
-    for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
-    }
-    mTransitionEffectList[DETAIL_TO_FULLSCREEN] = effectSetting;    
-}
-
-void GlxSlideShowEffectEngine::cleanTransitionEfffect()
-{	
-    qDebug("GlxSlideShowEffectEngine::cleanTrnastionEfffect()");
-    
-    foreach( GlxTransitionEffectSetting *list, mTransitionEffectList) {
-        for ( int i = 0; i < list->count(); ++i ) {
-            HbEffect::remove( list->itemType().at(i), list->effectFileList().at(i), list->eventType().at(i)) ;
-        }
-        delete list;
-    }
-    mTransitionEffectList.clear();	
-    
-}
-