browserui/browser/BrowserAppSrc/BrowserAppUi.cpp
changeset 1 57d5b8e231c4
parent 0 84ad3b177aa3
child 10 4530440261a8
--- a/browserui/browser/BrowserAppSrc/BrowserAppUi.cpp	Mon Mar 30 12:49:49 2009 +0300
+++ b/browserui/browser/BrowserAppSrc/BrowserAppUi.cpp	Fri May 08 08:18:43 2009 +0300
@@ -19,6 +19,7 @@
 
 
 // INCLUDES
+#include <platform/mw/Browser_platform_variant.hrh>
 #include <BrowserNG.rsg>
 #include <uri16.h>
 #include <uri8.h>
@@ -39,8 +40,12 @@
 #include <AiwGenericParam.h>
 #include <AknDef.h>
 #include <DocumentHandler.h>
+
+#ifdef BRDO_APP_GALLERY_SUPPORTED_FF
 #include <MGXFileManagerFactory.h>
 #include <CMGXFileManager.h>
+#endif
+
 #include <BrowserPluginInterface.h>
 #include <oommonitorplugin.h>
 
@@ -1268,10 +1273,50 @@
 
 		err = KErrNone;
 		BROWSER_LOG( ( _L( "Load the URL" ) ) );
-        LoadObserver().DoStartLoad( aUrlType );
+		
+		if ( iPreferences->SearchFeature() || iPreferences->ServiceFeature())
+		    {
+    		iSpecialSchemeinAddress = EFalse;
+            
+            HBufC* searchScheme = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+            TPtr searchSchemePtr( searchScheme->Des() );
+            ++toPop;
+            
+            HBufC* serviceScheme = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+            TPtr serviceSchemePtr( serviceScheme->Des() );
+            ++toPop;
+            
+            iPreferences->GetStringValueL( KBrowserSearchProviderUrl, KMaxHomePgUrlLength, searchSchemePtr );
+            iPreferences->GetStringValueL( KBrowserServiceUrl, KMaxHomePgUrlLength, serviceSchemePtr );
+                    
+            TInt err = uriParser.Parse(searchSchemePtr);
+            if (!err)
+                searchSchemePtr = uriParser.Extract( EUriScheme );
+            
+            err = uriParser.Parse(serviceSchemePtr);
+            if (!err)
+                serviceSchemePtr = uriParser.Extract( EUriScheme );
+            
+            if( scheme.Length() != 0 )
+                {
+                if( !scheme.Compare(serviceSchemePtr) || !scheme.Compare(searchSchemePtr) )
+                	{
+                	iSpecialSchemeinAddress = ETrue;
+                	TRAP( err, BrCtlInterface().LoadUrlL( resultUrlBuf->Des(), IAPid ) );
+                	}
+                else
+                	{
+                	LoadObserver().DoStartLoad( aUrlType );
+                    TRAP( err, BrCtlInterface().LoadUrlL( resultUrlBuf->Des(), IAPid ) );
+                	}            
+                }
+	        }
+	    else
+	        {
+	        LoadObserver().DoStartLoad( aUrlType );
+            TRAP( err, BrCtlInterface().LoadUrlL( resultUrlBuf->Des(), IAPid ) );
+	        }
         
-        TRAP( err, BrCtlInterface().LoadUrlL( resultUrlBuf->Des(), IAPid ) );
-
 		CleanupStack::PopAndDestroy(toPop); //resultUrlBuf and url if needed
 		BROWSER_LOG( ( _L( "No AP 4 %d" ), err  ) );
 		if ( err != KErrNone )
@@ -1778,29 +1823,53 @@
 
    	    if ( LastActiveViewId() == KUidBrowserNullViewId )
 	        {
+	        TBool specialSchemeInHomePageAddress = EFalse;
+	        
 	        if (NoHomePageToBeLaunchedL())
 	            {
 	            // No homepage to be launched so start browser in bookmarks view
     	        SetLastActiveViewId(KUidBrowserBookmarksViewId);
 	            }
-    	    else
+    	    else if ( iPreferences->SearchFeature() || iPreferences->ServiceFeature())
     	        {
-    	        // There's a homepage to be launched so start in content view
-    	        SetLastActiveViewId(KUidBrowserContentViewId);  
-    	          
-               	//wait for contentview to initialize itself
-        	    WaitCVInit();
-
-                TInt error( KErrNone );
-                TRAP( error, FetchHomePageL() );
-                if( error != KErrNone )
-                    {
-                    CloseContentViewL();
-                    }
-                }
-            ActivateLocalViewL( LastActiveViewId() );
-        	}
-
+    	        
+    	        HBufC* buf = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+    	        TPtr ptr( buf->Des() );
+    	        TInt pgFound( KErrNotFound );
+    	        pgFound = Preferences().HomePageUrlL( ptr );
+    	        
+    			HBufC* searchScheme = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+    			TPtr searchSchemePtr( searchScheme->Des() );
+    			
+    			HBufC* serviceScheme = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+    			TPtr serviceSchemePtr( serviceScheme->Des() );
+    			
+    	        iPreferences->GetStringValueL( KBrowserSearchProviderUrl, KMaxHomePgUrlLength, searchSchemePtr );
+    	        iPreferences->GetStringValueL( KBrowserServiceUrl, KMaxHomePgUrlLength, serviceSchemePtr );
+
+    			
+	            if( !ptr.Compare(serviceSchemePtr) || !ptr.Compare(searchSchemePtr) )
+	            	{    
+	            	specialSchemeInHomePageAddress = ETrue;
+	            	SetLastActiveViewId(KUidBrowserBookmarksViewId);
+	            	TRAPD( err, FetchL( ptr, CBrowserLoadObserver::ELoadUrlTypeOther ) );
+	            	}
+	            else
+	                {
+                    StartFetchHomePageL();
+	            	}
+    	        CleanupStack::PopAndDestroy( 3,buf );
+    	        }
+            else
+            	{
+                StartFetchHomePageL();
+            	}
+           
+	        if( !specialSchemeInHomePageAddress )
+	            {
+	        	ActivateLocalViewL( LastActiveViewId() );
+	            }
+        	}        	   	  
         }
     else if ( aCommand == EApaCommandViewActivate )
     // Get when activated from soft notification (Downloads List).
@@ -2155,6 +2224,8 @@
                                 }
                             case KFolderId:
                                 {
+                                SetCalledFromAnotherApp( EFalse );
+                                iIsForeground = IsForeground();
                                 CloseContentViewL();
                                 SetLastActiveViewId( KUidBrowserBookmarksViewId );
                                 break;
@@ -2179,7 +2250,10 @@
                 // Sender Uid was not readable
                 User::Leave( err );
                 }
-            SetViewToBeActivatedIfNeededL( LastActiveViewId() );
+            if( !iSpecialSchemeinAddress )
+            	{              
+            	SetViewToBeActivatedIfNeededL( LastActiveViewId() );
+            	}
             break;
             }
 
@@ -3801,6 +3875,9 @@
 
     TFileName fName;
     User::LeaveIfError(docHandler->GetPath(fName));
+    
+    #ifdef BRDO_APP_GALLERY_SUPPORTED_FF
+    
     CMGXFileManager* mgFileManager = MGXFileManagerFactory::NewFileManagerL(CEikonEnv::Static()->FsSession());
     CleanupStack::PushL(mgFileManager);
     if( fName.Length() > 0 )
@@ -3811,7 +3888,11 @@
         {
         TRAP_IGNORE( mgFileManager->UpdateL() );
         }
-    CleanupStack::PopAndDestroy(2); // imageCarrier, mgFileManager
+    CleanupStack::PopAndDestroy(1); // mgFileManager
+    
+    #endif
+    
+    CleanupStack::PopAndDestroy(1); // imageCarrier
     }
 
 // ---------------------------------------------------------
@@ -3957,17 +4038,7 @@
            {
            case EEventPointerExit:
                {
-               CCoeControl* ctrl = &(BrCtlInterface());
-               CCoeControl* parent = ctrl->Parent();
-
-               if (aDestination == parent) 
-                   {
-                   TPointerEvent  event;
-                   event.iType = TPointerEvent::EButton1Up;
-                   event.iModifiers = 0;
-                   event.iPosition = TPoint(0, 0);
-                   parent->HandlePointerEventL(event);
-                   }
+
                break;
                }
                
@@ -3995,4 +4066,49 @@
        }
    CAknViewAppUi::HandleWsEventL(aEvent, aDestination);
 }
+
+// ---------------------------------------------------------
+// CBrowserAppUi::HandleSystemEventL
+// ---------------------------------------------------------
+
+void CBrowserAppUi::HandleSystemEventL(const TWsEvent& aEvent)
+   {
+   
+   /**
+    * We need a special handling for System events to handle the situation 
+    * like when the shut down is done while download is going on.
+    */
+   
+   switch (*(TApaSystemEvent*)(aEvent.EventData()))
+     {
+     case EApaSystemEventShutdown:    
+       // do things here
+        ExitBrowser ( IsAppShutterActive() );  
+       break;
+     default:
+       break;
+     }
+   // call base class implementation
+   CAknAppUi::HandleSystemEventL(aEvent);
+   }
+
+// ---------------------------------------------------------
+// CBrowserAppUi::StartFetchHomePageL
+// ---------------------------------------------------------
+void CBrowserAppUi::StartFetchHomePageL(void)
+    {
+    
+    // There's a homepage to be launched so start in content view
+    SetLastActiveViewId(KUidBrowserContentViewId);      	    	          
+   	//wait for contentview to initialize itself
+    WaitCVInit();
+    
+    TInt error( KErrNone );
+    TRAP( error, FetchHomePageL() );
+    if( error != KErrNone )
+        {
+        CloseContentViewL();
+        }                
+    }
+
 // End of File