ui/views/gridview/inc/glxgridview.h
author hgs
Thu, 14 Oct 2010 17:54:23 +0530
changeset 72 0a8e959402e5
parent 65 ccee5c4b0de4
permissions -rw-r--r--
201041
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
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#ifndef GLXGRIDVIEW_H
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#define GLXGRIDVIEW_H
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "glxview.h"
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
//Qt/Orbit forward declarations
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
class HbMainWindow;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
class QAbstractItemModel;
50
hgs
parents: 45
diff changeset
    29
class HgGrid;
40
hgs
parents: 26
diff changeset
    30
class GlxModelWrapper;
hgs
parents: 26
diff changeset
    31
class HbPushButton;
hgs
parents: 26
diff changeset
    32
class HbIconItem;
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    33
class HbCheckBox;
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    34
class HbLabel;
50
hgs
parents: 45
diff changeset
    35
class GlxSettingInterface;
54
hgs
parents: 50
diff changeset
    36
class HbGroupBox;
hgs
parents: 50
diff changeset
    37
class QGraphicsLinearLayout;
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
class GlxGridView : public GlxView
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
{
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    Q_OBJECT
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
public :
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    GlxGridView(HbMainWindow *window);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    ~GlxGridView();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    void activate() ;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    void deActivate();
50
hgs
parents: 45
diff changeset
    48
    void initializeView( QAbstractItemModel *model, GlxView *preView );
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
    void setModel(QAbstractItemModel *model);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
    void addToolBar( HbToolBar *toolBar );
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
    void enableMarking() ;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
    void disableMarking() ;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
    void handleUserAction(qint32 commandId); 
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
    QItemSelectionModel * getSelectionModel() ;
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
    QGraphicsItem * getAnimationItem(GlxEffect transitionEffect);
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
public slots:
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
    void itemSelected(const QModelIndex &  index);
40
hgs
parents: 26
diff changeset
    59
    void scrollingEnded();
hgs
parents: 26
diff changeset
    60
    void scrollingStarted();
hgs
parents: 26
diff changeset
    61
    void orientationchanged(Qt::Orientation orient);
hgs
parents: 26
diff changeset
    62
    void visibleIndexChanged(const QModelIndex& current, const QModelIndex& previous);
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    63
    void stateChanged(int state);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    64
    //show the marked item count
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    65
    void showMarkedItemCount();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    66
    //show item count in the grid
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    67
    void showItemCount();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    68
    //clear all the model connection
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    69
    void clearCurrentModel();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    70
    //add the connection to the model
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    71
    void initializeNewModel();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    72
    void showAlbumTitle(QString aTitle);
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    73
    void populated();
65
hgs
parents: 54
diff changeset
    74
    
hgs
parents: 54
diff changeset
    75
    /**
hgs
parents: 54
diff changeset
    76
     * rowsInserted() - call back of new row inserted in the model.
hgs
parents: 54
diff changeset
    77
     */    
hgs
parents: 54
diff changeset
    78
    void rowsInserted();
hgs
parents: 54
diff changeset
    79
    
hgs
parents: 54
diff changeset
    80
    /**
hgs
parents: 54
diff changeset
    81
     * rowsRemoved() - call back of new row removed in the model.
hgs
parents: 54
diff changeset
    82
     */    
hgs
parents: 54
diff changeset
    83
    void rowsRemoved( );
hgs
parents: 54
diff changeset
    84
    
hgs
parents: 54
diff changeset
    85
    /**
hgs
parents: 54
diff changeset
    86
     * rowsRemoved() - call back to handle the user action in album grid view toolbar.
hgs
parents: 54
diff changeset
    87
     */ 
hgs
parents: 54
diff changeset
    88
    void handleToolBarAction();    
40
hgs
parents: 26
diff changeset
    89
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
protected :
45
hgs
parents: 44
diff changeset
    91
   
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
private slots:
40
hgs
parents: 26
diff changeset
    94
    void indicateLongPress(const QModelIndex& index, QPointF coords);
hgs
parents: 26
diff changeset
    95
    void uiButtonClicked(bool checked);
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
    96
    void cameraButtonClicked(bool checked);
23
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
private:
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    void addViewConnection();
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    void removeViewConnection();
40
hgs
parents: 26
diff changeset
   101
    void hideorshowitems(Qt::Orientation orient);
hgs
parents: 26
diff changeset
   102
    void scrolltofocus();
hgs
parents: 26
diff changeset
   103
    void loadGridView();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   104
    void showHbItems();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   105
    int getSubState();
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   106
    void showNoImageString();
54
hgs
parents: 50
diff changeset
   107
    
hgs
parents: 50
diff changeset
   108
    //It is used to hide and show the toolbar
hgs
parents: 50
diff changeset
   109
    //In album grid it is not required to show the tool bar
hgs
parents: 50
diff changeset
   110
    void updateToolBar();
65
hgs
parents: 54
diff changeset
   111
	
hgs
parents: 54
diff changeset
   112
	/**
hgs
parents: 54
diff changeset
   113
     * createAlbumGridToolBar() - Create a new album grid view toolbar.
hgs
parents: 54
diff changeset
   114
     */ 
hgs
parents: 54
diff changeset
   115
    void createAlbumGridToolBar();
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   116
40
hgs
parents: 26
diff changeset
   117
	HbMainWindow        *mWindow;          // no ownership
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
	QAbstractItemModel  *mModel ;
50
hgs
parents: 45
diff changeset
   119
	HgGrid              *mWidget;          // HG Grid Widget
40
hgs
parents: 26
diff changeset
   120
	QItemSelectionModel *mSelectionModel;  // Selected items model
hgs
parents: 26
diff changeset
   121
    GlxModelWrapper     *mModelWrapper;    // Temp Model Wrapper, so That Role Change not a problem
54
hgs
parents: 50
diff changeset
   122
    HbPushButton        *mUiOnButton;    
40
hgs
parents: 26
diff changeset
   123
    bool                 mScrolling;
hgs
parents: 26
diff changeset
   124
    HbIconItem          *mIconItem;
72
hgs
parents: 65
diff changeset
   125
    HbIconItem          *mBackGroundItem;
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   126
    HbCheckBox          *mMarkCheckBox;    // Mark All checkbox 
72
hgs
parents: 65
diff changeset
   127
    HbGroupBox          *mTotalImagesCountGrpBox;       // Item count of the grid
54
hgs
parents: 50
diff changeset
   128
    HbGroupBox          *mMarkSelectHeading;    
hgs
parents: 50
diff changeset
   129
    HbLabel             *mMarkCountLabel;      // Marked item count
42
5e1df1b52eb3 201019_01
hgs
parents: 40
diff changeset
   130
    HbLabel             *mZeroItemLabel;   // zero itemcount
54
hgs
parents: 50
diff changeset
   131
    QGraphicsLinearLayout *mMarkContainer;
hgs
parents: 50
diff changeset
   132
    GlxSettingInterface *mSettings;    
65
hgs
parents: 54
diff changeset
   133
    HbWidget            *mMarkingWidget;
hgs
parents: 54
diff changeset
   134
    HbToolBar           *mToolBar;   //This toolbar is used for album grid
hgs
parents: 54
diff changeset
   135
    //no ownership only pointed to the current toolbar, this view have three toolbar
hgs
parents: 54
diff changeset
   136
    //View manager has ownership of two tool bar and above one is ownership by itself.
hgs
parents: 54
diff changeset
   137
    // This variable is required to tackle the complexity of these three tool bar
hgs
parents: 54
diff changeset
   138
    HbToolBar           *mCurrentToolBar;  
23
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
};
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
74c9f037fd5d Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
#endif /* GLXGRIDVIEW_H_ */