diff -r 41c0a814d878 -r 6c9acdc6adc0 logsui/logsapp/src/logsmatchesview.cpp --- a/logsui/logsapp/src/logsmatchesview.cpp Fri Jun 11 13:38:41 2010 +0300 +++ b/logsui/logsapp/src/logsmatchesview.cpp Thu Jun 24 14:44:14 2010 +0300 @@ -45,7 +45,8 @@ : LogsBaseView(LogsMatchesViewId, repository, viewManager), mListView(0), mModel(0), - mAddToContactsButton(0) + mAddToContactsButton(0), + mAddToContactsButtonDisabled(false) { LOGS_QDEBUG( "logs [UI] <-> LogsMatchesView::LogsMatchesView()" ); @@ -69,7 +70,10 @@ // void LogsMatchesView::activated(bool showDialer, QVariant args) { - //base class handling first + // Disable add to contacts button handling while view is activated + // to avoid unnecessary quick appear/dissappear of it. + mAddToContactsButtonDisabled = true; + LogsBaseView::activated(showDialer, args); LogsMatchesModel* model = qVariantValue(args); @@ -77,6 +81,10 @@ dialpadEditorTextChanged(); activateEmptyListIndicator(mModel); + + scrollToTopItem(mListView); + + mAddToContactsButtonDisabled = false; } // ----------------------------------------------------------------------------- @@ -190,8 +198,9 @@ void LogsMatchesView::handleBackSoftkey() { LOGS_QDEBUG( "logs [UI] -> LogsMatchesView::::handleBackSoftkey()" ); - + mDialpad->editor().blockSignals(true); mDialpad->editor().setText(QString()); + mDialpad->editor().blockSignals(false); if (mDialpad->isOpen()){ LOGS_QDEBUG( "logs [UI] -> LogsMatchesView::::handleBackSoftkey() closeDialpad" ); @@ -201,7 +210,7 @@ mDialpad->closeDialpad(); mDialpad->blockSignals(false); } - + LogsBaseView::handleBackSoftkey(); LOGS_QDEBUG( "logs [UI] <- LogsMatchesView::::handleBackSoftkey()" ); @@ -213,6 +222,7 @@ // void LogsMatchesView::dialpadEditorTextChanged() { + LOGS_QDEBUG( "logs [UI] -> LogsMatchesView::::dialpadEditorTextChanged()" ); updateCallButton(); updateMenu(); @@ -223,6 +233,7 @@ } else if ( mModel ) { mModel->logsMatches( pattern ); } + LOGS_QDEBUG_2( "logs [UI] <- LogsMatchesView::::dialpadEditorTextChanged(), text: ", pattern ); } // ----------------------------------------------------------------------------- @@ -257,7 +268,7 @@ if ( mListView ) { updateMenu(); updateListLayoutName(*mListView); - updateListSize(); + updateListSize(*mListView); } LOGS_QDEBUG( "logs [UI] <- LogsMatchesView::updateWidgetsSizeAndLayout()" ); } @@ -295,9 +306,9 @@ { LOGS_QDEBUG( "logs [UI] -> LogsMatchesView::updateMenu()" ); - updateDialpadCallAndMessagingActions(); - + updateDialpadCallAndMessagingActions(); updateContactSearchAction(); + updateMenuVisibility(); LOGS_QDEBUG( "logs [UI] <- LogsMatchesView::updateMenu()" ); } @@ -311,6 +322,7 @@ if (mAddToContactsButton) { LOGS_QDEBUG( "logs [UI] <-> LogsMatchesView::updateAddContactButton()" ); bool matchesFound(model() && (model()->rowCount() > 0)); - mAddToContactsButton->setVisible(!matchesFound && isDialpadInput()); + mAddToContactsButton->setVisible( + !mAddToContactsButtonDisabled && !matchesFound && isDialpadInput() ); } }