diff -r 107412708b22 -r c2bc3f8c7777 wlanutilities/wlansniffer/mainapplication/src/wsfmainview.cpp --- a/wlanutilities/wlansniffer/mainapplication/src/wsfmainview.cpp Wed Feb 03 12:16:50 2010 +0000 +++ b/wlanutilities/wlansniffer/mainapplication/src/wsfmainview.cpp Fri Feb 19 23:55:42 2010 +0200 @@ -147,8 +147,10 @@ } case EAknSoftkeyContextOptions: { + LOG_WRITE( "CWsfMainView::HandleCommandL, Options" ); + UpdateBrowserUsageInfoL(); MenuBar()->SetMenuTitleResourceId( R_SNIFFER_CONTEXT_MENUBAR ); - MenuBar()->SetMenuType( CEikMenuBar::EMenuContext ); + MenuBar()->SetMenuType( CEikMenuBar::EMenuContext ); MenuBar()->TryDisplayMenuBarL(); MenuBar()->SetMenuTitleResourceId( R_SNIFFER_MENUBAR ); MenuBar()->SetMenuType( CEikMenuBar::EMenuOptions ); @@ -174,7 +176,7 @@ LOG_ENTERFN( "CWsfMainView::DoActivateL" ); if ( !iContainer ) { - iContainer = CWsfMainViewContainer::NewL( ClientRect() ); + iContainer = CWsfMainViewContainer::NewL( ClientRect(), this ); // set icons array to list iContainer->SetMopParent( this ); iContainer->SetPartner( iController ); @@ -223,11 +225,13 @@ void CWsfMainView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ) { + LOG_ENTERFN( "CWsfMainView::DynInitMenuPaneL" ); + LOG_WRITEF( "resource id = %d", aResourceId ); iController.UpdateSelectedItemL(); if ( aResourceId == R_SNIFFER_MENU ) { - LOG_ENTERFN( "CWsfMainView::DynInitMenuPaneL" ); + LOG_WRITE( "CWsfMainView::DynInitMenuPaneL, R_SNIFFER_MENU" ); const CWsfDocument* doc = static_cast( AppUi()->Document() ); TBool blacklistEmpty( !doc->WlanInfoBranding().BlackListItemCount() ); @@ -252,13 +256,23 @@ return; } - TBool connectedAndUsed( StartWebBrowsingVisibleL() ); TBool connected( selectedItem->Connected() ); + TBool connectedAndUsed( EFalse ); + if ( connected ) + { + connectedAndUsed = iIsBrowserUsingWlan; + } TBool known( selectedItem->Known() ); TBool selectedItemConnecting ( selectedItem->ConnectionStatus() == EConnecting ); - + + LOG_WRITEF( "connectedAndUsed = %d", connectedAndUsed ); + LOG_WRITEF( "connected = %d", connected ); + LOG_WRITEF( "known = %d", known ); + LOG_WRITEF( "selectedItemConnecting = %d", selectedItemConnecting ); + LOG_WRITEF( "connecting = %d", connecting ); + aMenuPane->SetItemDimmed( ESnifferCmdStartBrowsing, connectedAndUsed || selectedItemConnecting ); aMenuPane->SetItemDimmed( ESnifferCmdContinueBrowsing, @@ -289,10 +303,11 @@ } else if ( aResourceId == R_SNIFFER_CONTEXT_MENU ) { + LOG_WRITE( "CWsfMainView::DynInitMenuPaneL, R_SNIFFER_CONTEXT_MENU" ); TWsfWlanInfo *selectedItem = iController.SelectedItem(); // there must be always at least one item: "Other (unlisted)..." - TBool connectedAndUsed( StartWebBrowsingVisibleL() ); + TBool connectedAndUsed( EFalse ); TBool connected( EFalse ); TBool known( EFalse ); TBool hidden( ETrue ); @@ -300,18 +315,30 @@ CWsfAppUi* appui = static_cast( AppUi() ); TBool connecting( appui->SuppressingKeyEvents() ); TBool selectedItemConnecting( EFalse ); + if ( selectedItem ) { // workaround: even if the model reports no elements, we know that // the hidden item must always be there connected = selectedItem->Connected(); + if ( connected ) + { + connectedAndUsed = iIsBrowserUsingWlan; + } known = selectedItem->Known(); hidden = selectedItem->Hidden(); selectedItemConnecting = ( selectedItem->ConnectionStatus() == EConnecting ); } + LOG_WRITEF( "connectedAndUsed = %d", connectedAndUsed ); + LOG_WRITEF( "connected = %d", connected ); + LOG_WRITEF( "known = %d", known ); + LOG_WRITEF( "selectedItemConnecting = %d", selectedItemConnecting ); + LOG_WRITEF( "connecting = %d", connecting ); + + aMenuPane->SetItemDimmed( ESnifferCmdStartBrowsing, connectedAndUsed || selectedItemConnecting ); aMenuPane->SetItemDimmed( ESnifferCmdContinueBrowsing, @@ -335,6 +362,8 @@ void CWsfMainView::HandleListBoxEventL( CEikListBox* /*aListBox*/, TListBoxEvent aEventType ) { + LOG_ENTERFN( "CWsfMainView::HandleListBoxEventL" ); + LOG_WRITEF( "aEventType = %d", aEventType ); switch ( aEventType ) { case EEventEnterKeyPressed: @@ -358,21 +387,32 @@ iSelectionKey = ETrue; } +// --------------------------------------------------------------------------- +// CWsfMainView::UpdateBrowserUsageInfoL +// --------------------------------------------------------------------------- +// +void CWsfMainView::UpdateBrowserUsageInfoL() + { + LOG_ENTERFN( "CWsfMainView::UpdateBrowserUsageInfoL" ); + iIsBrowserUsingWlan = IsBrowserUsingWlanL(); + } + // --------------------------------------------------------------------------- -// CWsfMainView::StartWebBrowsingVisibleL +// CWsfMainView::IsBrowserUsingWlanL // --------------------------------------------------------------------------- // -TBool CWsfMainView::StartWebBrowsingVisibleL() +TBool CWsfMainView::IsBrowserUsingWlanL() { - LOG_ENTERFN( "CWsfMainView::StartWebBrowsingVisibleL" ); + LOG_ENTERFN( "CWsfMainView::IsBrowserUsingWlanL" ); + const TInt KBrowserUid = 0x10008D39; TUid id( TUid::Uid( KBrowserUid ) ); // Check if the Browser application is already running. TApaTaskList taskList( iEikonEnv->WsSession() ); TApaTask task = taskList.FindApp( id ); - TBool isBrowserRuning( EFalse ); + TBool isBrowserRunning( EFalse ); #ifndef __WINS__ @@ -381,6 +421,7 @@ LOG_WRITE( "The Browser is running." ); // The Browser is already running. // Check if the selected WLAN is connected. + iController.UpdateSelectedItemL(); TWsfWlanInfo* selectedItem = iController.SelectedItem(); TBool connected( EFalse ); if( selectedItem ) @@ -466,7 +507,7 @@ if ( clientBuf().iUid[i].iUid == KBrowserUid ) { - isBrowserRuning = ETrue; + isBrowserRunning = ETrue; } } CleanupStack::PopAndDestroy( waiter ); @@ -481,8 +522,8 @@ #endif // __WINS__ - LOG_WRITEF( "isBrowserRuning: %d", isBrowserRuning ); - return isBrowserRuning; + LOG_WRITEF( "isBrowserRunning: %d", isBrowserRunning ); + return isBrowserRunning; }