logsui/logsapp/src/logsmatchesview.cpp
changeset 8 6c9acdc6adc0
parent 6 41c0a814d878
child 15 76d2cf7a585e
--- 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<LogsMatchesModel*>(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() );
     }
 }