browserui/browser/BrowserAppSrc/BrowserAppViewBase.cpp
changeset 10 57d5b8e231c4
parent 0 84ad3b177aa3
child 31 868cceedabd3
--- a/browserui/browser/BrowserAppSrc/BrowserAppViewBase.cpp	Mon Mar 30 12:49:49 2009 +0300
+++ b/browserui/browser/BrowserAppSrc/BrowserAppViewBase.cpp	Fri May 08 08:18:43 2009 +0300
@@ -30,8 +30,8 @@
 #include <aknenv.h>
 #include <AknSgcc.h>
 #include <StringLoader.h>
-
-
+#include "BrowserUtil.h"
+#include <BrowserUiSDKCRKeys.h>
 // ================= MEMBER FUNCTIONS =======================
 
 // ---------------------------------------------------------
@@ -280,4 +280,40 @@
     Cba()->SetCommandSetL( commandSet );
     Cba()->DrawNow();
     }
+	
+// -----------------------------------------------------------------------------
+// CBrowserContentView::LaunchSearchApplicationL
+// -----------------------------------------------------------------------------
+//
+void CBrowserViewBase::LaunchSearchApplicationL( const TDesC& aSearchString )
+    {
+    TInt id = iApiProvider.Preferences().GetIntValue( KBrowserSearchAppUid );
+    TUid searchAppId( TUid::Uid( id ) );
+    TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
+    TApaTask task = taskList.FindApp( searchAppId );
+    HBufC8* searchParam8 = HBufC8::NewLC( aSearchString.Length() + 1);
+    searchParam8->Des().Append( aSearchString );
+    if ( task.Exists() )
+        {
+        User::LeaveIfError( task.SendMessage( TUid::Uid( 0 ), *searchParam8 ) );
+        }
+    else
+        {
+        RApaLsSession appArcSession;
+        TApaAppInfo appInfo;
+        User::LeaveIfError(appArcSession.Connect());
+        CleanupClosePushL( appArcSession );
+        TInt err  = appArcSession.GetAppInfo( appInfo, searchAppId );
+        if( err == KErrNone )
+            {
+            CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+            cmdLine->SetExecutableNameL( appInfo.iFullName );
+            cmdLine->SetTailEndL( *searchParam8 );
+            User::LeaveIfError( appArcSession.StartApp( *cmdLine ));
+            CleanupStack::PopAndDestroy( cmdLine ); 
+            }
+        CleanupStack::PopAndDestroy( &appArcSession );
+        }
+    CleanupStack::PopAndDestroy( searchParam8 );
+    } 
 // End of File