--- 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<LogsPageIndicator*>
(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()" );
-}