diff -r b04270301d3b -r 64a47b97e1e1 logsui/logsapp/src/logsrecentcallsview.cpp --- a/logsui/logsapp/src/logsrecentcallsview.cpp Wed Jun 23 18:13:05 2010 +0300 +++ b/logsui/logsapp/src/logsrecentcallsview.cpp Tue Jul 06 14:16:36 2010 +0300 @@ -65,10 +65,12 @@ mMoveLeftInList(false), mEffectHandler(0), mListViewX(0), + mEmptyListLabelX(0), mMatchesModel(0), mMarkingMissedAsSeen(false), mPageIndicator(0), - mFirstActivation(true) + mFirstActivation(true), + mListScrollBarPolicy(HbScrollArea::ScrollBarAutoHide) { LOGS_QDEBUG( "logs [UI] <-> LogsRecentCallsView::LogsRecentCallsView()" ); mModel = mRepository.model(); @@ -130,6 +132,10 @@ mFirstActivation = false; + if (mEmptyListLabel) { + mEmptyListLabelX = mEmptyListLabel->pos().x(); + } + LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::activated()" ); } @@ -213,7 +219,8 @@ this, SLOT(dissappearByMovingComplete())); connect(mEffectHandler, SIGNAL(dissappearByFadingComplete()), this, SLOT(dissappearByFadingComplete())); - + connect(mEffectHandler, SIGNAL(appearByMovingComplete()), + this, SLOT(appearByMovingComplete())); mPageIndicator = qobject_cast (mRepository.findWidget(logsPageIndicatorId)); @@ -440,6 +447,8 @@ mListViewX = mListView->pos().x(); grabGesture(Qt::SwipeGesture); + + mListScrollBarPolicy = mListView->verticalScrollBarPolicy(); LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::initListWidget() " ); } @@ -464,7 +473,7 @@ mListView->setModel( mFilter );//ownership not transferred - scrollToTopItem(); + scrollToTopItem(mListView); activateEmptyListIndicator(mFilter); @@ -569,7 +578,8 @@ if (model() && model()->rowCount() > 0) { mEffectHandler->startMoveNotPossibleEffect(*mListView, false, mListViewX); } else { - mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, false, mListViewX); + mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, + false, mEmptyListLabelX); } } LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::leftFlick()" ); @@ -590,7 +600,8 @@ if (model() && model()->rowCount() > 0) { mEffectHandler->startMoveNotPossibleEffect(*mListView, true, mListViewX); } else { - mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, true, mListViewX); + mEffectHandler->startMoveNotPossibleEffect(*mEmptyListLabel, + true, mEmptyListLabelX); } } LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::rightFlick()" ); @@ -613,11 +624,13 @@ } mMoveLeftInList = mConversionMap.value(view) < mConversionMap.value(mCurrentView); - mAppearingView = view; + // Disable scrollbar while moving the list for more nice looks + mListView->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff); mEffectHandler->startDissappearAppearByFadingEffect(*mViewName); mEffectHandler->startDissappearAppearByMovingEffect( - *mListView, *mEmptyListLabel, !mMoveLeftInList, mListViewX); + *mListView, *mEmptyListLabel, !mMoveLeftInList, + mListViewX, mEmptyListLabelX); mPageIndicator->setActiveItemIndex(mConversionMap.value(mAppearingView)); @@ -647,11 +660,26 @@ { LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::dissappearByMovingComplete()" ) - updateView( mAppearingView ); + updateView( mAppearingView ); LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::dissappearByMovingComplete()" ) } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void LogsRecentCallsView::appearByMovingComplete() +{ + LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::appearByMovingComplete()" ) + + // Restore scrollbar which was hidden when animation started + mListView->setVerticalScrollBarPolicy(mListScrollBarPolicy); + + LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::appearByMovingComplete()" ) +} + // ----------------------------------------------------------------------------- // LogsRecentCallsView::updateMenu // ----------------------------------------------------------------------------- @@ -673,6 +701,8 @@ updateDialpadCallAndMessagingActions(); updateContactSearchAction(); + updateMenuVisibility(); + LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::updateMenu()" ); } @@ -697,7 +727,7 @@ if ( mListView ) { updateMenu(); updateListLayoutName(*mListView); - updateListSize(); + updateListSize(*mListView); LogsConfigurationParams param; param.setListItemTextWidth( getListItemTextWidth() ); mModel->updateConfiguration(param); @@ -785,18 +815,3 @@ } return mMarkingMissedAsSeen; } - -// ----------------------------------------------------------------------------- -// LogsRecentCallsView::scrollToTopItem -// ----------------------------------------------------------------------------- -// -void LogsRecentCallsView::scrollToTopItem() -{ - LOGS_QDEBUG( "logs [UI] -> LogsRecentCallsView::scrollToTopItem()" ); - disconnect( mFilter, SIGNAL(rowsInserted(const QModelIndex&,int,int)), - this, SLOT(scrollToTopItem())); - if ( mFilter && mFilter->hasIndex(0,0) ) { - mListView->scrollTo( mFilter->index(0,0) ); - } - LOGS_QDEBUG( "logs [UI] <- LogsRecentCallsView::scrollToTopItem()" ); -}