logsui/logsapp/src/logsrecentcallsview.cpp
changeset 11 64a47b97e1e1
parent 10 b04270301d3b
child 14 f27aebe284bb
equal deleted inserted replaced
10:b04270301d3b 11:64a47b97e1e1
    63       mCurrentView(LogsServices::ViewAll),
    63       mCurrentView(LogsServices::ViewAll),
    64       mAppearingView(LogsServices::ViewAll),
    64       mAppearingView(LogsServices::ViewAll),
    65       mMoveLeftInList(false),
    65       mMoveLeftInList(false),
    66       mEffectHandler(0),
    66       mEffectHandler(0),
    67       mListViewX(0),
    67       mListViewX(0),
       
    68       mEmptyListLabelX(0),
    68       mMatchesModel(0),
    69       mMatchesModel(0),
    69       mMarkingMissedAsSeen(false),
    70       mMarkingMissedAsSeen(false),
    70       mPageIndicator(0),
    71       mPageIndicator(0),
    71       mFirstActivation(true)
    72       mFirstActivation(true),
       
    73       mListScrollBarPolicy(HbScrollArea::ScrollBarAutoHide)
    72 {
    74 {
    73     LOGS_QDEBUG( "logs [UI] <-> LogsRecentCallsView::LogsRecentCallsView()" );
    75     LOGS_QDEBUG( "logs [UI] <-> LogsRecentCallsView::LogsRecentCallsView()" );
    74     mModel = mRepository.model();
    76     mModel = mRepository.model();
    75     	
    77     	
    76     //TODO: taking away due to toolbar bug. If toolbar visibility changes on view
    78     //TODO: taking away due to toolbar bug. If toolbar visibility changes on view
   128     
   130     
   129     mPageIndicator->setActiveItemIndex(mConversionMap.value(mCurrentView));
   131     mPageIndicator->setActiveItemIndex(mConversionMap.value(mCurrentView));
   130 
   132 
   131     mFirstActivation = false;
   133     mFirstActivation = false;
   132     
   134     
       
   135     if (mEmptyListLabel) {
       
   136         mEmptyListLabelX = mEmptyListLabel->pos().x();
       
   137     }
       
   138   
   133     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::activated()" );  
   139     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::activated()" );  
   134 }
   140 }
   135 
   141 
   136 // -----------------------------------------------------------------------------
   142 // -----------------------------------------------------------------------------
   137 // LogsRecentCallsView::deactivated
   143 // LogsRecentCallsView::deactivated
   211     mEffectHandler = new LogsEffectHandler;
   217     mEffectHandler = new LogsEffectHandler;
   212     connect(mEffectHandler, SIGNAL(dissappearByMovingComplete()), 
   218     connect(mEffectHandler, SIGNAL(dissappearByMovingComplete()), 
   213             this, SLOT(dissappearByMovingComplete()));
   219             this, SLOT(dissappearByMovingComplete()));
   214     connect(mEffectHandler, SIGNAL(dissappearByFadingComplete()), 
   220     connect(mEffectHandler, SIGNAL(dissappearByFadingComplete()), 
   215             this, SLOT(dissappearByFadingComplete()));
   221             this, SLOT(dissappearByFadingComplete()));
   216     
   222     connect(mEffectHandler, SIGNAL(appearByMovingComplete()), 
       
   223             this, SLOT(appearByMovingComplete()));
   217     mPageIndicator = qobject_cast<LogsPageIndicator*>
   224     mPageIndicator = qobject_cast<LogsPageIndicator*>
   218                         (mRepository.findWidget(logsPageIndicatorId));
   225                         (mRepository.findWidget(logsPageIndicatorId));
   219     
   226     
   220     mPageIndicator->initialize(mTitleMap.count(), mConversionMap.value(mCurrentView));
   227     mPageIndicator->initialize(mTitleMap.count(), mConversionMap.value(mCurrentView));
   221     
   228     
   438     mListView->setFrictionEnabled(true);
   445     mListView->setFrictionEnabled(true);
   439     
   446     
   440     mListViewX = mListView->pos().x();
   447     mListViewX = mListView->pos().x();
   441     
   448     
   442     grabGesture(Qt::SwipeGesture);
   449     grabGesture(Qt::SwipeGesture);
       
   450     
       
   451     mListScrollBarPolicy = mListView->verticalScrollBarPolicy();
   443 
   452 
   444     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::initListWidget() " );
   453     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::initListWidget() " );
   445 }
   454 }
   446 
   455 
   447 // -----------------------------------------------------------------------------
   456 // -----------------------------------------------------------------------------
   462         mFilter = new LogsFilter( type );
   471         mFilter = new LogsFilter( type );
   463         mFilter->setSourceModel( mModel );
   472         mFilter->setSourceModel( mModel );
   464         
   473         
   465         mListView->setModel( mFilter );//ownership not transferred
   474         mListView->setModel( mFilter );//ownership not transferred
   466         
   475         
   467         scrollToTopItem();
   476         scrollToTopItem(mListView);
   468         
   477         
   469         activateEmptyListIndicator(mFilter);
   478         activateEmptyListIndicator(mFilter);
   470          
   479          
   471         LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateFilter() " );
   480         LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateFilter() " );
   472     }  else {
   481     }  else {
   567     	changeView( mConversionMap.key(viewmap) );
   576     	changeView( mConversionMap.key(viewmap) );
   568     } else {
   577     } else {
   569         if (model() && model()->rowCount() > 0) {
   578         if (model() && model()->rowCount() > 0) {
   570             mEffectHandler->startMoveNotPossibleEffect(*mListView, false, mListViewX);
   579             mEffectHandler->startMoveNotPossibleEffect(*mListView, false, mListViewX);
   571         } else {
   580         } else {
   572             mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, false, mListViewX);
   581             mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, 
       
   582                     false, mEmptyListLabelX);
   573         }
   583         }
   574     }
   584     }
   575     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::leftFlick()" );
   585     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::leftFlick()" );
   576 }
   586 }
   577 
   587 
   588     	changeView( mConversionMap.key(viewmap) );	
   598     	changeView( mConversionMap.key(viewmap) );	
   589     } else {
   599     } else {
   590         if (model() && model()->rowCount() > 0) {
   600         if (model() && model()->rowCount() > 0) {
   591             mEffectHandler->startMoveNotPossibleEffect(*mListView, true, mListViewX);
   601             mEffectHandler->startMoveNotPossibleEffect(*mListView, true, mListViewX);
   592         } else {
   602         } else {
   593             mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, true, mListViewX);
   603             mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, 
       
   604                     true, mEmptyListLabelX);
   594         }
   605         }
   595     }
   606     }
   596     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::rightFlick()" );
   607     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::rightFlick()" );
   597 }
   608 }
   598 
   609 
   611         mAppearingView = view;
   622         mAppearingView = view;
   612         return;
   623         return;
   613     }
   624     }
   614     
   625     
   615     mMoveLeftInList = mConversionMap.value(view) < mConversionMap.value(mCurrentView);
   626     mMoveLeftInList = mConversionMap.value(view) < mConversionMap.value(mCurrentView);
   616 
       
   617     mAppearingView = view;
   627     mAppearingView = view;
       
   628     // Disable scrollbar while moving the list for more nice looks
       
   629     mListView->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);  
   618     mEffectHandler->startDissappearAppearByFadingEffect(*mViewName);
   630     mEffectHandler->startDissappearAppearByFadingEffect(*mViewName);
   619     mEffectHandler->startDissappearAppearByMovingEffect(
   631     mEffectHandler->startDissappearAppearByMovingEffect(
   620             *mListView, *mEmptyListLabel, !mMoveLeftInList, mListViewX);
   632             *mListView, *mEmptyListLabel, !mMoveLeftInList, 
       
   633              mListViewX, mEmptyListLabelX);
   621 
   634 
   622     mPageIndicator->setActiveItemIndex(mConversionMap.value(mAppearingView));
   635     mPageIndicator->setActiveItemIndex(mConversionMap.value(mAppearingView));
   623     
   636     
   624     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::changeView()" );
   637     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::changeView()" );
   625 }
   638 }
   645 //
   658 //
   646 void LogsRecentCallsView::dissappearByMovingComplete()
   659 void LogsRecentCallsView::dissappearByMovingComplete()
   647 {
   660 {
   648     LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::dissappearByMovingComplete()" )
   661     LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::dissappearByMovingComplete()" )
   649     
   662     
   650     updateView( mAppearingView );
   663     updateView( mAppearingView ); 
   651     
   664     
   652     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::dissappearByMovingComplete()" )
   665     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::dissappearByMovingComplete()" )
       
   666 }
       
   667 
       
   668 
       
   669 // -----------------------------------------------------------------------------
       
   670 //
       
   671 // -----------------------------------------------------------------------------
       
   672 //
       
   673 void LogsRecentCallsView::appearByMovingComplete()
       
   674 {
       
   675     LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::appearByMovingComplete()" )
       
   676     
       
   677     // Restore scrollbar which was hidden when animation started
       
   678     mListView->setVerticalScrollBarPolicy(mListScrollBarPolicy);
       
   679     
       
   680     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::appearByMovingComplete()" )
   653 }
   681 }
   654 
   682 
   655 // -----------------------------------------------------------------------------
   683 // -----------------------------------------------------------------------------
   656 // LogsRecentCallsView::updateMenu
   684 // LogsRecentCallsView::updateMenu
   657 // -----------------------------------------------------------------------------
   685 // -----------------------------------------------------------------------------
   671     toggleActionAvailability(addToContactsAction, isDialpadInput());
   699     toggleActionAvailability(addToContactsAction, isDialpadInput());
   672     
   700     
   673     updateDialpadCallAndMessagingActions();
   701     updateDialpadCallAndMessagingActions();
   674     updateContactSearchAction();
   702     updateContactSearchAction();
   675     
   703     
       
   704     updateMenuVisibility();
       
   705     
   676     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateMenu()" );
   706     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateMenu()" );
   677 }
   707 }
   678 
   708 
   679 // -----------------------------------------------------------------------------
   709 // -----------------------------------------------------------------------------
   680 // LogsRecentCallsView::updateEmptyListWidgetsVisibility
   710 // LogsRecentCallsView::updateEmptyListWidgetsVisibility
   695 {
   725 {
   696     LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::updateWidgetsSizeAndLayout()" );
   726     LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::updateWidgetsSizeAndLayout()" );
   697     if ( mListView ) {
   727     if ( mListView ) {
   698         updateMenu();
   728         updateMenu();
   699         updateListLayoutName(*mListView);
   729         updateListLayoutName(*mListView);
   700         updateListSize();
   730         updateListSize(*mListView);
   701         LogsConfigurationParams param;
   731         LogsConfigurationParams param;
   702         param.setListItemTextWidth( getListItemTextWidth() );
   732         param.setListItemTextWidth( getListItemTextWidth() );
   703         mModel->updateConfiguration(param);
   733         mModel->updateConfiguration(param);
   704     }
   734     }
   705     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateWidgetsSizeAndLayout()" );
   735     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateWidgetsSizeAndLayout()" );
   783         mMarkingMissedAsSeen = 
   813         mMarkingMissedAsSeen = 
   784             mModel->markEventsSeen(LogsModel::TypeLogsClearMissed);
   814             mModel->markEventsSeen(LogsModel::TypeLogsClearMissed);
   785     }
   815     }
   786     return mMarkingMissedAsSeen;
   816     return mMarkingMissedAsSeen;
   787 }
   817 }
   788 
       
   789 // -----------------------------------------------------------------------------
       
   790 // LogsRecentCallsView::scrollToTopItem
       
   791 // -----------------------------------------------------------------------------
       
   792 //
       
   793 void LogsRecentCallsView::scrollToTopItem()
       
   794 {
       
   795     LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::scrollToTopItem()" );
       
   796     disconnect( mFilter, SIGNAL(rowsInserted(const QModelIndex&,int,int)), 
       
   797                 this, SLOT(scrollToTopItem()));
       
   798     if ( mFilter && mFilter->hasIndex(0,0) ) {
       
   799         mListView->scrollTo( mFilter->index(0,0) );
       
   800     }
       
   801     LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::scrollToTopItem()" );
       
   802 }