diff -r 84ad3b177aa3 -r 57d5b8e231c4 browserui/browser/BrowserAppSrc/BrowserAppUi.cpp --- 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 #include #include #include @@ -39,8 +40,12 @@ #include #include #include + +#ifdef BRDO_APP_GALLERY_SUPPORTED_FF #include #include +#endif + #include #include @@ -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