ui/views/gridview/src/glxgridview.cpp
author hgs
Mon, 27 Sep 2010 15:13:20 +0530
changeset 69 45459746d5e8
parent 65 ccee5c4b0de4
child 71 27f2d7aec52a
permissions -rw-r--r--
201039
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
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
//Includes
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <hbmainwindow.h>
40
hgs
parents: 26
diff changeset
    22
#include <hggrid.h>
hgs
parents: 26
diff changeset
    23
#include <glxmodelwrapper.h>
hgs
parents: 26
diff changeset
    24
#include <hbpushbutton.h>
65
hgs
parents: 58
diff changeset
    25
#include <HbToolBar> 
hgs
parents: 58
diff changeset
    26
#include <HbAction>
40
hgs
parents: 26
diff changeset
    27
#include <hbiconitem.h>
hgs
parents: 26
diff changeset
    28
#include <hbicon.h>
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <xqserviceutil.h>
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    30
#include <hbcheckbox.h>
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    31
#include <hblabel.h>
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    32
#include <QString>
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    33
#include <hbframeitem.h>
54
hgs
parents: 50
diff changeset
    34
#include <hbgroupbox.h>
hgs
parents: 50
diff changeset
    35
#include <hbparameterlengthlimiter.h>
hgs
parents: 50
diff changeset
    36
#include <QGraphicsLinearLayout>
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
//User Includes
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include "glxviewids.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include "glxgridview.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
#include "glxmodelparm.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include "glxcommandhandlers.hrh"
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    43
#include "glxicondefs.h"
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    44
#include "glxlocalisationstrings.h"
50
hgs
parents: 45
diff changeset
    45
#include "glxsettinginterface.h"
40
hgs
parents: 26
diff changeset
    46
54
hgs
parents: 50
diff changeset
    47
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
#include "OstTraceDefinitions.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
#ifdef OST_TRACE_COMPILER_IN_USE
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
#include "glxgridviewTraces.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
#endif
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
44
hgs
parents: 43
diff changeset
    53
GlxGridView::GlxGridView(HbMainWindow *window)
hgs
parents: 43
diff changeset
    54
    : GlxView ( GLX_GRIDVIEW_ID ),
hgs
parents: 43
diff changeset
    55
      mWindow(window),
hgs
parents: 43
diff changeset
    56
      mModel ( NULL),
40
hgs
parents: 26
diff changeset
    57
      mWidget(NULL),
hgs
parents: 26
diff changeset
    58
      mSelectionModel(NULL),
hgs
parents: 26
diff changeset
    59
      mModelWrapper(NULL),
54
hgs
parents: 50
diff changeset
    60
      mUiOnButton(NULL),      
40
hgs
parents: 26
diff changeset
    61
      mScrolling(FALSE),
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    62
      mIconItem(NULL),
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    63
      mMarkCheckBox(NULL),
54
hgs
parents: 50
diff changeset
    64
      mTotalImagesCount(NULL),
hgs
parents: 50
diff changeset
    65
      mMarkSelectHeading(NULL),
hgs
parents: 50
diff changeset
    66
      mMarkCountLabel(NULL),
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    67
      mZeroItemLabel(NULL),
54
hgs
parents: 50
diff changeset
    68
      mAlbumNameHeading(NULL),
hgs
parents: 50
diff changeset
    69
      mMarkContainer(NULL),
65
hgs
parents: 58
diff changeset
    70
      mMarkingWidget(NULL),
hgs
parents: 58
diff changeset
    71
      mToolBar( NULL ),
hgs
parents: 58
diff changeset
    72
      mCurrentToolBar( NULL )
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    73
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
    OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
40
hgs
parents: 26
diff changeset
    75
    mModelWrapper = new GlxModelWrapper();
hgs
parents: 26
diff changeset
    76
    mModelWrapper->setRoles(GlxQImageSmall);
hgs
parents: 26
diff changeset
    77
    mIconItem = new HbIconItem(this);
50
hgs
parents: 45
diff changeset
    78
    mSettings = GlxSettingInterface::instance() ;
54
hgs
parents: 50
diff changeset
    79
    
hgs
parents: 50
diff changeset
    80
    mUiOnButton = new HbPushButton(this);
hgs
parents: 50
diff changeset
    81
    connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
hgs
parents: 50
diff changeset
    82
    mUiOnButton->setGeometry(QRectF(590,0,40,40));
hgs
parents: 50
diff changeset
    83
    mUiOnButton->setZValue(1);
hgs
parents: 50
diff changeset
    84
    mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON));
hgs
parents: 50
diff changeset
    85
    mUiOnButton->setObjectName( "UiOn Button" );
hgs
parents: 50
diff changeset
    86
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    88
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
void GlxGridView::activate()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    91
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
    OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
40
hgs
parents: 26
diff changeset
    93
    loadGridView();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    94
	connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
54
hgs
parents: 50
diff changeset
    95
    if(mTotalImagesCount == NULL) {
hgs
parents: 50
diff changeset
    96
        mTotalImagesCount = new HbGroupBox(this);
hgs
parents: 50
diff changeset
    97
        mTotalImagesCount->setObjectName( "Count" );
hgs
parents: 50
diff changeset
    98
        mTotalImagesCount->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    99
    }
69
hgs
parents: 65
diff changeset
   100
    mWidget->resetTransform();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   102
}
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
void GlxGridView::deActivate()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   105
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    OstTraceFunctionEntry0( GLXGRIDVIEW_DEACTIVATE_ENTRY );
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   107
    mScrolling = FALSE;
43
hgs
parents: 42
diff changeset
   108
    if (mUiOnButton){
40
hgs
parents: 26
diff changeset
   109
        mUiOnButton->hide();
44
hgs
parents: 43
diff changeset
   110
    }
43
hgs
parents: 42
diff changeset
   111
    if(mIconItem) {
40
hgs
parents: 26
diff changeset
   112
        mIconItem->hide();
hgs
parents: 26
diff changeset
   113
        mIconItem->resetTransform();
hgs
parents: 26
diff changeset
   114
        mIconItem->setOpacity(0);
hgs
parents: 26
diff changeset
   115
        mIconItem->setZValue(mIconItem->zValue()-20);
43
hgs
parents: 42
diff changeset
   116
    }
54
hgs
parents: 50
diff changeset
   117
    if (mTotalImagesCount) {
hgs
parents: 50
diff changeset
   118
        mTotalImagesCount->hide();
43
hgs
parents: 42
diff changeset
   119
    }
54
hgs
parents: 50
diff changeset
   120
    if (mAlbumNameHeading) {
hgs
parents: 50
diff changeset
   121
        mAlbumNameHeading->hide();
43
hgs
parents: 42
diff changeset
   122
    }
hgs
parents: 42
diff changeset
   123
    if(mZeroItemLabel) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   124
        mZeroItemLabel->hide();
43
hgs
parents: 42
diff changeset
   125
    }
54
hgs
parents: 50
diff changeset
   126
    
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   127
    disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   128
    OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   129
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
50
hgs
parents: 45
diff changeset
   131
void GlxGridView::initializeView( QAbstractItemModel *model, GlxView *preView )
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   132
{
50
hgs
parents: 45
diff changeset
   133
    Q_UNUSED( preView )
40
hgs
parents: 26
diff changeset
   134
    activate();
hgs
parents: 26
diff changeset
   135
    setModel(model);
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   136
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   138
void GlxGridView::clearCurrentModel()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   139
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   140
    if ( mModel ) {
65
hgs
parents: 58
diff changeset
   141
        disconnect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( rowsInserted() ) );
hgs
parents: 58
diff changeset
   142
        disconnect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int ) ), this, SLOT( rowsRemoved() ) );
hgs
parents: 58
diff changeset
   143
        disconnect( mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel() ) );
hgs
parents: 58
diff changeset
   144
        disconnect( mModel, SIGNAL( albumTitleAvailable( QString ) ), this, SLOT( showAlbumTitle( QString ) ) );
hgs
parents: 58
diff changeset
   145
        disconnect( mModel, SIGNAL( populated() ), this, SLOT( populated() ) );
hgs
parents: 58
diff changeset
   146
        mModel = NULL;
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   147
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   148
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   149
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   150
void GlxGridView::initializeNewModel()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   151
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   152
    if ( mModel ) {
65
hgs
parents: 58
diff changeset
   153
        connect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( rowsInserted() ) );
hgs
parents: 58
diff changeset
   154
        connect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int ) ), this, SLOT( rowsRemoved() ) );
hgs
parents: 58
diff changeset
   155
        connect( mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel() ) );
hgs
parents: 58
diff changeset
   156
        if ( getSubState() == ALBUM_ITEM_S ) {
hgs
parents: 58
diff changeset
   157
            connect( mModel, SIGNAL( albumTitleAvailable( QString ) ), this, SLOT( showAlbumTitle( QString ) ) );
54
hgs
parents: 50
diff changeset
   158
        }
65
hgs
parents: 58
diff changeset
   159
        connect( mModel, SIGNAL( populated() ), this, SLOT( populated() ) );
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   160
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   161
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   162
65
hgs
parents: 58
diff changeset
   163
void GlxGridView::setModel( QAbstractItemModel *model )
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   164
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    OstTraceFunctionEntry0( GLXGRIDVIEW_SETMODEL_ENTRY );
65
hgs
parents: 58
diff changeset
   166
    if( model ) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   167
        clearCurrentModel();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   168
        mModel = model;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   169
        initializeNewModel();
65
hgs
parents: 58
diff changeset
   170
        
40
hgs
parents: 26
diff changeset
   171
        QVariant variantimage = mModel->data(mModel->index(0,0),GlxDefaultImage);
65
hgs
parents: 58
diff changeset
   172
        if ( variantimage.isValid() && variantimage.canConvert<QImage> () ) {
hgs
parents: 58
diff changeset
   173
            mWidget->setDefaultImage( variantimage.value<QImage>() );
hgs
parents: 58
diff changeset
   174
        }
hgs
parents: 58
diff changeset
   175
        
hgs
parents: 58
diff changeset
   176
        mModelWrapper->setModel( mModel );
hgs
parents: 58
diff changeset
   177
        mWidget->setModel( mModelWrapper );
hgs
parents: 58
diff changeset
   178
        
hgs
parents: 58
diff changeset
   179
        if( !mSelectionModel ) {
hgs
parents: 58
diff changeset
   180
            mSelectionModel = new QItemSelectionModel( mModelWrapper, this );
hgs
parents: 58
diff changeset
   181
            connect( mSelectionModel, SIGNAL( currentChanged( const QModelIndex &, const QModelIndex & ) ), this, SLOT( visibleIndexChanged( const QModelIndex &, const QModelIndex & ) ) );
hgs
parents: 58
diff changeset
   182
            mWidget->setSelectionModel( mSelectionModel );
hgs
parents: 58
diff changeset
   183
        }
hgs
parents: 58
diff changeset
   184
        
hgs
parents: 58
diff changeset
   185
        scrolltofocus(); // Need to do it here ?
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   186
        showItemCount();
65
hgs
parents: 58
diff changeset
   187
    }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    OstTraceFunctionExit0( GLXGRIDVIEW_SETMODEL_EXIT );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   189
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
40
hgs
parents: 26
diff changeset
   191
void GlxGridView::visibleIndexChanged(const QModelIndex& current, const QModelIndex& previous)
hgs
parents: 26
diff changeset
   192
{
hgs
parents: 26
diff changeset
   193
    if(mScrolling)
hgs
parents: 26
diff changeset
   194
        {
hgs
parents: 26
diff changeset
   195
        Q_UNUSED(previous);
hgs
parents: 26
diff changeset
   196
        if(current.row() >= 0 || current.row() < mModel->rowCount())
hgs
parents: 26
diff changeset
   197
            {
hgs
parents: 26
diff changeset
   198
            mModel->setData(mModel->index(0,0),current.row(),GlxVisualWindowIndex);
hgs
parents: 26
diff changeset
   199
            }
hgs
parents: 26
diff changeset
   200
        }
hgs
parents: 26
diff changeset
   201
}
hgs
parents: 26
diff changeset
   202
44
hgs
parents: 43
diff changeset
   203
void GlxGridView::addToolBar( HbToolBar *toolBar )
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   204
{
44
hgs
parents: 43
diff changeset
   205
    OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY );
65
hgs
parents: 58
diff changeset
   206
    
hgs
parents: 58
diff changeset
   207
    //For album grid view, add and remove from album tool bar will be shown
hgs
parents: 58
diff changeset
   208
    int subState = getSubState();
hgs
parents: 58
diff changeset
   209
    if ( subState == ALBUM_ITEM_S && mWidget->selectionMode() == HgWidget::NoSelection ) {
hgs
parents: 58
diff changeset
   210
        if ( !mToolBar ) {
hgs
parents: 58
diff changeset
   211
            createAlbumGridToolBar();
hgs
parents: 58
diff changeset
   212
        }
hgs
parents: 58
diff changeset
   213
        if ( mToolBar ) {
hgs
parents: 58
diff changeset
   214
            //remove from action will be disable if number of images in the album grid is zero.
hgs
parents: 58
diff changeset
   215
            if ( mModel->rowCount()  ) {
hgs
parents: 58
diff changeset
   216
                mToolBar->actions().at(0)->setEnabled( true ); //To:Do remove once selection dialog is implemented
hgs
parents: 58
diff changeset
   217
                mToolBar->actions().at(1)->setEnabled( true );
hgs
parents: 58
diff changeset
   218
            }
hgs
parents: 58
diff changeset
   219
            else {
hgs
parents: 58
diff changeset
   220
                mToolBar->actions().at(0)->setEnabled( false );
hgs
parents: 58
diff changeset
   221
                mToolBar->actions().at(1)->setEnabled( false );
hgs
parents: 58
diff changeset
   222
            }
hgs
parents: 58
diff changeset
   223
            if ( mToolBar != mCurrentToolBar ) {
hgs
parents: 58
diff changeset
   224
                takeToolBar();
hgs
parents: 58
diff changeset
   225
                setToolBar( mToolBar );
hgs
parents: 58
diff changeset
   226
                mCurrentToolBar = mToolBar;
hgs
parents: 58
diff changeset
   227
            }
hgs
parents: 58
diff changeset
   228
        }
hgs
parents: 58
diff changeset
   229
    }
hgs
parents: 58
diff changeset
   230
    else {
hgs
parents: 58
diff changeset
   231
        if ( toolBar != mCurrentToolBar ) {
hgs
parents: 58
diff changeset
   232
            takeToolBar();
hgs
parents: 58
diff changeset
   233
            setToolBar( toolBar );
hgs
parents: 58
diff changeset
   234
            mCurrentToolBar = toolBar;
hgs
parents: 58
diff changeset
   235
        }
hgs
parents: 58
diff changeset
   236
    }
hgs
parents: 58
diff changeset
   237
    
54
hgs
parents: 50
diff changeset
   238
    showHbItems();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   240
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
void GlxGridView::enableMarking()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   243
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
40
hgs
parents: 26
diff changeset
   245
    mWidget->setSelectionMode(HgWidget::MultiSelection);
54
hgs
parents: 50
diff changeset
   246
   
69
hgs
parents: 65
diff changeset
   247
    if (mMarkingWidget == NULL) {
54
hgs
parents: 50
diff changeset
   248
        mMarkingWidget = new HbWidget(this);
hgs
parents: 50
diff changeset
   249
        mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0);
hgs
parents: 50
diff changeset
   250
        mMarkingWidget->setLayout(mMarkContainer);
hgs
parents: 50
diff changeset
   251
hgs
parents: 50
diff changeset
   252
        mMarkSelectHeading = new HbGroupBox(this);
hgs
parents: 50
diff changeset
   253
        mMarkSelectHeading->setHeading(GLX_SELECT_IMAGES);
hgs
parents: 50
diff changeset
   254
        mMarkSelectHeading->setObjectName("Select Photos");
hgs
parents: 50
diff changeset
   255
               
hgs
parents: 50
diff changeset
   256
        mMarkCountLabel = new HbLabel(mMarkingWidget);
hgs
parents: 50
diff changeset
   257
        mMarkCountLabel->setObjectName("MarkCount");
hgs
parents: 50
diff changeset
   258
        mMarkCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
hgs
parents: 50
diff changeset
   259
        
hgs
parents: 50
diff changeset
   260
        mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget);
hgs
parents: 50
diff changeset
   261
        mMarkCheckBox->setObjectName("CheckB MarkAll");
hgs
parents: 50
diff changeset
   262
       
hgs
parents: 50
diff changeset
   263
        mMarkContainer->addItem(mMarkCheckBox);
hgs
parents: 50
diff changeset
   264
        mMarkContainer->addItem(mMarkCountLabel);        
69
hgs
parents: 65
diff changeset
   265
    }
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   266
69
hgs
parents: 65
diff changeset
   267
    hideorshowitems( mWindow->orientation() );
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   268
69
hgs
parents: 65
diff changeset
   269
    connect( mWidget->selectionModel() , SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
hgs
parents: 65
diff changeset
   270
    connect( mMarkCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( stateChanged( int ) ));
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   271
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
44
hgs
parents: 43
diff changeset
   273
void GlxGridView::disableMarking()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   274
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
40
hgs
parents: 26
diff changeset
   276
    mWidget->setSelectionMode(HgWidget::NoSelection);
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   277
    disconnect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   278
    disconnect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int)));
54
hgs
parents: 50
diff changeset
   279
    
hgs
parents: 50
diff changeset
   280
    if (mMarkSelectHeading) {
hgs
parents: 50
diff changeset
   281
        mMarkSelectHeading->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   282
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   283
54
hgs
parents: 50
diff changeset
   284
    if (mMarkingWidget) {
hgs
parents: 50
diff changeset
   285
        mMarkingWidget->hide();
58
hgs
parents: 54
diff changeset
   286
    }     
54
hgs
parents: 50
diff changeset
   287
    
58
hgs
parents: 54
diff changeset
   288
    if (mMarkCheckBox) {
hgs
parents: 54
diff changeset
   289
       mMarkCheckBox->setCheckState(Qt::Unchecked);
hgs
parents: 54
diff changeset
   290
    }
hgs
parents: 54
diff changeset
   291
	
54
hgs
parents: 50
diff changeset
   292
    showHbItems();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   293
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   294
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   295
void GlxGridView::stateChanged(int state)
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   296
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   297
    if(state)
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   298
        handleUserAction(EGlxCmdMarkAll);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   299
    else
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   300
        handleUserAction(EGlxCmdUnMarkAll);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   301
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   302
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   303
void GlxGridView::showMarkedItemCount()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   304
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   305
    int count = mModel->rowCount();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   306
    QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes();
69
hgs
parents: 65
diff changeset
   307
    int markItemCount = indexList.count();
hgs
parents: 65
diff changeset
   308
    QString text = HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);
hgs
parents: 65
diff changeset
   309
    mMarkCountLabel->setPlainText(text);
hgs
parents: 65
diff changeset
   310
hgs
parents: 65
diff changeset
   311
    //Block The signals generated by the CheckBox
hgs
parents: 65
diff changeset
   312
    //if we dont block the signals  , then when we call setCheckState to selected and unselect the CheckBox
hgs
parents: 65
diff changeset
   313
    //it causes state change signal to emit which will cause either mark all or un mark all of teh images.
hgs
parents: 65
diff changeset
   314
    mMarkCheckBox->blockSignals(TRUE);
hgs
parents: 65
diff changeset
   315
    if (markItemCount != count && mMarkCheckBox->checkState() == Qt::Checked) {
hgs
parents: 65
diff changeset
   316
        //if the mark all option was checked  and then the user un marks an slected item
hgs
parents: 65
diff changeset
   317
        //Then we have to un check the Mark All check Box
hgs
parents: 65
diff changeset
   318
        mMarkCheckBox->setCheckState(Qt::Unchecked);
hgs
parents: 65
diff changeset
   319
    }
hgs
parents: 65
diff changeset
   320
    else if (markItemCount == count) {
hgs
parents: 65
diff changeset
   321
        //if all the images are selected/marked Indiduvally
hgs
parents: 65
diff changeset
   322
        //Then the the Mark All check Box has to checked/Selected
hgs
parents: 65
diff changeset
   323
        mMarkCheckBox->setCheckState(Qt::Checked);
hgs
parents: 65
diff changeset
   324
    }
hgs
parents: 65
diff changeset
   325
    //UnBlock The signals generated by the CheckBox
hgs
parents: 65
diff changeset
   326
    mMarkCheckBox->blockSignals(FALSE);
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   327
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   328
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   329
void GlxGridView::showItemCount()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   330
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   331
    int count = 0;
65
hgs
parents: 58
diff changeset
   332
    if( mModel ) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   333
        count = mModel->rowCount();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   334
        QSize deviceSize = HbDeviceProfile::current().logicalSize();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   335
        QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   336
                                                                       : QSize( deviceSize.height(), deviceSize.width() )  ;
65
hgs
parents: 58
diff changeset
   337
        if( count ) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   338
            if(mZeroItemLabel) {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   339
                mZeroItemLabel->hide();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   340
            }
54
hgs
parents: 50
diff changeset
   341
            
65
hgs
parents: 58
diff changeset
   342
            if( isItemVisible( Hb::TitleBarItem ) ) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   343
                QString text;
65
hgs
parents: 58
diff changeset
   344
                if(XQServiceUtil::isService()) {
54
hgs
parents: 50
diff changeset
   345
                    showAlbumTitle(GLX_SELECT_IMAGE);
65
hgs
parents: 58
diff changeset
   346
                }
hgs
parents: 58
diff changeset
   347
                else if ( getSubState() == ALL_ITEM_S ) {
54
hgs
parents: 50
diff changeset
   348
					if (mAlbumNameHeading) {
hgs
parents: 50
diff changeset
   349
                    	mAlbumNameHeading->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   350
					}
69
hgs
parents: 65
diff changeset
   351
				
54
hgs
parents: 50
diff changeset
   352
                    text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
hgs
parents: 50
diff changeset
   353
                    mTotalImagesCount->setHeading ( text );
69
hgs
parents: 65
diff changeset
   354
                    mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
54
hgs
parents: 50
diff changeset
   355
                    mTotalImagesCount->show();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   356
                }
65
hgs
parents: 58
diff changeset
   357
                else if ( getSubState() == ALBUM_ITEM_S ) {
54
hgs
parents: 50
diff changeset
   358
                    mTotalImagesCount->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   359
                    QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   360
                    if (variant.toString() != NULL) {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   361
                        showAlbumTitle(variant.toString());
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   362
                    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   363
                }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   364
            }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   365
            else {
54
hgs
parents: 50
diff changeset
   366
                if (mTotalImagesCount) {
hgs
parents: 50
diff changeset
   367
                    mTotalImagesCount->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   368
                }
54
hgs
parents: 50
diff changeset
   369
                if (mAlbumNameHeading) {
hgs
parents: 50
diff changeset
   370
                    mAlbumNameHeading->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   371
                }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   372
            }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   373
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   374
        }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   375
        else {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   376
            bool populated = FALSE;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   377
            QVariant variant = mModel->data(mModel->index(0,0),GlxPopulated);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   378
            if (variant.isValid() &&  variant.canConvert<bool>() )
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   379
                {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   380
                populated = variant.value<bool>();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   381
                }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   382
            if(populated) {
54
hgs
parents: 50
diff changeset
   383
                if (mTotalImagesCount) {
hgs
parents: 50
diff changeset
   384
                    mTotalImagesCount->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   385
                }
54
hgs
parents: 50
diff changeset
   386
                if (mAlbumNameHeading) {
hgs
parents: 50
diff changeset
   387
                    mAlbumNameHeading->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   388
                }
44
hgs
parents: 43
diff changeset
   389
hgs
parents: 43
diff changeset
   390
                showNoImageString();
hgs
parents: 43
diff changeset
   391
hgs
parents: 43
diff changeset
   392
                if (getSubState() == ALBUM_ITEM_S) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   393
                    QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   394
                    if (variant.toString() != NULL) {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   395
                        showAlbumTitle(variant.toString());
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   396
                    }
44
hgs
parents: 43
diff changeset
   397
				}	
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   398
            }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   399
        }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   400
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   401
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   402
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   403
void GlxGridView::showAlbumTitle(QString aTitle)
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   404
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   405
    int count = mModel->rowCount();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   406
    QSize deviceSize = HbDeviceProfile::current().logicalSize();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   407
    QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   408
                                                                   : QSize( deviceSize.height(), deviceSize.width() )  ;
54
hgs
parents: 50
diff changeset
   409
    if (mAlbumNameHeading == NULL)
hgs
parents: 50
diff changeset
   410
        {
hgs
parents: 50
diff changeset
   411
        mAlbumNameHeading = new HbGroupBox(this);
hgs
parents: 50
diff changeset
   412
        mAlbumNameHeading->setObjectName("Album Name");
hgs
parents: 50
diff changeset
   413
        }
hgs
parents: 50
diff changeset
   414
hgs
parents: 50
diff changeset
   415
    //If fetcher service set only title text
hgs
parents: 50
diff changeset
   416
    if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem))
69
hgs
parents: 65
diff changeset
   417
        {       
54
hgs
parents: 50
diff changeset
   418
        mAlbumNameHeading->setHeading(aTitle);
69
hgs
parents: 65
diff changeset
   419
        mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));       
54
hgs
parents: 50
diff changeset
   420
        mAlbumNameHeading->show();
hgs
parents: 50
diff changeset
   421
        }
hgs
parents: 50
diff changeset
   422
    else
hgs
parents: 50
diff changeset
   423
        { //handle album tiltle and count display logic here
58
hgs
parents: 54
diff changeset
   424
        if (isItemVisible(Hb::TitleBarItem))
54
hgs
parents: 50
diff changeset
   425
            {
69
hgs
parents: 65
diff changeset
   426
            QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);    
54
hgs
parents: 50
diff changeset
   427
            mAlbumNameHeading->setHeading(text);
69
hgs
parents: 65
diff changeset
   428
            mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height()/24));                 
54
hgs
parents: 50
diff changeset
   429
            mAlbumNameHeading->show();
hgs
parents: 50
diff changeset
   430
            }
hgs
parents: 50
diff changeset
   431
        }
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   432
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   433
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   434
void GlxGridView::showNoImageString()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   435
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   436
    qreal chromeHeight = 0.0;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   437
    QSize deviceSize = HbDeviceProfile::current().logicalSize();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   438
    QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   439
                                                                   : QSize( deviceSize.height(), deviceSize.width() )  ;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   440
    qreal midHeight = screenSize.height()/2;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   441
    if (isItemVisible(Hb::TitleBarItem)) {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   442
        style()->parameter("hb-param-widget-chrome-height", chromeHeight);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   443
        midHeight -= chromeHeight;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   444
    }
44
hgs
parents: 43
diff changeset
   445
    if (mZeroItemLabel == NULL) {
hgs
parents: 43
diff changeset
   446
        QString displayText(GLX_GRID_NO_IMAGE); 
hgs
parents: 43
diff changeset
   447
        mZeroItemLabel = new HbLabel(displayText, this);
45
hgs
parents: 44
diff changeset
   448
        mZeroItemLabel->setObjectName( "No Image" );
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   449
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   450
    mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32));
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   451
    mZeroItemLabel->setAlignment(Qt::AlignHCenter);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   452
    mZeroItemLabel->show();
54
hgs
parents: 50
diff changeset
   453
   
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   454
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   455
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   456
void GlxGridView::populated()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   457
{
65
hgs
parents: 58
diff changeset
   458
    QVariant variant = mModelWrapper->data(mModelWrapper->index(0,0), GlxVisualWindowIndex );
hgs
parents: 58
diff changeset
   459
    int visualIndex = 0;
hgs
parents: 58
diff changeset
   460
    if ( variant.isValid() &&  variant.canConvert<int> () )  {
hgs
parents: 58
diff changeset
   461
        visualIndex = variant.value<int>();
hgs
parents: 58
diff changeset
   462
    }
hgs
parents: 58
diff changeset
   463
    mWidget->scrollTo(mModelWrapper->index(visualIndex,0));
hgs
parents: 58
diff changeset
   464
    showItemCount();
hgs
parents: 58
diff changeset
   465
}
hgs
parents: 58
diff changeset
   466
hgs
parents: 58
diff changeset
   467
void GlxGridView::rowsInserted()
hgs
parents: 58
diff changeset
   468
{
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   469
    showItemCount();
65
hgs
parents: 58
diff changeset
   470
    if( getSubState() == ALBUM_ITEM_S  && mToolBar ) {
hgs
parents: 58
diff changeset
   471
        mToolBar->actions().at(0)->setEnabled( true ); //To:Do remove once selection dialog is implemented
hgs
parents: 58
diff changeset
   472
        mToolBar->actions().at(1)->setEnabled( true );
hgs
parents: 58
diff changeset
   473
    }
hgs
parents: 58
diff changeset
   474
}
hgs
parents: 58
diff changeset
   475
hgs
parents: 58
diff changeset
   476
void GlxGridView::rowsRemoved()
hgs
parents: 58
diff changeset
   477
{
hgs
parents: 58
diff changeset
   478
    showItemCount(); 
hgs
parents: 58
diff changeset
   479
    if( getSubState() == ALBUM_ITEM_S  && mModel->rowCount() == 0 && mToolBar ) {
hgs
parents: 58
diff changeset
   480
        mToolBar->actions().at(0)->setEnabled( false ); //To:Do remove once selection dialog is implemented
hgs
parents: 58
diff changeset
   481
        mToolBar->actions().at(1)->setEnabled( false );
hgs
parents: 58
diff changeset
   482
    }    
hgs
parents: 58
diff changeset
   483
}
hgs
parents: 58
diff changeset
   484
hgs
parents: 58
diff changeset
   485
void GlxGridView::handleToolBarAction()
hgs
parents: 58
diff changeset
   486
{
hgs
parents: 58
diff changeset
   487
    HbAction *action = qobject_cast<HbAction*>( sender() );
hgs
parents: 58
diff changeset
   488
    qint32 commandId = action->data().toInt();
hgs
parents: 58
diff changeset
   489
    emit actionTriggered( commandId );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   490
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
void GlxGridView::handleUserAction(qint32 commandId)
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   493
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::handleUserAction" );
40
hgs
parents: 26
diff changeset
   495
    switch( commandId ) {
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
        case EGlxCmdMarkAll :
40
hgs
parents: 26
diff changeset
   497
            mWidget->selectAll();
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
            break;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
        case EGlxCmdUnMarkAll :
40
hgs
parents: 26
diff changeset
   501
            mWidget->clearSelection();
44
hgs
parents: 43
diff changeset
   502
            break;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
50
hgs
parents: 45
diff changeset
   504
        case EGlxCmd3DEffectOn:
hgs
parents: 45
diff changeset
   505
            mSettings->setmediaWall3DEffect(1);
hgs
parents: 45
diff changeset
   506
            if(mWidget && !mWidget->effect3dEnabled())
hgs
parents: 45
diff changeset
   507
                mWidget->setEffect3dEnabled(ETrue);
hgs
parents: 45
diff changeset
   508
            break;
hgs
parents: 45
diff changeset
   509
            
hgs
parents: 45
diff changeset
   510
        case EGlxCmd3DEffectOff:
hgs
parents: 45
diff changeset
   511
            mSettings->setmediaWall3DEffect(0);
hgs
parents: 45
diff changeset
   512
            if(mWidget && mWidget->effect3dEnabled())
hgs
parents: 45
diff changeset
   513
                mWidget->setEffect3dEnabled(EFalse);
hgs
parents: 45
diff changeset
   514
            break;
hgs
parents: 45
diff changeset
   515
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
        default :
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
            break;
44
hgs
parents: 43
diff changeset
   518
    }
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   519
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
QItemSelectionModel * GlxGridView::getSelectionModel()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   522
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_GETSELECTIONMODEL, "GlxGridView::getSelectionModel" );
40
hgs
parents: 26
diff changeset
   524
    return mWidget->selectionModel();
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   525
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
QGraphicsItem * GlxGridView::getAnimationItem(GlxEffect transitionEffect)
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   528
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
    OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
    int selIndex = -1;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
69
hgs
parents: 65
diff changeset
   532
    if ( transitionEffect == FULLSCREEN_TO_GRID  || transitionEffect == FULLSCREEN_TO_GRID_PORTRAIT ) {
40
hgs
parents: 26
diff changeset
   533
        return mWidget;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
69
hgs
parents: 65
diff changeset
   536
    if ( transitionEffect == GRID_TO_FULLSCREEN ) {
hgs
parents: 65
diff changeset
   537
        QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole );
hgs
parents: 65
diff changeset
   538
        if ( variant.isValid() && variant.canConvert<int> () ) {
hgs
parents: 65
diff changeset
   539
            selIndex = variant.value<int> ();
hgs
parents: 65
diff changeset
   540
        }
hgs
parents: 65
diff changeset
   541
        else {
40
hgs
parents: 26
diff changeset
   542
            return mWidget;
69
hgs
parents: 65
diff changeset
   543
        }
hgs
parents: 65
diff changeset
   544
        QVariant variantimage = mModel->data( mModel->index( selIndex, 0 ), Qt::DecorationRole );
hgs
parents: 65
diff changeset
   545
        if ( variantimage.isValid() && variantimage.canConvert<HbIcon> () ) {
40
hgs
parents: 26
diff changeset
   546
            QPolygonF poly;
69
hgs
parents: 65
diff changeset
   547
            if ( mModelWrapper && !mWidget->getItemOutline( mModelWrapper->index( selIndex, 0 ), poly ) ) {
40
hgs
parents: 26
diff changeset
   548
                return mWidget;
69
hgs
parents: 65
diff changeset
   549
            }
40
hgs
parents: 26
diff changeset
   550
            QRectF itemRect = poly.boundingRect();
hgs
parents: 26
diff changeset
   551
69
hgs
parents: 65
diff changeset
   552
            mIconItem->setSize( QSize( 120, 120 ) );
hgs
parents: 65
diff changeset
   553
            HbIcon tempIcon = variantimage.value<HbIcon> ();
hgs
parents: 65
diff changeset
   554
            QPixmap tempPixmap = tempIcon.qicon().pixmap( 120, 120 );
hgs
parents: 65
diff changeset
   555
            QSize sz = QSize( 120, 120 );
hgs
parents: 65
diff changeset
   556
            tempPixmap = tempPixmap.scaled( sz, Qt::IgnoreAspectRatio );
hgs
parents: 65
diff changeset
   557
            HbIcon tmp = HbIcon( QIcon( tempPixmap ) );
hgs
parents: 65
diff changeset
   558
            mIconItem->setIcon( tmp );
hgs
parents: 65
diff changeset
   559
            mIconItem->setPos( itemRect.topLeft() );
hgs
parents: 65
diff changeset
   560
            mIconItem->setZValue( mIconItem->zValue() + 20 );
40
hgs
parents: 26
diff changeset
   561
            mIconItem->show();
69
hgs
parents: 65
diff changeset
   562
            if ( mToolBar ) {
hgs
parents: 65
diff changeset
   563
                mToolBar->setZValue( mIconItem->zValue() - 5 );
40
hgs
parents: 26
diff changeset
   564
            }
69
hgs
parents: 65
diff changeset
   565
            return mIconItem;
hgs
parents: 65
diff changeset
   566
        }
hgs
parents: 65
diff changeset
   567
        else {
40
hgs
parents: 26
diff changeset
   568
            return mWidget;
hgs
parents: 26
diff changeset
   569
        }
69
hgs
parents: 65
diff changeset
   570
    }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
69
hgs
parents: 65
diff changeset
   572
    if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ) {
40
hgs
parents: 26
diff changeset
   573
        return mWidget;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
    }
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
    OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
44
hgs
parents: 43
diff changeset
   576
    return NULL;
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   577
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
40
hgs
parents: 26
diff changeset
   579
void GlxGridView::loadGridView()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   580
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   581
    OstTraceFunctionEntry0( GLXGRIDVIEW_LOADGRIDVIEW_ENTRY );
40
hgs
parents: 26
diff changeset
   582
    if(mWidget == NULL) {
hgs
parents: 26
diff changeset
   583
        Qt::Orientation orient = mWindow->orientation();
hgs
parents: 26
diff changeset
   584
        mWindow->viewport()->grabGesture(Qt::PanGesture);
hgs
parents: 26
diff changeset
   585
        mWindow->viewport()->grabGesture(Qt::TapGesture);
hgs
parents: 26
diff changeset
   586
        mWindow->viewport()->grabGesture(Qt::TapAndHoldGesture);
hgs
parents: 26
diff changeset
   587
        mWidget = new HgGrid(orient);
45
hgs
parents: 44
diff changeset
   588
        mWidget->setObjectName( "Media Wall" );
40
hgs
parents: 26
diff changeset
   589
        mWidget->setLongPressEnabled(true);
44
hgs
parents: 43
diff changeset
   590
        mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide);
50
hgs
parents: 45
diff changeset
   591
        if(XQServiceUtil::isService())
hgs
parents: 45
diff changeset
   592
            {
hgs
parents: 45
diff changeset
   593
            mWidget->setEffect3dEnabled(EFalse);
hgs
parents: 45
diff changeset
   594
            }
hgs
parents: 45
diff changeset
   595
        else
hgs
parents: 45
diff changeset
   596
            {
hgs
parents: 45
diff changeset
   597
            mWidget->setEffect3dEnabled(mSettings->mediaWall3DEffect());
hgs
parents: 45
diff changeset
   598
            }
44
hgs
parents: 43
diff changeset
   599
        setWidget( mWidget );
40
hgs
parents: 26
diff changeset
   600
        addViewConnection();
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   601
    }
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   602
    OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   603
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
40
hgs
parents: 26
diff changeset
   605
void GlxGridView::orientationchanged(Qt::Orientation orient)
hgs
parents: 26
diff changeset
   606
{
54
hgs
parents: 50
diff changeset
   607
    if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
hgs
parents: 50
diff changeset
   608
        hideorshowitems(orient);
hgs
parents: 50
diff changeset
   609
    }
hgs
parents: 50
diff changeset
   610
    showHbItems();
40
hgs
parents: 26
diff changeset
   611
}
54
hgs
parents: 50
diff changeset
   612
40
hgs
parents: 26
diff changeset
   613
void GlxGridView::hideorshowitems(Qt::Orientation orient)
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   614
{
44
hgs
parents: 43
diff changeset
   615
    if ( mWidget && mWidget->selectionMode() == HgWidget::NoSelection ) {
hgs
parents: 43
diff changeset
   616
        if( orient == Qt::Horizontal ) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   617
			setItemVisible(Hb::AllItems, FALSE) ;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   618
        	setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
45
hgs
parents: 44
diff changeset
   619
            showItemCount();
hgs
parents: 44
diff changeset
   620
            if(mUiOnButton == NULL) {
hgs
parents: 44
diff changeset
   621
                mUiOnButton = new HbPushButton(this);
hgs
parents: 44
diff changeset
   622
                connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
hgs
parents: 44
diff changeset
   623
                mUiOnButton->setGeometry(QRectF(590,0,40,40));
hgs
parents: 44
diff changeset
   624
                mUiOnButton->setZValue(1);
hgs
parents: 44
diff changeset
   625
                mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON));
hgs
parents: 44
diff changeset
   626
                mUiOnButton->setObjectName( "UiOn Button" );
40
hgs
parents: 26
diff changeset
   627
            }
45
hgs
parents: 44
diff changeset
   628
            mUiOnButton->show();
44
hgs
parents: 43
diff changeset
   629
        }
hgs
parents: 43
diff changeset
   630
        else {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   631
            showHbItems();
44
hgs
parents: 43
diff changeset
   632
        }
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   633
    }
44
hgs
parents: 43
diff changeset
   634
    else if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
54
hgs
parents: 50
diff changeset
   635
        setItemVisible(Hb::AllItems, FALSE) ;
hgs
parents: 50
diff changeset
   636
        setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   637
        if (mUiOnButton) {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   638
            mUiOnButton->hide();
40
hgs
parents: 26
diff changeset
   639
        }
54
hgs
parents: 50
diff changeset
   640
        if (mTotalImagesCount) {
hgs
parents: 50
diff changeset
   641
            mTotalImagesCount->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   642
        }
54
hgs
parents: 50
diff changeset
   643
        if (mAlbumNameHeading) {
hgs
parents: 50
diff changeset
   644
            mAlbumNameHeading->hide();
40
hgs
parents: 26
diff changeset
   645
        }
54
hgs
parents: 50
diff changeset
   646
        
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   647
        QSize deviceSize = HbDeviceProfile::current().logicalSize();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   648
        QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   649
                                                                       : QSize( deviceSize.height(), deviceSize.width() )  ;
54
hgs
parents: 50
diff changeset
   650
        
hgs
parents: 50
diff changeset
   651
        mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));       
hgs
parents: 50
diff changeset
   652
        mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72));          
hgs
parents: 50
diff changeset
   653
              
hgs
parents: 50
diff changeset
   654
        mMarkSelectHeading->show();
69
hgs
parents: 65
diff changeset
   655
        mMarkingWidget->show();        
hgs
parents: 65
diff changeset
   656
        showMarkedItemCount();        
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   657
    }
40
hgs
parents: 26
diff changeset
   658
}
hgs
parents: 26
diff changeset
   659
hgs
parents: 26
diff changeset
   660
void GlxGridView::scrolltofocus()
hgs
parents: 26
diff changeset
   661
{
hgs
parents: 26
diff changeset
   662
    if(mModelWrapper && mWidget)
hgs
parents: 26
diff changeset
   663
        {
44
hgs
parents: 43
diff changeset
   664
        QVariant variant = mModelWrapper->data( mModelWrapper->index(0,0), GlxFocusIndexRole );
hgs
parents: 43
diff changeset
   665
        if ( variant.isValid() &&  variant.canConvert<int> () )
40
hgs
parents: 26
diff changeset
   666
            {
hgs
parents: 26
diff changeset
   667
            mWidget->scrollTo( mModelWrapper->index( variant.value<int>(),0) );
hgs
parents: 26
diff changeset
   668
            mModel->setData(mModel->index(0,0),variant.value<int>(),GlxVisualWindowIndex);
hgs
parents: 26
diff changeset
   669
            }
hgs
parents: 26
diff changeset
   670
        }
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   671
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
40
hgs
parents: 26
diff changeset
   674
void GlxGridView::addViewConnection()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   675
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ADDVIEWCONNECTION, "GlxGridView::addViewConnection" );
40
hgs
parents: 26
diff changeset
   677
    //connect(mWindow, SIGNAL(aboutToChangeOrientation()), mWidget, SLOT(aboutToChangeOrientation()));
hgs
parents: 26
diff changeset
   678
    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), mWidget, SLOT(orientationChanged(Qt::Orientation)));
hgs
parents: 26
diff changeset
   679
    connect(mWidget, SIGNAL(activated(const QModelIndex &)), SLOT( itemSelected(const QModelIndex &)));
hgs
parents: 26
diff changeset
   680
    connect(mWidget, SIGNAL( scrollingStarted() ), this, SLOT( scrollingStarted() ) );
hgs
parents: 26
diff changeset
   681
    connect(mWidget, SIGNAL( scrollingEnded() ), this, SLOT( scrollingEnded() ) );
hgs
parents: 26
diff changeset
   682
    connect(mWidget, SIGNAL(longPressed(const QModelIndex &, QPointF)), SLOT( indicateLongPress(const QModelIndex &, QPointF) ) );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   683
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
void GlxGridView::removeViewConnection ()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   686
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_REMOVEVIEWCONNECTION, "GlxGridView::removeViewConnection" );
40
hgs
parents: 26
diff changeset
   688
    if(mWidget)
hgs
parents: 26
diff changeset
   689
        {
hgs
parents: 26
diff changeset
   690
        //disconnect(mWindow, SIGNAL(aboutToChangeOrientation()), mWidget, SLOT(aboutToChangeOrientation()));
hgs
parents: 26
diff changeset
   691
        disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), mWidget, SLOT(orientationChanged(Qt::Orientation)));
hgs
parents: 26
diff changeset
   692
        disconnect(mWidget, SIGNAL(activated(const QModelIndex &)),this, SLOT( itemSelected(const QModelIndex &)));
hgs
parents: 26
diff changeset
   693
        disconnect(mWidget, SIGNAL( scrollingStarted() ), this, SLOT( scrollingStarted() ) );
hgs
parents: 26
diff changeset
   694
        disconnect(mWidget, SIGNAL( scrollingEnded() ), this, SLOT( scrollingEnded() ) );
hgs
parents: 26
diff changeset
   695
        disconnect(mWidget,  SIGNAL(longPressed(const QModelIndex &, QPointF)),this, SLOT( indicateLongPress(const QModelIndex &, QPointF) ) );
hgs
parents: 26
diff changeset
   696
        }
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   697
}
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   698
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
void GlxGridView::itemSelected(const QModelIndex &  index)
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   701
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
    OstTrace1( TRACE_NORMAL, GLXGRIDVIEW_ITEMSELECTED, "GlxGridView::itemSelected;index=%d", index.row() );
44
hgs
parents: 43
diff changeset
   703
    if ( mWidget->selectionMode() == HgWidget::MultiSelection ) {
26
c499df2dbb33 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 24
diff changeset
   704
        return ;
44
hgs
parents: 43
diff changeset
   705
    }
hgs
parents: 43
diff changeset
   706
    OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" );
hgs
parents: 43
diff changeset
   707
    if ( mModel ) {
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
        mModel->setData( index, index.row(), GlxFocusIndexRole );
44
hgs
parents: 43
diff changeset
   709
    }
54
hgs
parents: 50
diff changeset
   710
    if(XQServiceUtil::isService()){
hgs
parents: 50
diff changeset
   711
        qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" );
hgs
parents: 50
diff changeset
   712
        emit actionTriggered( EGlxCmdFetcherSelect );
hgs
parents: 50
diff changeset
   713
        return;
hgs
parents: 50
diff changeset
   714
    }
44
hgs
parents: 43
diff changeset
   715
    emit actionTriggered( EGlxCmdFullScreenOpen );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   716
    OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   717
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
40
hgs
parents: 26
diff changeset
   719
void GlxGridView::scrollingStarted()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   720
{
54
hgs
parents: 50
diff changeset
   721
    if ((mWindow->orientation() == Qt::Horizontal)/* && mWidget->selectionMode() == HgWidget::NoSelection*/)
40
hgs
parents: 26
diff changeset
   722
        {
hgs
parents: 26
diff changeset
   723
        setItemVisible(Hb::AllItems, FALSE) ;
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   724
        setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   725
        if (mUiOnButton)
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   726
            {
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   727
            mUiOnButton->hide();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   728
            }
54
hgs
parents: 50
diff changeset
   729
		if (mTotalImagesCount) {
hgs
parents: 50
diff changeset
   730
			mTotalImagesCount->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   731
		}
54
hgs
parents: 50
diff changeset
   732
		if (mAlbumNameHeading) {
hgs
parents: 50
diff changeset
   733
            mAlbumNameHeading->hide();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   734
		}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   735
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   736
40
hgs
parents: 26
diff changeset
   737
    mScrolling = TRUE;
hgs
parents: 26
diff changeset
   738
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
40
hgs
parents: 26
diff changeset
   740
void GlxGridView::scrollingEnded()
hgs
parents: 26
diff changeset
   741
{
hgs
parents: 26
diff changeset
   742
    mScrolling = FALSE;
65
hgs
parents: 58
diff changeset
   743
    if ( mUiOnButton && ( mWindow->orientation() == Qt::Horizontal ) ) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   744
        mUiOnButton->show();
65
hgs
parents: 58
diff changeset
   745
    }
hgs
parents: 58
diff changeset
   746
    
40
hgs
parents: 26
diff changeset
   747
    QList<QModelIndex> visibleIndex = mWidget->getVisibleItemIndices();
65
hgs
parents: 58
diff changeset
   748
    if ( visibleIndex.count() <= 0 ) {
40
hgs
parents: 26
diff changeset
   749
        return;
65
hgs
parents: 58
diff changeset
   750
    }
40
hgs
parents: 26
diff changeset
   751
    QModelIndex index = visibleIndex.at(0);
65
hgs
parents: 58
diff changeset
   752
hgs
parents: 58
diff changeset
   753
    if(mModel) {
hgs
parents: 58
diff changeset
   754
        if ( index.row() < 0 || index.row() >= mModel->rowCount() ) {
hgs
parents: 58
diff changeset
   755
            return;
44
hgs
parents: 43
diff changeset
   756
        }
65
hgs
parents: 58
diff changeset
   757
        mModel->setData( index, index.row(), GlxVisualWindowIndex );
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   758
        mModel->setData( index, index.row(), GlxFocusIndexRole );
65
hgs
parents: 58
diff changeset
   759
    }
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   760
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
GlxGridView::~GlxGridView()
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   763
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   764
    OstTraceFunctionEntry0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   765
    removeViewConnection();
40
hgs
parents: 26
diff changeset
   766
    if(mSelectionModel)
hgs
parents: 26
diff changeset
   767
        {
hgs
parents: 26
diff changeset
   768
        disconnect(mSelectionModel, SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(visibleIndexChanged(const QModelIndex &, const QModelIndex &)));
hgs
parents: 26
diff changeset
   769
        delete mSelectionModel;
hgs
parents: 26
diff changeset
   770
        }
hgs
parents: 26
diff changeset
   771
    delete mWidget;
hgs
parents: 26
diff changeset
   772
    delete mModelWrapper;
hgs
parents: 26
diff changeset
   773
    if(mUiOnButton) {
hgs
parents: 26
diff changeset
   774
        disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
hgs
parents: 26
diff changeset
   775
        delete mUiOnButton;
hgs
parents: 26
diff changeset
   776
    }
54
hgs
parents: 50
diff changeset
   777
    
40
hgs
parents: 26
diff changeset
   778
    delete mIconItem;
54
hgs
parents: 50
diff changeset
   779
    delete mTotalImagesCount;
hgs
parents: 50
diff changeset
   780
    delete mAlbumNameHeading;
hgs
parents: 50
diff changeset
   781
    delete mMarkSelectHeading;
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   782
    delete mMarkCheckBox;
54
hgs
parents: 50
diff changeset
   783
    delete mMarkCountLabel;
hgs
parents: 50
diff changeset
   784
    delete mMarkingWidget;
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   785
    delete mZeroItemLabel;
65
hgs
parents: 58
diff changeset
   786
    delete mToolBar;
54
hgs
parents: 50
diff changeset
   787
    
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
    OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   789
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
40
hgs
parents: 26
diff changeset
   791
void GlxGridView::indicateLongPress(const QModelIndex& index, QPointF coords)
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   792
{
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_INDICATELONGPRESS, "GlxGridView::indicateLongPress" );
44
hgs
parents: 43
diff changeset
   794
40
hgs
parents: 26
diff changeset
   795
     if ( mWidget->selectionMode() == HgWidget::MultiSelection )
44
hgs
parents: 43
diff changeset
   796
         {
40
hgs
parents: 26
diff changeset
   797
         return;
44
hgs
parents: 43
diff changeset
   798
         }
hgs
parents: 43
diff changeset
   799
     if ( mModel )
40
hgs
parents: 26
diff changeset
   800
         {
hgs
parents: 26
diff changeset
   801
         mModel->setData( index, index.row(), GlxFocusIndexRole );
44
hgs
parents: 43
diff changeset
   802
         }
40
hgs
parents: 26
diff changeset
   803
     emit itemSpecificMenuTriggered(viewId(),coords);
hgs
parents: 26
diff changeset
   804
}
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   805
40
hgs
parents: 26
diff changeset
   806
void GlxGridView::uiButtonClicked(bool /*checked*/)
hgs
parents: 26
diff changeset
   807
{
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   808
    showHbItems();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   809
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   810
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   811
void GlxGridView::showHbItems()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   812
{
54
hgs
parents: 50
diff changeset
   813
    if(mWidget && mWidget->selectionMode() == HgWidget::NoSelection) {
hgs
parents: 50
diff changeset
   814
        setItemVisible( Hb::TitleBarItem, TRUE );
hgs
parents: 50
diff changeset
   815
        setItemVisible( Hb::StatusBarItem, TRUE );
hgs
parents: 50
diff changeset
   816
        setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden);
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   817
        showItemCount();
54
hgs
parents: 50
diff changeset
   818
    }    
hgs
parents: 50
diff changeset
   819
    updateToolBar();
hgs
parents: 50
diff changeset
   820
    if (mUiOnButton) {
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   821
        mUiOnButton->hide();
54
hgs
parents: 50
diff changeset
   822
    }
24
99ad1390cd33 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   823
}
40
hgs
parents: 26
diff changeset
   824
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   825
void GlxGridView::cameraButtonClicked(bool /*checked*/)
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   826
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   827
    emit actionTriggered(EGlxCmdCameraOpen);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   828
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   829
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   830
int GlxGridView::getSubState()
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   831
{
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   832
    int substate = NO_GRID_S;
54
hgs
parents: 50
diff changeset
   833
    if ( mModel ) {
hgs
parents: 50
diff changeset
   834
        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
hgs
parents: 50
diff changeset
   835
        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
hgs
parents: 50
diff changeset
   836
            substate = variant.value<int>();
hgs
parents: 50
diff changeset
   837
        }
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   838
    }
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   839
    return substate;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   840
}
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   841
54
hgs
parents: 50
diff changeset
   842
void GlxGridView::updateToolBar()
hgs
parents: 50
diff changeset
   843
{
hgs
parents: 50
diff changeset
   844
    //In the case of multiselection show the tool bar.
hgs
parents: 50
diff changeset
   845
    if ( mWidget && mWidget->selectionMode() == HgWidget::MultiSelection ) {
hgs
parents: 50
diff changeset
   846
        setItemVisible( Hb::ToolBarItem, TRUE ) ;
hgs
parents: 50
diff changeset
   847
        return ;
hgs
parents: 50
diff changeset
   848
    }
hgs
parents: 50
diff changeset
   849
    
65
hgs
parents: 58
diff changeset
   850
    //In the case of fetcher, there is no tool bar for album grid view
54
hgs
parents: 50
diff changeset
   851
    int subState = getSubState();
65
hgs
parents: 58
diff changeset
   852
    if ( subState == FETCHER_ALBUM_ITEM_S ) {
54
hgs
parents: 50
diff changeset
   853
        setItemVisible( Hb::ToolBarItem, FALSE ) ;
hgs
parents: 50
diff changeset
   854
    }
hgs
parents: 50
diff changeset
   855
    else {
hgs
parents: 50
diff changeset
   856
        setItemVisible( Hb::ToolBarItem, TRUE );
hgs
parents: 50
diff changeset
   857
    }
hgs
parents: 50
diff changeset
   858
}
hgs
parents: 50
diff changeset
   859
65
hgs
parents: 58
diff changeset
   860
void GlxGridView::createAlbumGridToolBar()
hgs
parents: 58
diff changeset
   861
{
hgs
parents: 58
diff changeset
   862
    mToolBar = new HbToolBar();
hgs
parents: 58
diff changeset
   863
    mToolBar->setOrientation( Qt::Horizontal );
hgs
parents: 58
diff changeset
   864
    mToolBar->setVisible(true);
hgs
parents: 58
diff changeset
   865
    mToolBar->clearActions();
hgs
parents: 58
diff changeset
   866
    
hgs
parents: 58
diff changeset
   867
    HbAction *action = new HbAction();
hgs
parents: 58
diff changeset
   868
    action->setData( EGlxCmdAddToAlbum );
hgs
parents: 58
diff changeset
   869
    action->setIcon( HbIcon( GLXICON_ADD ) );
hgs
parents: 58
diff changeset
   870
    action->setObjectName( "Add Action" );
hgs
parents: 58
diff changeset
   871
    mToolBar->addAction( action );
hgs
parents: 58
diff changeset
   872
    connect( action, SIGNAL( triggered( ) ), this, SLOT( handleToolBarAction( ) ) );
hgs
parents: 58
diff changeset
   873
    
hgs
parents: 58
diff changeset
   874
    action = new HbAction();
hgs
parents: 58
diff changeset
   875
    action->setData( EGlxCmdRemoveFrom );
hgs
parents: 58
diff changeset
   876
    action->setIcon( HbIcon( GLXICON_REMOVE ) );
hgs
parents: 58
diff changeset
   877
    action->setObjectName( "Remove Action" );
hgs
parents: 58
diff changeset
   878
    mToolBar->addAction( action );
hgs
parents: 58
diff changeset
   879
    connect( action, SIGNAL( triggered( ) ), this, SLOT( handleToolBarAction( ) ) );
hgs
parents: 58
diff changeset
   880
}
hgs
parents: 58
diff changeset
   881