ui/views/slideshowview/src/glxslideshowwidget.cpp
author hgs
Wed, 06 Oct 2010 14:49:39 +0530
changeset 71 27f2d7aec52a
parent 62 36d93b4dc635
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:   ?Description
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
//Includes
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <QDebug>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <QTimer>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <e32base.h>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <hbiconitem.h>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <hbpushbutton.h>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <hbmainwindow.h>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <hbdocumentloader.h>
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <QAbstractItemModel>
40
hgs
parents: 24
diff changeset
    29
#include <QGesture>
hgs
parents: 24
diff changeset
    30
#include <hbpangesture.h>
50
hgs
parents: 45
diff changeset
    31
#include <hblabel.h>
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
//User Includes
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    34
#include "glxicondefs.h" //Contains the icon names/Ids
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "glxmodelparm.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include "glxeffectengine.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include "glxdocloaderdefs.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "glxslideshowwidget.h"
43
hgs
parents: 40
diff changeset
    39
#include "glxsettinginterface.h"
50
hgs
parents: 45
diff changeset
    40
#include "glxlocalisationstrings.h"
43
hgs
parents: 40
diff changeset
    41
#include "glxlog.h"
hgs
parents: 40
diff changeset
    42
#include "glxtracer.h"
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
40
hgs
parents: 24
diff changeset
    45
GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) 
50
hgs
parents: 45
diff changeset
    46
    : HbWidget( parent ), 
hgs
parents: 45
diff changeset
    47
      mEffectEngine( NULL ), 
43
hgs
parents: 40
diff changeset
    48
      mSettings( NULL ),
54
hgs
parents: 52
diff changeset
    49
      mAnimItem( NULL ),
52
hgs
parents: 50
diff changeset
    50
      mBackGroundItem( NULL ),
50
hgs
parents: 45
diff changeset
    51
      mContinueButton( NULL ), 
hgs
parents: 45
diff changeset
    52
      mErrorNote( NULL ),
hgs
parents: 45
diff changeset
    53
      mItemIndex( 1 ),  
hgs
parents: 45
diff changeset
    54
      mSlideTimer( NULL ), 
hgs
parents: 45
diff changeset
    55
      mModel( NULL ), 
58
hgs
parents: 54
diff changeset
    56
      mSlideShowItemCount( 0 ),
hgs
parents: 54
diff changeset
    57
      mIsAutoMoving ( false )
40
hgs
parents: 24
diff changeset
    58
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
    TRACER("GlxSlideShowWidget::GlxSlideShowWidget()");
43
hgs
parents: 40
diff changeset
    60
    mSettings = GlxSettingInterface::instance() ; //no owner ship
40
hgs
parents: 24
diff changeset
    61
    grabGesture( Qt::PanGesture );
hgs
parents: 24
diff changeset
    62
    grabGesture( Qt::TapGesture );
hgs
parents: 24
diff changeset
    63
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
void GlxSlideShowWidget::setSlideShowWidget(HbDocumentLoader *DocLoader)
43
hgs
parents: 40
diff changeset
    66
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
    //To:Do error handling
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    68
    TRACER("GlxSlideShowWidget::setSlideShowWidget()");   
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    69
    
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
    //create the effect engine
43
hgs
parents: 40
diff changeset
    71
    mEffectEngine = new GlxEffectEngine();
54
hgs
parents: 52
diff changeset
    72
    mItemIndex = 1;
52
hgs
parents: 50
diff changeset
    73
    
hgs
parents: 50
diff changeset
    74
    mBackGroundItem = new HbIconItem( this );
hgs
parents: 50
diff changeset
    75
    mBackGroundItem->setBrush( QBrush( Qt::black ) );
54
hgs
parents: 52
diff changeset
    76
    mAnimItem = new HbIconItem( this );
hgs
parents: 52
diff changeset
    77
    mAnimItem->setAlignment( Qt::AlignCenter );
62
hgs
parents: 58
diff changeset
    78
    mAnimItem->setIconScaling( false );
54
hgs
parents: 52
diff changeset
    79
    
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    // Now load the view and the contents.
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    81
    // and then set the play icon to the button
50
hgs
parents: 45
diff changeset
    82
    mContinueButton = static_cast<HbPushButton*>( DocLoader->findWidget( GLXSLIDESHOW_PB ) );
hgs
parents: 45
diff changeset
    83
    mContinueButton->setIcon( HbIcon( GLXICON_PLAY ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
    mContinueButton->hide();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
    mIsPause = false;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    for ( int i = 0; i < NBR_ITEM ; i++) {
50
hgs
parents: 45
diff changeset
    88
        mSelIndex[ i ] = -1;
hgs
parents: 45
diff changeset
    89
        mIconItems[ i ] = new HbIconItem( this );
hgs
parents: 45
diff changeset
    90
        mIconItems[ i ]->setAlignment( Qt::AlignCenter );
62
hgs
parents: 58
diff changeset
    91
        mIconItems[ i ]->setIconScaling( false );
50
hgs
parents: 45
diff changeset
    92
        mIconItems[ i ]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) );
52
hgs
parents: 50
diff changeset
    93
    }    
hgs
parents: 50
diff changeset
    94
    
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    mSlideTimer = new QTimer();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    mItemList.clear();    
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    //Add the signal-slot for this widget.
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    addConnections();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    //Create the settings for the effects 
43
hgs
parents: 40
diff changeset
   102
    mEffectEngine->registerEffect( QString("HbIconItem") );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
    //provide the xml info for the effect to take place
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    HbEffect::add( QString("HbIconItem"), QString(":/data/transition.fxml"), QString( "Move" ));
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    HbEffect::add( QString("HbIconItem"), QString(":/data/transitionleft.fxml"), QString( "LeftMove" ));
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    HbEffect::add( QString("HbIconItem"), QString(":/data/transitionright.fxml"), QString( "RightMove" ));
43
hgs
parents: 40
diff changeset
   108
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
GlxSlideShowWidget::~GlxSlideShowWidget()
43
hgs
parents: 40
diff changeset
   111
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
    TRACER("GlxSlideShowWidget::~GlxSlideShowWidget()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    //Delete the resources allocated
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    cleanUp();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
43
hgs
parents: 40
diff changeset
   117
    if(mContinueButton) {
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
        delete mContinueButton;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
        mContinueButton = NULL;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
    }
43
hgs
parents: 40
diff changeset
   121
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
void GlxSlideShowWidget::cleanUp()
43
hgs
parents: 40
diff changeset
   124
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    TRACER("GlxSlideShowWidget::cleanUp()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    removeConnections();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
50
hgs
parents: 45
diff changeset
   128
    if( mEffectEngine ) {
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
        mEffectEngine->deRegisterEffect( QString("HbIconItem") );    
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
        delete mEffectEngine;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
        mEffectEngine = NULL;
43
hgs
parents: 40
diff changeset
   132
    }     
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   133
    
43
hgs
parents: 40
diff changeset
   134
    for ( int i = 0; i < NBR_ITEM ; i++) {
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
        delete mIconItems[i] ;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
        mIconItems[i] = NULL;
43
hgs
parents: 40
diff changeset
   137
    }
52
hgs
parents: 50
diff changeset
   138
    
hgs
parents: 50
diff changeset
   139
    delete mBackGroundItem ;
hgs
parents: 50
diff changeset
   140
    mBackGroundItem = NULL;
54
hgs
parents: 52
diff changeset
   141
    
hgs
parents: 52
diff changeset
   142
    delete mAnimItem;
hgs
parents: 52
diff changeset
   143
    mAnimItem = NULL;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
50
hgs
parents: 45
diff changeset
   145
    if( mSlideTimer ) {
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
        delete mSlideTimer;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
        mSlideTimer = NULL;
43
hgs
parents: 40
diff changeset
   148
    }
50
hgs
parents: 45
diff changeset
   149
    
hgs
parents: 45
diff changeset
   150
    if ( mErrorNote ) {
hgs
parents: 45
diff changeset
   151
        delete mErrorNote ;
hgs
parents: 45
diff changeset
   152
        mErrorNote = NULL;
hgs
parents: 45
diff changeset
   153
    }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
    clearCurrentModel();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
    HbEffect::remove( QString("HbIconItem"), QString(":/data/transition.fxml"), QString( "Move" ));
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionleft.fxml"), QString( "LeftMove" ));
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
    HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionright.fxml"), QString( "RightMove" ));
43
hgs
parents: 40
diff changeset
   159
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
54
hgs
parents: 52
diff changeset
   161
QGraphicsItem * GlxSlideShowWidget::animationItem() 
hgs
parents: 52
diff changeset
   162
{ 
hgs
parents: 52
diff changeset
   163
    mAnimItem->setIcon( getIcon( mSelIndex[ mItemIndex ] ) ); 
hgs
parents: 52
diff changeset
   164
    return mAnimItem;
hgs
parents: 52
diff changeset
   165
}
hgs
parents: 52
diff changeset
   166
hgs
parents: 52
diff changeset
   167
void GlxSlideShowWidget::updateAnimationItem() 
hgs
parents: 52
diff changeset
   168
{
hgs
parents: 52
diff changeset
   169
    mIconItems[ mItemIndex ]->setIcon( HbIcon() );
hgs
parents: 52
diff changeset
   170
    mAnimItem->setZValue( mAnimItem->zValue() + 10 );
hgs
parents: 52
diff changeset
   171
}
hgs
parents: 52
diff changeset
   172
52
hgs
parents: 50
diff changeset
   173
void GlxSlideShowWidget::setModel ( QAbstractItemModel *model )
43
hgs
parents: 40
diff changeset
   174
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    TRACER("GlxSlideShowWidget::setModel()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    if ( model == mModel ) {
43
hgs
parents: 40
diff changeset
   177
        return ;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
    clearCurrentModel();   
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
    mModel = model;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    initializeNewModel();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    resetSlideShow();
43
hgs
parents: 40
diff changeset
   183
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
52
hgs
parents: 50
diff changeset
   185
void GlxSlideShowWidget::setItemGeometry( QRect screenRect )
43
hgs
parents: 40
diff changeset
   186
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    TRACER("GlxSlideShowWidget::setItemGeometry()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    int index = mItemIndex;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
    mScreenRect = screenRect;   
52
hgs
parents: 50
diff changeset
   190
    mIconItems[ index ]->setGeometry( mScreenRect );
hgs
parents: 50
diff changeset
   191
    index = ( mItemIndex + 1 ) % NBR_ITEM;
hgs
parents: 50
diff changeset
   192
    mIconItems[ index ]->setGeometry( QRect( mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;    
52
hgs
parents: 50
diff changeset
   194
    mIconItems[ index ]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );
hgs
parents: 50
diff changeset
   195
    mBackGroundItem->setGeometry( mScreenRect );
54
hgs
parents: 52
diff changeset
   196
    int xPos = ( mScreenRect.width() - mScreenRect.height() ) >> 1 ;
hgs
parents: 52
diff changeset
   197
    mAnimItem->setGeometry( QRect( xPos, -xPos, mScreenRect.height(), mScreenRect.width() ) );
43
hgs
parents: 40
diff changeset
   198
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
void GlxSlideShowWidget::triggeredEffect()
43
hgs
parents: 40
diff changeset
   201
{ 
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
    TRACER("GlxSlideShowWidget::triggeredEffect()"); 
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
    int index = mItemIndex;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
    mSlideTimer->stop();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
    mItemList.clear();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    User::ResetInactivityTime();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    mItemList.append( mIconItems[index] );
43
hgs
parents: 40
diff changeset
   209
    index = ( mItemIndex + 1 ) % NBR_ITEM;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
    mItemList.append( mIconItems[index] );
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
    GLX_LOG_INFO3("GlxSlideShowWidget::triggeredEffect() image selected index %d array index %d index %d", mSelIndex, mItemIndex, index);  
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
    mEffectEngine->runEffect( mItemList, QString("HbIconItem") );
43
hgs
parents: 40
diff changeset
   214
    emit slideShowEvent( EFFECT_STARTED );
44
hgs
parents: 43
diff changeset
   215
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
void GlxSlideShowWidget::effectFinshed()
43
hgs
parents: 40
diff changeset
   218
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() before image selected index %d array index %d", mSelIndex, mItemIndex); 
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
    mItemIndex = ( ++mItemIndex ) % NBR_ITEM;
50
hgs
parents: 45
diff changeset
   222
    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole );
hgs
parents: 45
diff changeset
   223
    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
hgs
parents: 45
diff changeset
   224
    setNextItemIcon();
43
hgs
parents: 40
diff changeset
   225
  
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
    GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() after image selected index %d array index %d ", mSelIndex, mItemIndex);
43
hgs
parents: 40
diff changeset
   227
    
50
hgs
parents: 45
diff changeset
   228
    startSlideShow();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    mItemList.clear();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    emit indexchanged(); // on each item change
43
hgs
parents: 40
diff changeset
   231
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
void GlxSlideShowWidget::cancelEffect()
43
hgs
parents: 40
diff changeset
   234
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    TRACER("GlxSlideShowWidget::cancelEffect()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
    mEffectEngine->cancelEffect( mItemList );
43
hgs
parents: 40
diff changeset
   237
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
void GlxSlideShowWidget::pauseSlideShow()
43
hgs
parents: 40
diff changeset
   240
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
    TRACER("GlxSlideShowWidget::pauseSlideShow()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
    GLX_LOG_INFO1("GlxSlideShowWidget::pauseSlideShow() %d", this->zValue());
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
    mIsPause = true;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
    mSlideTimer->stop();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
    cancelEffect();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
    mContinueButton->setZValue( this->zValue() + 2);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
    mContinueButton->show() ;
50
hgs
parents: 45
diff changeset
   248
    emit slideShowEvent( UI_ON_EVENT );
43
hgs
parents: 40
diff changeset
   249
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
void GlxSlideShowWidget::continueSlideShow(bool checked)
43
hgs
parents: 40
diff changeset
   252
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
    Q_UNUSED( checked )
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
    TRACER("GlxSlideShowWidget::continueSlideShow()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    mIsPause = false;
50
hgs
parents: 45
diff changeset
   256
    if ( mModel &&  mSlideShowItemCount > 1 ) {
43
hgs
parents: 40
diff changeset
   257
        mSlideTimer->start( mSettings->slideShowDelayTime() ); 
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
    mContinueButton->hide(); 
50
hgs
parents: 45
diff changeset
   260
    emit slideShowEvent( UI_OFF_EVENT );
43
hgs
parents: 40
diff changeset
   261
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
void GlxSlideShowWidget::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
43
hgs
parents: 40
diff changeset
   264
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
    Q_UNUSED( endIndex )
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
    TRACER("GlxSlideShowWidget::dataChanged()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
    GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged startIndex = %d mSelIndex = %d ", startIndex.row(), mSelIndex  );
54
hgs
parents: 52
diff changeset
   268
hgs
parents: 52
diff changeset
   269
    if ( HbEffect::effectRunning( mAnimItem ) ) {
hgs
parents: 52
diff changeset
   270
        return ;
hgs
parents: 52
diff changeset
   271
    }
43
hgs
parents: 40
diff changeset
   272
    
50
hgs
parents: 45
diff changeset
   273
    for( int i = 0; i < NBR_ITEM; ++i ) {
hgs
parents: 45
diff changeset
   274
        if ( mSelIndex[ i ] == startIndex.row() ) {
hgs
parents: 45
diff changeset
   275
            mIconItems[ i ]->setIcon( getIcon( startIndex.row() ) );
43
hgs
parents: 40
diff changeset
   276
        }
50
hgs
parents: 45
diff changeset
   277
    }
43
hgs
parents: 40
diff changeset
   278
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
void GlxSlideShowWidget::rowsInserted(const QModelIndex &parent, int start, int end)
43
hgs
parents: 40
diff changeset
   281
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
    TRACER("GlxSlideShowWidget::rowsInserted()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
    Q_UNUSED(parent);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
    Q_UNUSED(start);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
    Q_UNUSED(end);
54
hgs
parents: 52
diff changeset
   286
    if ( HbEffect::effectRunning( mAnimItem ) ) {
hgs
parents: 52
diff changeset
   287
        return ;
hgs
parents: 52
diff changeset
   288
    }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
    resetSlideShow();  
43
hgs
parents: 40
diff changeset
   290
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
void GlxSlideShowWidget::rowsRemoved(const QModelIndex &parent, int start, int end)
43
hgs
parents: 40
diff changeset
   293
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
    TRACER("GlxSlideShowWidget::rowsRemoved()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
    Q_UNUSED(parent);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
    Q_UNUSED(start);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
    Q_UNUSED(end);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
    GLX_LOG_INFO1( "GlxSlideShowWidget::rowsRemoved row count = %d ", mModel->rowCount()  );
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
    if ( mModel->rowCount() <= 0 ) {
43
hgs
parents: 40
diff changeset
   302
        clearCurrentModel();
hgs
parents: 40
diff changeset
   303
        emit slideShowEvent( EMPTY_DATA_EVENT );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
    else {
43
hgs
parents: 40
diff changeset
   306
        resetSlideShow();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
    }
43
hgs
parents: 40
diff changeset
   308
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
void GlxSlideShowWidget::modelDestroyed()
43
hgs
parents: 40
diff changeset
   311
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
    TRACER("GlxSlideShowWidget::modelDestroyed()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
    clearCurrentModel();
43
hgs
parents: 40
diff changeset
   314
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
void GlxSlideShowWidget::orientationChanged(QRect screenRect)
40
hgs
parents: 24
diff changeset
   318
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
    TRACER("GlxSlideShowWidget::orientationChanged()");
54
hgs
parents: 52
diff changeset
   320
    mAnimItem->setIcon( HbIcon() );
hgs
parents: 52
diff changeset
   321
    mAnimItem->setZValue( mAnimItem->zValue() - 10 );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
    cancelEffect();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
    setItemGeometry( screenRect);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
    resetSlideShow();
40
hgs
parents: 24
diff changeset
   325
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
void GlxSlideShowWidget::leftGesture(int value)
40
hgs
parents: 24
diff changeset
   328
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
    Q_UNUSED(value)
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
    TRACER("GlxSlideShowWidget::leftGesture()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
    int index = ( mItemIndex + 1 ) % NBR_ITEM;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
    moveImage( index, mScreenRect.width(), QString("LeftMove"), "leftMoveEffectFinished");
40
hgs
parents: 24
diff changeset
   334
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
void GlxSlideShowWidget::rightGesture(int value)
40
hgs
parents: 24
diff changeset
   337
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
    Q_UNUSED(value)
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
    TRACER ("GlxSlideShowWidget::rightGesture()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
    int index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
    moveImage( index, -mScreenRect.width(), QString("RightMove"), "rightMoveEffectFinished"); 
40
hgs
parents: 24
diff changeset
   343
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
void GlxSlideShowWidget::leftMoveEffectFinished( const HbEffect::EffectStatus &status )
43
hgs
parents: 40
diff changeset
   346
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
    Q_UNUSED(status)
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
    TRACER("GlxSlideShowWidget::leftMoveEffectFinished()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
    GLX_LOG_INFO1("GlxSlideShowWidget::leftMoveEffectFinished() %d status", status.reason);
50
hgs
parents: 45
diff changeset
   350
   
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
    mItemIndex = ( ++mItemIndex ) % NBR_ITEM;
50
hgs
parents: 45
diff changeset
   352
    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole );
hgs
parents: 45
diff changeset
   353
    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
hgs
parents: 45
diff changeset
   354
    setNextItemIcon();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
    startSlideShow();
58
hgs
parents: 54
diff changeset
   356
    mIsAutoMoving = false;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
    emit indexchanged(); // on left swipe
43
hgs
parents: 40
diff changeset
   358
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
void GlxSlideShowWidget::rightMoveEffectFinished( const HbEffect::EffectStatus &status )
43
hgs
parents: 40
diff changeset
   361
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
    Q_UNUSED(status)
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
    TRACER ( "GlxSlideShowWidget::rightMoveEffectFinished( ) ");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
    GLX_LOG_INFO1("GlxSlideShowWidget::rightMoveEffectFinished() %d status", status.reason);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
    mItemIndex = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;
50
hgs
parents: 45
diff changeset
   367
    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole );
hgs
parents: 45
diff changeset
   368
    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
hgs
parents: 45
diff changeset
   369
    setPreItemIcon();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
    startSlideShow();
58
hgs
parents: 54
diff changeset
   371
    mIsAutoMoving = false;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
    emit indexchanged(); // on right swipe
43
hgs
parents: 40
diff changeset
   373
} 
40
hgs
parents: 24
diff changeset
   374
 
hgs
parents: 24
diff changeset
   375
void GlxSlideShowWidget::gestureEvent(QGestureEvent *event)
hgs
parents: 24
diff changeset
   376
{  
hgs
parents: 24
diff changeset
   377
    if( QTapGesture *gesture = static_cast<QTapGesture *>( event->gesture( Qt::TapGesture ) ) ) {        
hgs
parents: 24
diff changeset
   378
        if ( gesture->state() == Qt::GestureFinished ) {
hgs
parents: 24
diff changeset
   379
            if ( mIsPause == false ) {
hgs
parents: 24
diff changeset
   380
                pauseSlideShow();
hgs
parents: 24
diff changeset
   381
            }
hgs
parents: 24
diff changeset
   382
            event->accept(gesture);
hgs
parents: 24
diff changeset
   383
        }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
    }
40
hgs
parents: 24
diff changeset
   385
      
58
hgs
parents: 54
diff changeset
   386
    if ( QPanGesture *panningGesture = qobject_cast<QPanGesture*>( event->gesture( Qt::PanGesture ) ) ) {
hgs
parents: 54
diff changeset
   387
        HbPanGesture *hbPanGesture = qobject_cast<HbPanGesture *>( panningGesture );
40
hgs
parents: 24
diff changeset
   388
        if ( hbPanGesture ) {
58
hgs
parents: 54
diff changeset
   389
            if( hbPanGesture->state() == Qt::GestureFinished && mIsAutoMoving == FALSE ) {
40
hgs
parents: 24
diff changeset
   390
                QPointF delta( hbPanGesture->sceneDelta() );
hgs
parents: 24
diff changeset
   391
                if ( delta.x() > 0 ) {
hgs
parents: 24
diff changeset
   392
                    rightGesture( delta.x() );
hgs
parents: 24
diff changeset
   393
                }
hgs
parents: 24
diff changeset
   394
                else {
hgs
parents: 24
diff changeset
   395
                    leftGesture( delta.x() );
hgs
parents: 24
diff changeset
   396
                }
hgs
parents: 24
diff changeset
   397
            }
hgs
parents: 24
diff changeset
   398
            event->accept(panningGesture);
hgs
parents: 24
diff changeset
   399
        }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
    }
40
hgs
parents: 24
diff changeset
   401
}    
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
void GlxSlideShowWidget::startSlideShow ( )
43
hgs
parents: 40
diff changeset
   404
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
    TRACER ( "GlxSlideShowWidget::startSlideShow( ) ");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
    GLX_LOG_INFO1 ( "GlxSlideShowWidget::startSlideShow( ) is pause %d", mIsPause);    
50
hgs
parents: 45
diff changeset
   407
    
hgs
parents: 45
diff changeset
   408
    if ( mSlideShowItemCount == 0 ) { 
hgs
parents: 45
diff changeset
   409
        showErrorNote();
hgs
parents: 45
diff changeset
   410
    }
hgs
parents: 45
diff changeset
   411
    if ( mIsPause == false && mModel &&  mSlideShowItemCount > 1 ) {
43
hgs
parents: 40
diff changeset
   412
        mSlideTimer->start( mSettings->slideShowDelayTime() );  
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
    }    
43
hgs
parents: 40
diff changeset
   414
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
void GlxSlideShowWidget::stopSlideShow (  )
43
hgs
parents: 40
diff changeset
   417
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
    TRACER ( "GlxSlideShowWidget::stopSlideShow( ) ");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
    cancelEffect();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
    mSlideTimer->stop();                
43
hgs
parents: 40
diff changeset
   421
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
void GlxSlideShowWidget::clearCurrentModel()
43
hgs
parents: 40
diff changeset
   424
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
    TRACER ( "GlxSlideShowWidget::clearCurrentModel( ) ");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
    if ( mModel ) {
71
27f2d7aec52a 201039_01
hgs
parents: 62
diff changeset
   427
        disconnect( mModel, SIGNAL( fullScreenDataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
43
hgs
parents: 40
diff changeset
   428
        disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int)));
hgs
parents: 40
diff changeset
   429
        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
hgs
parents: 40
diff changeset
   430
        disconnect(mModel, SIGNAL(destroyed()), this, SLOT( modelDestroyed()));
hgs
parents: 40
diff changeset
   431
        mModel = NULL ;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
    }
43
hgs
parents: 40
diff changeset
   433
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
void GlxSlideShowWidget::initializeNewModel()
43
hgs
parents: 40
diff changeset
   436
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
    TRACER("GlxSlideShowWidget::initializeNewModel" );
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
    if ( mModel ) {
71
27f2d7aec52a 201039_01
hgs
parents: 62
diff changeset
   439
        connect( mModel, SIGNAL( fullScreenDataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
43
hgs
parents: 40
diff changeset
   440
        connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int)));
hgs
parents: 40
diff changeset
   441
        connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
hgs
parents: 40
diff changeset
   442
        connect(mModel, SIGNAL(destroyed()), this, SLOT( modelDestroyed()));
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
    }	
43
hgs
parents: 40
diff changeset
   444
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
void GlxSlideShowWidget::resetSlideShow()
43
hgs
parents: 40
diff changeset
   447
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
    TRACER("GlxSlideShowWidget::resetSlideShow()" );
50
hgs
parents: 45
diff changeset
   449
	if(  mModel == NULL || mModel->rowCount() == 0 ) {
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   450
		return;
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   451
	}
50
hgs
parents: 45
diff changeset
   452
	
hgs
parents: 45
diff changeset
   453
	mSlideShowItemCount = mModel->rowCount();
hgs
parents: 45
diff changeset
   454
	setFocusItemIcon() ;
hgs
parents: 45
diff changeset
   455
	setNextItemIcon() ;
hgs
parents: 45
diff changeset
   456
	setPreItemIcon() ;
hgs
parents: 45
diff changeset
   457
	startSlideShow();
hgs
parents: 45
diff changeset
   458
	
hgs
parents: 45
diff changeset
   459
	qDebug( "GlxSlideShowWidget::resetSlideShow slide show item count %d" , mSlideShowItemCount );
hgs
parents: 45
diff changeset
   460
	if ( mErrorNote && mErrorNote->isVisible() && mSlideShowItemCount > 1 ){
hgs
parents: 45
diff changeset
   461
	    hideErrorNote();
hgs
parents: 45
diff changeset
   462
	}
43
hgs
parents: 40
diff changeset
   463
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
void GlxSlideShowWidget::moveImage(int nextIndex, int posX, const QString & move, char * callBack)
43
hgs
parents: 40
diff changeset
   466
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
    TRACER("GlxSlideShowWidget::MoveImage()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
50
hgs
parents: 45
diff changeset
   469
    if ( mSlideShowItemCount <= 1 || mEffectEngine->isEffectRuning( mItemList ) ) {
43
hgs
parents: 40
diff changeset
   470
        return ;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
    }
58
hgs
parents: 54
diff changeset
   472
    
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
    mSlideTimer->stop();
43
hgs
parents: 40
diff changeset
   474
    HbEffect::start( mIconItems[mItemIndex], QString("HbIconItem"), move );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
    mIconItems[nextIndex]->setPos( posX, mScreenRect.top());
43
hgs
parents: 40
diff changeset
   476
    mIconItems[nextIndex]->setOpacity(1);
58
hgs
parents: 54
diff changeset
   477
    mIsAutoMoving = true;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
    HbEffect::start(mIconItems[nextIndex], QString("HbIconItem"), QString("Move"), this, callBack );    
43
hgs
parents: 40
diff changeset
   479
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
void GlxSlideShowWidget::addConnections()
43
hgs
parents: 40
diff changeset
   482
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
    TRACER("GlxSlideShowWidget::addConnections()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    if ( mEffectEngine )  {
43
hgs
parents: 40
diff changeset
   485
        connect( mEffectEngine, SIGNAL( effectFinished() ), this, SLOT( effectFinshed() ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
    if ( mSlideTimer ) {
43
hgs
parents: 40
diff changeset
   488
        connect( mSlideTimer, SIGNAL(timeout()), this, SLOT( triggeredEffect() ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
    if ( mContinueButton ) {
43
hgs
parents: 40
diff changeset
   491
        connect( mContinueButton, SIGNAL( clicked(bool) ), this, SLOT( continueSlideShow(bool) ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
    }
43
hgs
parents: 40
diff changeset
   493
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
void GlxSlideShowWidget::removeConnections()
43
hgs
parents: 40
diff changeset
   496
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
    TRACER("GlxSlideShowWidget::removeConnections()");
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
    if ( mEffectEngine )  {
43
hgs
parents: 40
diff changeset
   499
        disconnect( mEffectEngine, SIGNAL( effectFinished() ), this, SLOT( effectFinshed() ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
    if ( mSlideTimer ) {
43
hgs
parents: 40
diff changeset
   502
        disconnect( mSlideTimer, SIGNAL(timeout()), this, SLOT( triggeredEffect() ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    if ( mContinueButton ) {
43
hgs
parents: 40
diff changeset
   505
        disconnect( mContinueButton, SIGNAL( clicked(bool) ), this, SLOT( continueSlideShow(bool) ) );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
    }
43
hgs
parents: 40
diff changeset
   507
}
50
hgs
parents: 45
diff changeset
   508
hgs
parents: 45
diff changeset
   509
int GlxSlideShowWidget::getFocusIndex( )
hgs
parents: 45
diff changeset
   510
{
hgs
parents: 45
diff changeset
   511
    QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole ) ;
hgs
parents: 45
diff changeset
   512
    if ( variant.isValid() && variant.canConvert< int > () ) {
hgs
parents: 45
diff changeset
   513
        return variant.value< int > ();
hgs
parents: 45
diff changeset
   514
    }
hgs
parents: 45
diff changeset
   515
    return -1;
hgs
parents: 45
diff changeset
   516
}
hgs
parents: 45
diff changeset
   517
hgs
parents: 45
diff changeset
   518
HbIcon GlxSlideShowWidget::getIcon( int index )
hgs
parents: 45
diff changeset
   519
{
hgs
parents: 45
diff changeset
   520
    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFsImageRole );
hgs
parents: 45
diff changeset
   521
    if ( variant.isValid() &&  variant.canConvert< HbIcon > () ) {
hgs
parents: 45
diff changeset
   522
        return variant.value< HbIcon > () ;       
hgs
parents: 45
diff changeset
   523
    }
hgs
parents: 45
diff changeset
   524
    return HbIcon() ;
hgs
parents: 45
diff changeset
   525
}
hgs
parents: 45
diff changeset
   526
hgs
parents: 45
diff changeset
   527
bool GlxSlideShowWidget::isCorrupt( int index )
hgs
parents: 45
diff changeset
   528
{
hgs
parents: 45
diff changeset
   529
    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxImageCorruptRole );
hgs
parents: 45
diff changeset
   530
    if ( variant.isValid() && variant.canConvert< bool> () ) {
hgs
parents: 45
diff changeset
   531
        return variant.value< bool > () ;
hgs
parents: 45
diff changeset
   532
    }
54
hgs
parents: 52
diff changeset
   533
    return false ;
50
hgs
parents: 45
diff changeset
   534
}
hgs
parents: 45
diff changeset
   535
hgs
parents: 45
diff changeset
   536
bool GlxSlideShowWidget::setFocusItemIcon( )
hgs
parents: 45
diff changeset
   537
{
hgs
parents: 45
diff changeset
   538
    int nbrItem = mModel->rowCount();
hgs
parents: 45
diff changeset
   539
    int focusIndex = getFocusIndex();
hgs
parents: 45
diff changeset
   540
    
hgs
parents: 45
diff changeset
   541
    for ( int i = 0; i < nbrItem ; ++i ) {
hgs
parents: 45
diff changeset
   542
        if ( isCorrupt( focusIndex  ) == false ) {  
hgs
parents: 45
diff changeset
   543
            qDebug( "GlxSlideShowWidget::setFocusItemIcon1 focus index %d" , focusIndex );
hgs
parents: 45
diff changeset
   544
            mIconItems[ mItemIndex ]->setIcon( getIcon( focusIndex ) ) ;
hgs
parents: 45
diff changeset
   545
            mSelIndex[ mItemIndex ] = focusIndex ;
54
hgs
parents: 52
diff changeset
   546
            mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxFocusIndexRole );
hgs
parents: 52
diff changeset
   547
            mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxVisualWindowIndex );
50
hgs
parents: 45
diff changeset
   548
            return true;
hgs
parents: 45
diff changeset
   549
        }
hgs
parents: 45
diff changeset
   550
        focusIndex = ( focusIndex + 1 ) % nbrItem;
hgs
parents: 45
diff changeset
   551
    }
hgs
parents: 45
diff changeset
   552
    mSlideShowItemCount = 0;
hgs
parents: 45
diff changeset
   553
    return false;    
hgs
parents: 45
diff changeset
   554
}
hgs
parents: 45
diff changeset
   555
hgs
parents: 45
diff changeset
   556
bool GlxSlideShowWidget::setNextItemIcon( )
hgs
parents: 45
diff changeset
   557
{
hgs
parents: 45
diff changeset
   558
    int nbrItem = mModel->rowCount();
hgs
parents: 45
diff changeset
   559
    int imageIndex = ( mSelIndex[ mItemIndex ] + 1 ) % nbrItem ;
hgs
parents: 45
diff changeset
   560
    int itemIndex = ( mItemIndex + 1 ) % NBR_ITEM ;
hgs
parents: 45
diff changeset
   561
    
hgs
parents: 45
diff changeset
   562
    for( int i = 1; i < nbrItem; ++i ) {
hgs
parents: 45
diff changeset
   563
       if ( isCorrupt( imageIndex ) == false ) {
hgs
parents: 45
diff changeset
   564
           mIconItems[ itemIndex ]->setIcon( getIcon( imageIndex ) );
hgs
parents: 45
diff changeset
   565
           mSelIndex[ itemIndex ] = imageIndex ;
hgs
parents: 45
diff changeset
   566
           return true;
hgs
parents: 45
diff changeset
   567
       }
hgs
parents: 45
diff changeset
   568
       imageIndex = ( imageIndex + 1 ) % nbrItem ;
hgs
parents: 45
diff changeset
   569
    }
hgs
parents: 45
diff changeset
   570
    
hgs
parents: 45
diff changeset
   571
    if ( isCorrupt( imageIndex ) ) {
hgs
parents: 45
diff changeset
   572
        mSlideShowItemCount = 0;
hgs
parents: 45
diff changeset
   573
    }
hgs
parents: 45
diff changeset
   574
    else {
hgs
parents: 45
diff changeset
   575
        mSlideShowItemCount = 1;
hgs
parents: 45
diff changeset
   576
    }
hgs
parents: 45
diff changeset
   577
    return false ;
hgs
parents: 45
diff changeset
   578
}
hgs
parents: 45
diff changeset
   579
hgs
parents: 45
diff changeset
   580
bool GlxSlideShowWidget::setPreItemIcon()
hgs
parents: 45
diff changeset
   581
{
hgs
parents: 45
diff changeset
   582
    int nbrItem = mModel->rowCount() ;
hgs
parents: 45
diff changeset
   583
    int imageIndex = mSelIndex[ mItemIndex ] > 0 ? mSelIndex[ mItemIndex ] - 1 : nbrItem - 1 ;
54
hgs
parents: 52
diff changeset
   584
    int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : NBR_ITEM - 1  ;
50
hgs
parents: 45
diff changeset
   585
    
hgs
parents: 45
diff changeset
   586
    for( int i = 1; i < nbrItem; ++i ) {
hgs
parents: 45
diff changeset
   587
        if ( isCorrupt( imageIndex ) == false ) {
hgs
parents: 45
diff changeset
   588
            mIconItems[ itemIndex ]->setIcon( getIcon( imageIndex ) ) ;
hgs
parents: 45
diff changeset
   589
            mSelIndex[ itemIndex ] = imageIndex ;
hgs
parents: 45
diff changeset
   590
            return true;        
hgs
parents: 45
diff changeset
   591
        }
hgs
parents: 45
diff changeset
   592
        imageIndex = imageIndex > 0 ? imageIndex - 1 : nbrItem - 1 ; 
hgs
parents: 45
diff changeset
   593
    }
hgs
parents: 45
diff changeset
   594
    if ( isCorrupt( imageIndex ) ) {
hgs
parents: 45
diff changeset
   595
        mSlideShowItemCount = 0;
hgs
parents: 45
diff changeset
   596
    }
hgs
parents: 45
diff changeset
   597
    else {
hgs
parents: 45
diff changeset
   598
        mSlideShowItemCount = 1;
hgs
parents: 45
diff changeset
   599
    }
hgs
parents: 45
diff changeset
   600
    return false;
hgs
parents: 45
diff changeset
   601
}
hgs
parents: 45
diff changeset
   602
hgs
parents: 45
diff changeset
   603
void GlxSlideShowWidget::showErrorNote()
hgs
parents: 45
diff changeset
   604
{
hgs
parents: 45
diff changeset
   605
    if ( mErrorNote == NULL ){
hgs
parents: 45
diff changeset
   606
        mErrorNote = new HbLabel( QString( GLX_NOIMAGE_PLAY_SLIDESHOW ), this);
hgs
parents: 45
diff changeset
   607
        mErrorNote->setObjectName( "No Image" );
hgs
parents: 45
diff changeset
   608
        mErrorNote->setGeometry( mIconItems[ 0 ]->geometry() );
hgs
parents: 45
diff changeset
   609
        mErrorNote->setAlignment( Qt::AlignCenter );
hgs
parents: 45
diff changeset
   610
    }
hgs
parents: 45
diff changeset
   611
    
hgs
parents: 45
diff changeset
   612
    for( int i = 0; i < NBR_ITEM; ++i ){
hgs
parents: 45
diff changeset
   613
        mIconItems[ i ]->setVisible( false );
hgs
parents: 45
diff changeset
   614
    }
hgs
parents: 45
diff changeset
   615
    mErrorNote->setVisible( true );
hgs
parents: 45
diff changeset
   616
    emit slideShowEvent( UI_ON_EVENT );
hgs
parents: 45
diff changeset
   617
}
hgs
parents: 45
diff changeset
   618
hgs
parents: 45
diff changeset
   619
void GlxSlideShowWidget::hideErrorNote()
hgs
parents: 45
diff changeset
   620
{
hgs
parents: 45
diff changeset
   621
    for( int i = 0; i < NBR_ITEM; ++i ){
hgs
parents: 45
diff changeset
   622
        mIconItems[ i ]->setVisible( true );
hgs
parents: 45
diff changeset
   623
    }
hgs
parents: 45
diff changeset
   624
    mErrorNote->setVisible( false );
hgs
parents: 45
diff changeset
   625
    emit slideShowEvent( UI_OFF_EVENT );
hgs
parents: 45
diff changeset
   626
}
hgs
parents: 45
diff changeset
   627