diff -r f27aebe284bb -r c5af8598d22c logsui/logsapp/src/logsmatchesview.cpp --- a/logsui/logsapp/src/logsmatchesview.cpp Wed Aug 18 09:49:12 2010 +0300 +++ b/logsui/logsapp/src/logsmatchesview.cpp Thu Sep 02 20:27:05 2010 +0300 @@ -45,8 +45,7 @@ : LogsBaseView(LogsMatchesViewId, repository, viewManager), mListView(0), mModel(0), - mAddToContactsButton(0), - mAddToContactsButtonDisabled(false) + mAddToContactsButton(0) { LOGS_QDEBUG( "logs [UI] <-> LogsMatchesView::LogsMatchesView()" ); @@ -70,10 +69,6 @@ // void LogsMatchesView::activated(bool showDialer, QVariant args) { - // 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); @@ -84,7 +79,7 @@ scrollToTopItem(mListView); - mAddToContactsButtonDisabled = false; + LogsBaseView::activationCompleted(); } // ----------------------------------------------------------------------------- @@ -154,12 +149,14 @@ mListView->listItemPrototype()->setTextFormat(Qt::RichText); connect(mListView, SIGNAL(activated(const QModelIndex)), - this, SLOT(initiateCallback(const QModelIndex))); + this, SLOT(initiateCallback(const QModelIndex)), + Qt::UniqueConnection); connect(mListView, SIGNAL(longPressed(HbAbstractViewItem*, const QPointF&)), this, - SLOT(showListItemMenu(HbAbstractViewItem*, const QPointF&))); + SLOT(showListItemMenu(HbAbstractViewItem*, const QPointF&)), + Qt::UniqueConnection); LOGS_QDEBUG( "logs [UI] <- LogsMatchesView::initListWidget() " ); } @@ -321,8 +318,10 @@ { if (mAddToContactsButton) { LOGS_QDEBUG( "logs [UI] <-> LogsMatchesView::updateAddContactButton()" ); + // Disable add to contacts button handling while view is being activated + // to avoid unnecessary quick appear/dissappear of it. bool matchesFound(model() && (model()->rowCount() > 0)); mAddToContactsButton->setVisible( - !mAddToContactsButtonDisabled && !matchesFound && isDialpadInput() ); + !mActivating && !matchesFound && isDialpadInput() ); } }