ui/views/gridview/src/glxgridview.cpp
changeset 24 99ad1390cd33
parent 23 74c9f037fd5d
child 26 c499df2dbb33
equal deleted inserted replaced
23:74c9f037fd5d 24:99ad1390cd33
    41 #include "OstTraceDefinitions.h"
    41 #include "OstTraceDefinitions.h"
    42 #ifdef OST_TRACE_COMPILER_IN_USE
    42 #ifdef OST_TRACE_COMPILER_IN_USE
    43 #include "glxgridviewTraces.h"
    43 #include "glxgridviewTraces.h"
    44 #endif
    44 #endif
    45 
    45 
    46 GlxGridView::GlxGridView(HbMainWindow *window) : GlxView ( GLX_GRIDVIEW_ID ), 
    46 GlxGridView::GlxGridView(HbMainWindow *window) 
    47              mGridView(NULL), mView(NULL), mWindow(window), mModel ( NULL), mVisualIndex(0),
    47     : GlxView ( GLX_GRIDVIEW_ID ), 
    48              mItem(NULL)
    48       mGridView(NULL), 
    49     {
    49       mView(NULL), 
       
    50       mWindow(window), 
       
    51       mModel ( NULL), 
       
    52       mVisualIndex(0),
       
    53       mItem(NULL)
       
    54 {
    50     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
    55     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
    51     mDocLoader = new HbDocumentLoader();
    56     mDocLoader = new HbDocumentLoader();
    52     OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
    57     OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
    53 	setContentFullScreen( true );
    58 	setContentFullScreen( true );
    54     }
    59 }
    55 
    60 
    56 void GlxGridView::activate()
    61 void GlxGridView::activate()
    57     {
    62 {
    58     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
    63     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
    59 
       
    60     loadGridView(mWindow->orientation());
    64     loadGridView(mWindow->orientation());
    61     addViewConnection();
    65     addViewConnection();           
    62     //   mVisualIndex = 0; //To:Do remove later once we get visual index change notification from grid view
       
    63 
       
    64 
       
    65 
       
    66     mGridView->resetTransform(); //to reset the transition effect (reset transform matrix)
    66     mGridView->resetTransform(); //to reset the transition effect (reset transform matrix)
    67     mGridView->setOpacity( 1);
    67     mGridView->setOpacity( 1);
    68 
    68     resetItemTransform();
    69     if ( mItem ) {
       
    70     mItem->resetTransform(); //to reset the transition effect (reset transform matrix)
       
    71     mItem->setOpacity( 1);
       
    72     mItem->setZValue( mItem->zValue() - 20);
       
    73     disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
       
    74     mItem = NULL;
       
    75     }
       
    76     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
    69     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
    77     }
    70 }
    78 
    71 
    79 void GlxGridView::deActivate()
    72 void GlxGridView::deActivate()
    80     {
    73 {
    81     OstTraceFunctionEntry0( GLXGRIDVIEW_DEACTIVATE_ENTRY );
    74     OstTraceFunctionEntry0( GLXGRIDVIEW_DEACTIVATE_ENTRY );
    82     removeViewConnection();
    75     removeViewConnection();
    83 
       
    84 
       
    85     /*if ( mItem ) {
       
    86         mItem->resetTransform(); //to reset the transition effect
       
    87         mItem->setOpacity( 1);
       
    88         disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
       
    89         mItem = NULL; 
       
    90     }*/
       
    91     takeToolBar(); //To:Do improved later
       
    92     emit toolBarChanged();
       
    93     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
    76     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
    94     }
    77 }
       
    78 
       
    79 void GlxGridView::initializeView(QAbstractItemModel *model)
       
    80 {
       
    81     resetItemTransform();
       
    82     mGridView->setModel(model);
       
    83     mModel = model;
       
    84     loadGridView(mWindow->orientation());
       
    85     QVariant variant = model->data( model->index(0,0), GlxFocusIndexRole );    
       
    86     if ( variant.isValid() &&  variant.canConvert<int> () ) {
       
    87         mGridView->scrollTo( model->index( variant.value<int>(),0), HbGridView::EnsureVisible );
       
    88     }
       
    89 }
    95 
    90 
    96 void GlxGridView::setModel(QAbstractItemModel *model) 
    91 void GlxGridView::setModel(QAbstractItemModel *model) 
    97     {
    92 {
    98     OstTraceFunctionEntry0( GLXGRIDVIEW_SETMODEL_ENTRY );
    93     OstTraceFunctionEntry0( GLXGRIDVIEW_SETMODEL_ENTRY );
    99 
       
   100     mModel =  model ;
    94     mModel =  model ;
   101     mGridView->setModel(mModel);
    95     mGridView->setModel(mModel);
   102     QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
    96     QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
   103     if ( variant.isValid() &&  variant.canConvert<int> () ) {
    97     if ( variant.isValid() &&  variant.canConvert<int> () ) {
   104     mGridView->scrollTo( mModel->index( variant.value<int>(),0), HbGridView::PositionAtCenter );
    98         mGridView->scrollTo( mModel->index( variant.value<int>(),0), HbGridView::EnsureVisible );
   105     }  
    99     }
   106     
       
   107     OstTraceFunctionExit0( GLXGRIDVIEW_SETMODEL_EXIT );
   100     OstTraceFunctionExit0( GLXGRIDVIEW_SETMODEL_EXIT );
   108     }
   101 }
   109 
   102 
   110 void GlxGridView::addToolBar( HbToolBar *toolBar ) 
   103 void GlxGridView::addToolBar( HbToolBar *toolBar ) 
   111     {
   104 {
   112     OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY );
   105     OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY );     
   113     //toolBar->setParent(this); 
       
   114     if ( mGridView ) {
       
   115         toolBar->setZValue(mGridView->zValue());
       
   116     }
       
   117     setToolBar(toolBar) ;
   106     setToolBar(toolBar) ;
   118     OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT );
   107     OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT );
   119     }
   108 }
   120 
   109 
   121 void GlxGridView::enableMarking()
   110 void GlxGridView::enableMarking()
   122     {
   111 {
   123     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
   112     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
   124     mGridView->setSelectionMode(HbGridView::MultiSelection);
   113     mGridView->setSelectionMode(HbGridView::MultiSelection);
   125     }
   114 }
   126 
   115 
   127 void GlxGridView::disableMarking() 
   116 void GlxGridView::disableMarking() 
   128     {
   117 {
   129     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
   118     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
   130     mGridView->setSelectionMode(HbGridView::NoSelection);
   119     mGridView->setSelectionMode(HbGridView::NoSelection);
   131     }
   120 }
   132 
   121 
   133 void GlxGridView::handleUserAction(qint32 commandId)
   122 void GlxGridView::handleUserAction(qint32 commandId)
   134     {
   123 {
   135     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::handleUserAction" );
   124     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::handleUserAction" );
   136     switch( commandId ){
   125     switch( commandId ){
   137         case EGlxCmdMarkAll :
   126         case EGlxCmdMarkAll :
   138             mGridView->selectAll();
   127             mGridView->selectAll();
   139             break;
   128             break;
   140 
   129 
   141         case EGlxCmdUnMarkAll :
   130         case EGlxCmdUnMarkAll :
   142             mGridView->clearSelection();
   131             mGridView->clearSelection();
   143             break;
   132             break;
   144 
   133 
   145         case EGlxCmdSend:
   134         
   146             {
       
   147             OstTrace0( TRACE_NORMAL, DUP1_GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::handleUserAction-SendUI" );
       
   148             
       
   149             QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>()
       
   150                     ,0),GlxUriRole)).value<QString>();
       
   151 
       
   152             if(imagePath.isNull())
       
   153                 {
       
   154                 OstTrace0( TRACE_NORMAL, DUP2_GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::SendUi path is NULL" );
       
   155                 }
       
   156             qDebug() << "GlxGridView::SendUi() imagePath= " << imagePath;
       
   157 
       
   158             ShareUi dialog;
       
   159             QList <QVariant> fileList;
       
   160             fileList.append(QVariant(imagePath));
       
   161             dialog.init(fileList,true);
       
   162             }
       
   163             break;
       
   164 
   135 
   165         default :
   136         default :
   166             break;
   137             break;
   167     }    
   138     }    
   168     }
   139 }
   169 
   140 
   170 QItemSelectionModel * GlxGridView::getSelectionModel()
   141 QItemSelectionModel * GlxGridView::getSelectionModel()
   171     {
   142 {
   172     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_GETSELECTIONMODEL, "GlxGridView::getSelectionModel" );
   143     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_GETSELECTIONMODEL, "GlxGridView::getSelectionModel" );
   173     return mGridView->selectionModel();    
   144     return mGridView->selectionModel();    
   174     }
   145 }
   175 
   146 
   176 QGraphicsItem * GlxGridView::getAnimationItem(GlxEffect transitionEffect)
   147 QGraphicsItem * GlxGridView::getAnimationItem(GlxEffect transitionEffect)
   177     {
   148 {
   178     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
   149     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
   179     int selIndex = -1;
   150     int selIndex = -1;
   180 
   151 
   181     if ( transitionEffect == FULLSCREEN_TO_GRID ) {
   152     if ( transitionEffect == FULLSCREEN_TO_GRID ) {
   182     return mGridView;
   153         return mGridView;
   183     }
   154     }
   184 
   155 
   185     if ( transitionEffect == GRID_TO_FULLSCREEN ) {
   156     if ( transitionEffect == GRID_TO_FULLSCREEN ) {
   186     QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
   157         QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
   187     if ( variant.isValid() &&  variant.canConvert<int> () ) {
   158         if ( variant.isValid() &&  variant.canConvert<int> () ) {
   188     selIndex = variant.value<int>();  
   159             selIndex = variant.value<int>();  
   189     }  
   160         }  
   190 
   161     
   191     mItem = mGridView->itemByIndex( mModel->index(selIndex,0) );
   162         mItem = mGridView->itemByIndex( mModel->index(selIndex,0) );
   192     connect(mItem, SIGNAL(destroyed()), this, SLOT( itemDestroyed()));
   163         connect(mItem, SIGNAL(destroyed()), this, SLOT( itemDestroyed()));
   193     mItem->setZValue( mItem->zValue() + 20); 
   164         mItem->setZValue( mItem->zValue() + 20); 
   194     return mItem;
   165         return mItem;
   195     }
   166     }
   196 
   167 
   197     if ( transitionEffect == GRID_TO_ALBUMLIST  || transitionEffect == ALBUMLIST_TO_GRID ){
   168     if ( transitionEffect == GRID_TO_ALBUMLIST  || transitionEffect == ALBUMLIST_TO_GRID ){
   198     return mGridView;
   169         return mGridView;
   199     }
   170     }
   200     return NULL;
       
   201     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
   171     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
   202     }
   172     return NULL;    
       
   173 }
   203 
   174 
   204 void GlxGridView::loadGridView(Qt::Orientation orient)
   175 void GlxGridView::loadGridView(Qt::Orientation orient)
   205     {
   176 {
   206     OstTraceFunctionEntry0( GLXGRIDVIEW_LOADGRIDVIEW_ENTRY );
   177     OstTraceFunctionEntry0( GLXGRIDVIEW_LOADGRIDVIEW_ENTRY );
   207     bool loaded = true;
   178     bool loaded = true;
   208     QString section;
   179     QString section;
       
   180     GlxContextMode mode ;
       
   181     
   209     //Load the widgets accroding to the current Orientation
   182     //Load the widgets accroding to the current Orientation
   210     if(orient == Qt::Horizontal)
   183     if(orient == Qt::Horizontal) {
   211         {
       
   212         section = GLX_GRIDVIEW_LSSECTION ;
   184         section = GLX_GRIDVIEW_LSSECTION ;
   213         }
   185         mode = GlxContextLsGrid ;
   214     else
   186     }
   215         {
   187     else {
   216         section = GLX_GRIDVIEW_PTSECTION ;
   188         section = GLX_GRIDVIEW_PTSECTION ;
   217         }
   189         mode = GlxContextPtGrid ;
   218 
   190     }
   219     if (mGridView == NULL )
   191 
   220         {       
   192     if (mGridView == NULL ) {       
   221         mDocLoader->load(GLX_GRIDVIEW_DOCMLPATH,&loaded);
   193         mDocLoader->load(GLX_GRIDVIEW_DOCMLPATH,&loaded);
   222         if(loaded)
   194         if(loaded) {
   223             {
       
   224             //retrieve the widgets            
   195             //retrieve the widgets            
   225             mView = static_cast<HbView*>(mDocLoader->findWidget(QString(GLX_GRIDVIEW_VIEW)));
   196             mView = static_cast<HbView*>(mDocLoader->findWidget(QString(GLX_GRIDVIEW_VIEW)));
   226             mGridView = static_cast<HbGridView*>(mDocLoader->findWidget(GLX_GRIDVIEW_GRID)); 
   197             mGridView = static_cast<HbGridView*>(mDocLoader->findWidget(GLX_GRIDVIEW_GRID)); 
   227             setWidget( mView );
   198             setWidget( mView );
   228             }
   199             mGridView->setLayoutName( QString( "GridView" ) );
   229         }
   200         }
       
   201     }
   230     //Load the Sections
   202     //Load the Sections
   231     mDocLoader->load(GLX_GRIDVIEW_DOCMLPATH,section,&loaded); 
   203     mDocLoader->load(GLX_GRIDVIEW_DOCMLPATH,section,&loaded); 
       
   204     
       
   205     if ( mModel ) {        
       
   206         mModel->setData(QModelIndex(), (int)mode, GlxContextRole );
       
   207     }
   232     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
   208     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
   233     }
   209 }
   234 
   210 
   235 void GlxGridView::itemDestroyed()
   211 void GlxGridView::itemDestroyed()
   236     {
   212 {
   237     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMDESTROYED, "GlxGridView::itemDestroyed" );
   213     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMDESTROYED, "GlxGridView::itemDestroyed" );
   238     disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
   214     disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
   239     mItem = NULL;    
   215     mItem = NULL;    
   240     }
   216 }
   241 
   217 
   242 QVariant  GlxGridView::itemChange (GraphicsItemChange change, const QVariant &value) 
   218 QVariant  GlxGridView::itemChange (GraphicsItemChange change, const QVariant &value) 
   243     {
   219     {
   244     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" );
   220     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" );
   245     
   221     
   251     }
   227     }
   252     return HbWidget::itemChange(change, value);
   228     return HbWidget::itemChange(change, value);
   253     }
   229     }
   254 
   230 
   255 void GlxGridView::addViewConnection ()
   231 void GlxGridView::addViewConnection ()
   256     {
   232 {
   257     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ADDVIEWCONNECTION, "GlxGridView::addViewConnection" );
   233     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ADDVIEWCONNECTION, "GlxGridView::addViewConnection" );
   258     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(loadGridView(Qt::Orientation)));
   234     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(loadGridView(Qt::Orientation)));
   259     connect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SLOT( itemSelected(const QModelIndex &)));
   235     connect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SLOT( itemSelected(const QModelIndex &)));
   260     connect( mGridView, SIGNAL( scrollingEnded() ), this, SLOT( setVisvalWindowIndex() ) );
   236     connect( mGridView, SIGNAL( scrollingEnded() ), this, SLOT( setVisvalWindowIndex() ) );
   261     if(XQServiceUtil::isService()){
   237     if(XQServiceUtil::isService()){
   262     connect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SIGNAL( gridItemSelected(const QModelIndex &)));
   238         connect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SIGNAL( gridItemSelected(const QModelIndex &)));
   263     }
   239     }
   264     //    connect(mGridView, SIGNAL(scrollPositionChange(QPointF , Qt::Orientations)), this, SLOT( scrollPositionChange(QPointF, Qt::Orientations)));
       
   265     connect(mGridView, SIGNAL(longPressed( HbAbstractViewItem*, QPointF )),this, SLOT( indicateLongPress( HbAbstractViewItem*, QPointF ) ) );
   240     connect(mGridView, SIGNAL(longPressed( HbAbstractViewItem*, QPointF )),this, SLOT( indicateLongPress( HbAbstractViewItem*, QPointF ) ) );
   266     }
   241 }
   267 
   242 
   268 void GlxGridView::removeViewConnection ()
   243 void GlxGridView::removeViewConnection ()
   269     {
   244 {
   270     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_REMOVEVIEWCONNECTION, "GlxGridView::removeViewConnection" );
   245     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_REMOVEVIEWCONNECTION, "GlxGridView::removeViewConnection" );
   271     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
   246     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(loadGridView(Qt::Orientation)));
   272     disconnect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SLOT( itemSelected(const QModelIndex &)));
   247     disconnect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SLOT( itemSelected(const QModelIndex &)));
   273     disconnect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SIGNAL( gridItemSelected(const QModelIndex &)));
   248     disconnect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SIGNAL( gridItemSelected(const QModelIndex &)));
   274     disconnect( mGridView, SIGNAL( scrollingEnded() ), this, SLOT( setVisvalWindowIndex() ) );
   249     disconnect( mGridView, SIGNAL( scrollingEnded() ), this, SLOT( setVisvalWindowIndex() ) );
   275     disconnect(mGridView, SIGNAL(longPressed( HbAbstractViewItem*, QPointF )),this, SLOT( indicateLongPress( HbAbstractViewItem*, QPointF ) ) );
   250     disconnect(mGridView, SIGNAL(longPressed( HbAbstractViewItem*, QPointF )),this, SLOT( indicateLongPress( HbAbstractViewItem*, QPointF ) ) );
   276     }
   251 }
       
   252 
       
   253 void GlxGridView::resetItemTransform()
       
   254 {
       
   255     if ( mItem ) {
       
   256         mItem->resetTransform(); //to reset the transition effect (reset transform matrix)
       
   257         mItem->setOpacity( 1);
       
   258         mItem->setZValue( mItem->zValue() - 20);
       
   259         disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
       
   260         mItem = NULL;
       
   261     }
       
   262 }
   277 
   263 
   278 void GlxGridView::itemSelected(const QModelIndex &  index)
   264 void GlxGridView::itemSelected(const QModelIndex &  index)
   279     {
   265 {
   280     OstTrace1( TRACE_NORMAL, GLXGRIDVIEW_ITEMSELECTED, "GlxGridView::itemSelected;index=%d", index.row() );
   266     OstTrace1( TRACE_NORMAL, GLXGRIDVIEW_ITEMSELECTED, "GlxGridView::itemSelected;index=%d", index.row() );
   281 
   267 
   282     if ( mGridView->selectionMode() == HbGridView::MultiSelection ){ //in multi selection mode no need to open the full screen
   268     if ( mGridView->selectionMode() == HbGridView::MultiSelection ){ //in multi selection mode no need to open the full screen
   283     return ;
   269     return ;
   284     }
   270     }
   288         {
   274         {
   289         mModel->setData( index, index.row(), GlxFocusIndexRole );
   275         mModel->setData( index, index.row(), GlxFocusIndexRole );
   290         }
   276         }
   291     emit actionTriggered( EGlxCmdFullScreenOpen );
   277     emit actionTriggered( EGlxCmdFullScreenOpen );
   292     OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
   278     OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
   293     }
   279 }
   294 
   280 
   295 void GlxGridView::setVisvalWindowIndex()
   281 void GlxGridView::setVisvalWindowIndex()
   296     {
   282 {
   297     OstTrace0( TRACE_IMPORTANT, GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex" );
   283     OstTrace0( TRACE_IMPORTANT, GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex" );
   298     QList< HbAbstractViewItem * >  visibleItemList =  mGridView->visibleItems();
   284     QList< HbAbstractViewItem * >  visibleItemList =  mGridView->visibleItems();
   299     qDebug("GlxGridView::setVisvalWindowIndex() %d", visibleItemList.count());    
   285     qDebug("GlxGridView::setVisvalWindowIndex() %d", visibleItemList.count());    
   300     OstTrace1( TRACE_IMPORTANT, DUP1_GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex;visibleitemindex=%d", 
   286     OstTrace1( TRACE_IMPORTANT, DUP1_GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex;visibleitemindex=%d", 
   301             visibleItemList.count() );
   287             visibleItemList.count() );
   313         
   299         
   314     if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
   300     if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
   315         return ;
   301         return ;
   316     
   302     
   317     mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
   303     mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
   318     }
   304 }
   319 
       
   320 //To:Do remove later once we get visual index change notification from grid view
       
   321 void GlxGridView::scrollPositionChange (QPointF newPosition, Qt::Orientations importantDimensions)
       
   322     {
       
   323     OstTrace0( TRACE_IMPORTANT, DUP1_GLXGRIDVIEW_SCROLLPOSITIONCHANGE, "GlxGridView::scrollPositionChange" );
       
   324     Q_UNUSED(importantDimensions);
       
   325     qreal x = newPosition.x();
       
   326     qreal y = newPosition.y();  
       
   327     int index = 0;
       
   328     OstTraceExt2( TRACE_IMPORTANT, GLXGRIDVIEW_SCROLLPOSITIONCHANGE, "GlxGridView::scrollPositionChange;x=%f;y=%f", x, y );
       
   329 
       
   330     if( mWindow->orientation() == Qt::Vertical ) {
       
   331     index = y / 100;
       
   332     index = index * NBR_COL;
       
   333     }
       
   334     else {
       
   335     index = y / 98;
       
   336     index = index * NBR_ROW;
       
   337     }
       
   338 
       
   339     OstTraceExt2( TRACE_IMPORTANT, DUP2_GLXGRIDVIEW_SCROLLPOSITIONCHANGE, 
       
   340             "GlxGridView::scrollPositionChange;index=%d;visualindex=%d", index, mVisualIndex );
       
   341 
       
   342     if ( qAbs (index - mVisualIndex) >= NBR_PAGE &&  index >=0 && index < mModel->rowCount() ) {
       
   343     mVisualIndex = index;
       
   344     OstTrace0( TRACE_IMPORTANT, DUP3_GLXGRIDVIEW_SCROLLPOSITIONCHANGE, 
       
   345             "GlxGridView::scrollPositionChange visual index changed" );
       
   346     //To:Do call back of model for visual index change
       
   347     //mModel->setVisibleWindowIndex( mModel->index(mVisualIndex, 0 ));
       
   348     }    
       
   349     }
       
   350 
       
   351 
   305 
   352 GlxGridView::~GlxGridView()
   306 GlxGridView::~GlxGridView()
   353     {
   307 {
   354     OstTraceFunctionEntry0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
   308     OstTraceFunctionEntry0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
   355     removeViewConnection();
   309     removeViewConnection();
   356     delete mGridView;
   310     delete mGridView;
   357     mGridView = NULL;
   311     mGridView = NULL;
   358 
   312 
   359     delete mDocLoader;
   313     delete mDocLoader;
   360     mDocLoader = NULL;
   314     mDocLoader = NULL;
   361 
   315 
   362     OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
   316     OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
   363     }
   317 }
   364 
   318 
   365 void GlxGridView::indicateLongPress(HbAbstractViewItem *item, QPointF coords)
   319 void GlxGridView::indicateLongPress(HbAbstractViewItem *item, QPointF coords)
   366     {
   320 {
   367     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_INDICATELONGPRESS, "GlxGridView::indicateLongPress" );
   321     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_INDICATELONGPRESS, "GlxGridView::indicateLongPress" );
   368     qDebug() << "GlxGridView:indicateLongPress Item " << item->modelIndex() << "long pressed at "
   322     qDebug() << "GlxGridView:indicateLongPress Item " << item->modelIndex() << "long pressed at "
   369     << coords;
   323     << coords;
   370 
   324 
   371     if ( mGridView->selectionMode() == HbGridView::MultiSelection ){ //in multi selection mode no need to open the context menu
   325     if ( mGridView->selectionMode() == HbGridView::MultiSelection ){ //in multi selection mode no need to open the context menu
   372     return ;
   326     	return ;
   373     }
   327     }
   374 
   328 
   375     if ( mModel ) {
   329     if ( mModel ) {
   376     mModel->setData( item->modelIndex(), item->modelIndex().row(), GlxFocusIndexRole );
   330     	mModel->setData( item->modelIndex(), item->modelIndex().row(), GlxFocusIndexRole );
   377     }
   331     }
   378     emit itemSpecificMenuTriggered(viewId(),coords);
   332     emit itemSpecificMenuTriggered(viewId(),coords);
   379     }
   333 }