phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclsearchresultdlg.cpp
branchRCL_3
changeset 26 0d28c1c5b6dd
parent 23 5586b4d2ec3e
child 32 2828b4d142c0
--- a/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclsearchresultdlg.cpp	Wed Apr 14 15:45:35 2010 +0300
+++ b/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclsearchresultdlg.cpp	Tue Apr 27 16:23:35 2010 +0300
@@ -155,13 +155,6 @@
     CCoeEnv::Static()->RemoveForegroundObserver( *this );
     ResetStatusPane();
     
-    if ( iTitlePane != NULL )
-          {
-          // set title pane back to what it was, ownership of 
-          // iTitlePaneText is transferred to title pane
-          iTitlePane->SetText( iOriginalTitleText );
-          }
-    
     iNaviText.Close();
     delete iAddRecipientIcon;
 
@@ -171,8 +164,21 @@
      	delete iActionMenu;
     	iActionMenu = NULL;
     	}    
-    
+
+    // Sanity check and make sure some other view hasn't already 
+    // changed the title text. If not - change back to original.
+    if (iOriginalTitleText && iTitleText && iTitlePane &&
+        iTitlePane->Text()->Compare( iTitleText->Des() ) == 0)
+        {
+        // Restore orginal title. Ownership transferred.
+        iTitlePane->SetText( iOriginalTitleText, ETrue); 
+        }
+    else
+        {
+        delete iOriginalTitleText;
+        }
     delete iIdleNote;
+    delete iTitleText;
     }
 
 // ---------------------------------------------------------------------------
@@ -679,12 +685,17 @@
     FUNC_LOG;
     CAknAppUi* appUi = static_cast<CAknAppUi*>( CCoeEnv::Static()->AppUi() );
     CEikStatusPane* statusPane = appUi->StatusPane();
-    iNaviPane = reinterpret_cast<CAknNavigationControlContainer*>(
-        statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
     
-    iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
+    // add the navigation decorators only if the usual statuspane layout is used
+    if ( statusPane->CurrentLayoutResId() == R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT )
+        {
+        iNaviPane = reinterpret_cast<CAknNavigationControlContainer*>(
+                statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+
+        iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
     
-    iNaviPane->PushL( *iNaviDecorator );
+        iNaviPane->PushL( *iNaviDecorator );
+        }
     
     // setup title pane
     iTitlePane = reinterpret_cast<CAknTitlePane*>(
@@ -705,9 +716,9 @@
 void CPbkxRclSearchResultDlg::SetTitlePaneTextL()
     {
     // Update title pane text   
-    HBufC* titleText  = StringLoader::LoadLC( R_QTN_RCL_TITLE_SERVER_CONTACTS ); 
-    iTitlePane->SetTextL(titleText->Des());   
-    CleanupStack::PopAndDestroy(titleText);
+    iTitleText  = StringLoader::LoadL( R_QTN_RCL_TITLE_SERVER_CONTACTS ); 
+    iTitlePane->SetTextL(iTitleText->Des());   
+  
     }
 
 
@@ -720,8 +731,11 @@
     FUNC_LOG;
     
     ResetStatusPane();
-    iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
-    iNaviPane->PushL( *iNaviDecorator );
+    if (iNaviPane )
+        {
+        iNaviDecorator = iNaviPane->CreateNavigationLabelL( iNaviText );
+        iNaviPane->PushL( *iNaviDecorator );
+        }
    
     SetTitlePaneTextL();  
     }