--- a/upnpsettings/upnpsharingui/src/upnpappfilesharingdialog.cpp Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,596 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: File sharing view of Home Network application
-*
-*/
-
-
-
-
-
-
-// INCLUDE FILES
-// system
-#include <aknlists.h>
-#include <akntitle.h>
-#include <AknProgressDialog.h>
-#include <StringLoader.h>
-#include <featmgr.h>
-#include <hlplch.h>
-#include <eikprogi.h>
-#include <aknnotewrappers.h>
-#include <aknmessagequerydialog.h> //displayinfol
-#include <akninputblock.h> // CAknInputBlock
-#include <bautils.h> // BaflUtils
-
-// internal interfaces
-#include "cupnpmultiselectionui.h"
-#include "upnpfilesharingengine.h"
-#include "upnpfilesharingengineobserver.h"
-
-// this component
-#include <upnpsharingui.rsg>
-#include "upnpsharingui.hrh"
-#include "upnpappfilesharinglist.h"
-#include "upnpappfilesharingdialog.h"
-
-
-_LIT( KComponentLogfile, "upnpsharingui.txt");
-#include "upnplog.h"
-
-// CONSTANTS
-const TInt KHomeConnectUID3 = 0x10208A0A; // needed for help context
-_LIT( KUPNP_HLP_SHARE_CONTENT, "UPNP_HLP_SHARE_CONTENT" );
-// Filename of rsc file
-_LIT( KSharingUiRscFile, "\\resource\\upnpsharingui.rsc" );
-
-
-// ============================ MEMBER FUNCTIONS ============================
-
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::NewL
-// Two-phased constructor.
-// --------------------------------------------------------------------------
-//
-EXPORT_C CUPnPAppFileSharingDialog* CUPnPAppFileSharingDialog::NewL(
- TInt aMenuResource,
- CUPnPFileSharingEngine& aEng )
- {
- __LOG("CUPnPAppFileSharingDialog::NewL");
-
- CUPnPAppFileSharingDialog* self =
- new (ELeave) CUPnPAppFileSharingDialog( aEng );
- CleanupStack::PushL(self);
- self->ConstructL( aMenuResource );
- CleanupStack::Pop( self );
- return self;
- }
-
-// --------------------------------------------------------------------------
-// Constructor
-// --------------------------------------------------------------------------
-//
-CUPnPAppFileSharingDialog::CUPnPAppFileSharingDialog(
- CUPnPFileSharingEngine& aEng )
- : iFileSharingEngine( aEng )
- , iFeatureManagerInitialized( EFalse )
- {
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::ConstructL
-// Symbian 2nd phase constructor can leave.
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::ConstructL( TInt aMenuResource )
- {
- __LOG("CUPnPAppFileSharingDialog::ConstructL");
-
- iFileSharingEngine.SetObserver(this);
-
- if ( aMenuResource == 0 )
- {
- aMenuResource = R_SHARINGUI_MENUBAR;
- }
-
- // determine resource file location
- iCoeEnv = CEikonEnv::Static();
- RFs& fileSession = iCoeEnv->FsSession();
- TFileName rscFileName( KSharingUiRscFile );
- TFileName dllName;
- Dll::FileName( dllName );
- TBuf<2> drive = dllName.Left( 2 ); // Drive letter followed by ':'
- rscFileName.Insert( 0, drive );
- BaflUtils::NearestLanguageFile( fileSession, rscFileName );
- if ( !BaflUtils::FileExists( fileSession, rscFileName ) )
- {
- User::Leave( KErrNotFound );
- }
- // load the resource file
- iResFileOffset = iCoeEnv->AddResourceFileL( rscFileName );
- FeatureManager::InitializeLibL();
- iFeatureManagerInitialized = ETrue;
-
- CAknDialog::ConstructL( aMenuResource );
- }
-
-// --------------------------------------------------------------------------
-// Destructor
-// --------------------------------------------------------------------------
-//
-CUPnPAppFileSharingDialog::~CUPnPAppFileSharingDialog()
- {
- __LOG("CUPnPAppFileSharingDialog::~CUPnPAppFileSharingDialog");
-
- iFileSharingEngine.SetObserver( NULL );
-
- // unload resource file
- if ( iResFileOffset )
- {
- iCoeEnv->DeleteResourceFile( iResFileOffset );
- iResFileOffset = 0;
- }
-
- if( iFeatureManagerInitialized )
- {
- FeatureManager::UnInitializeLib();
- }
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::ExecuteSharingDialogLD()
-// Executes the dialog using the component's own resource
-// --------------------------------------------------------------------------
-//
-EXPORT_C TInt CUPnPAppFileSharingDialog::ExecuteSharingDialogLD()
- {
- return ExecuteLD( R_SHARINGUI_DIALOG );
- }
-
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::OkToExitL(TInt aButtonId)
-// called by framework when the softkey is pressed
-// --------------------------------------------------------------------------
-//
-TBool CUPnPAppFileSharingDialog::OkToExitL(TInt aButtonId)
-{
- __LOG("CUPnPAppFileSharingDialog::OkToExitL");
-
- TBool retval(EFalse);
- if (aButtonId == EAknSoftkeyOptions)
- {
- DisplayMenuL();
- }
- else if (aButtonId == EAknSoftkeyBack)
- {
- iTitlePane->SetTextToDefaultL();
- retval = ETrue; //back to previous dialog
- }
- else if ( aButtonId == EAknSoftkeyChange )
- {
- // msk event
- TKeyEvent tmpEvent;
- tmpEvent.iCode = EKeyOK;
- tmpEvent.iModifiers = 0;
- tmpEvent.iRepeats = 0;
- tmpEvent.iScanCode = 0;
- TEventCode eventType = EEventKey;
- OfferKeyEventL( tmpEvent, eventType );
- }
- return retval;
-}
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::DynInitMenuPaneL
-// Dynamically initalizes menu pane
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::DynInitMenuPaneL( TInt aResourceId,
- CEikMenuPane* aMenuPane )
- {
- __LOG("CUPnPAppMainDialog::CUPnPAppFileSharingDialog");
-
- if (aResourceId == R_SHARINGUI_MENU &&
- !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
- {
- aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
- }
- }
-
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::PreLayoutDynInitL()
-// called by framework before dialog is shown
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::PreLayoutDynInitL()
- {
- __LOG("CUPnPAppFileSharingDialog::PreLayoutDynInitL");
-
- iFileSharingList->LoadDataFromEngineL();
-
- // set dialog title
- iStatusPane = iEikonEnv->AppUiFactory()->StatusPane();
- iTitlePane = (CAknTitlePane*)iStatusPane->ControlL(
- TUid::Uid(EEikStatusPaneUidTitle));
- iTitlePane->SetTextL(*StringLoader::LoadLC( R_SHARINGUI_TITLE_TEXT ) );
- CleanupStack::PopAndDestroy();
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::ProcessCommandL()
-// called by framework when menu command is selected
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::ProcessCommandL(TInt aCommand)
- {
- __LOG("CUPnPAppFileSharingDialog::ProcessCommandL");
-
- HideMenu();
-
- switch ( aCommand )
- {
- case ESharingUiCmdRefresh:
- {
- TInt selectedItem = iFileSharingList->
- ListBox()->CurrentItemIndex();
- iFileSharingEngine.RefreshSharedMediaL( EImageAndVideo );
- iFileSharingEngine.RefreshSharedMediaL( EPlaylist );
- DisplayInfoL( R_SHARINGUI_UPDATING_CONTENT_HEADER,
- R_SHARINGUI_UPDATING_CONTENT_NOTE_TEXT,
- R_SHARINGUI_INFO_QUERY );
- break;
- }
- case ESharingUiCmdAppChange:
- {
- TInt selectedItem = iFileSharingList->ListBox()->CurrentItemIndex();
- if ( selectedItem == ESharingUiSettingItemVisibility )
- {
- iFileSharingList->EditItemL(selectedItem, ETrue);
- }
- else
- {
- RunMultiselectionDialogL();
- }
- break;
- }
-
- case EAknCmdExit:
- {
- User::Exit(KErrNone);
- break;
- }
-
- case EAknCmdHelp:
- {
- HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
- iEikonEnv->EikAppUi()->AppHelpContextL() );
- break;
- }
-
- default:
- {
- __LOG("CUPnPAppFileSharingDialog::ProcessCommandL Unknown cmd");
- }
- }
-
- CAknDialog::ProcessCommandL(aCommand);
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppSettingsDialog::OfferKeyEventL()
-// called by framework when key is pressed
-// --------------------------------------------------------------------------
-//
-TKeyResponse CUPnPAppFileSharingDialog::OfferKeyEventL(
- const TKeyEvent &aKeyEvent, TEventCode aType )
- {
- __LOG("CUPnPAppFileSharingDialog::OfferKeyEventL");
-
- TKeyResponse retval = EKeyWasNotConsumed;
- switch ( aKeyEvent.iCode )
- {
- case EKeyDownArrow:
- case EKeyUpArrow:
- {
- if (aType == EEventKey)
- {
- retval = iFileSharingList->OfferKeyEventL( aKeyEvent, aType );
- }
- break;
- }
-
- case EKeyOK:
- {
- if ( aType == EEventKey )
- {
- TInt selectedItem =
- iFileSharingList->ListBox()->CurrentItemIndex();
- if ( selectedItem == ESharingUiSettingItemVisibility )
- {
- retval = iFileSharingList->OfferKeyEventL(aKeyEvent, aType);
- }
- else
- {
- RunMultiselectionDialogL();
- retval = EKeyWasConsumed;
- }
- }
- break;
- }
-
- default:
- {
- retval = CAknDialog::OfferKeyEventL(aKeyEvent, aType);
- break;
- }
- }
-
- return retval;
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::HandleSharingStatus
-// Function informs when file sharing was enabled or disabled
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::HandleSharingStatus(
- CUPnPFileSharingEngine& aEngine,
- TInt aError,
- TBool aPhase )
- {
- __LOG( "[CUPnPAppFileSharingDialog]\t CUPnPAppFileSharingDialog::\
-HandleSharingStatus begin");
-
- iFileSharingList->HandleSharingStatus( aEngine, aError, aPhase );
-
- if( !aError )
- {
- TInt strId( R_UPNP_PHONE_HIDDEN_TEXT );
- if( aPhase )
- {
- strId = R_UPNP_PHONE_VISIBLE_TEXT;
- }
-
- TRAP_IGNORE(
- HBufC* str = StringLoader::LoadLC( strId );
- CAknInformationNote* note = new ( ELeave ) CAknInformationNote;
- note->ExecuteLD( *str );
- CleanupStack::PopAndDestroy( str ) );
- }
-
- __LOG( "[CUPnPAppFileSharingDialog]\t CUPnPAppFileSharingDialog::\
-HandleSharingStatus end");
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::HandleSharingProgress
-// Informs about status of the sharing progress
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::HandleSharingProgress(
- CUPnPFileSharingEngine& /*aEngine*/,
- const RArray<TUpnpProgressInfo>& aProgress )
- {
- __LOG( "[CUPnPAppFileSharingDialog]\t CUPnPAppFileSharingDialog::\
-HandleSharingProgress begin");
-
- TRAPD( err,
- CAknInputBlock::NewLC();
- iFileSharingList->SetFilesharingTextsL( aProgress );
- CleanupStack::PopAndDestroy() );
- if ( err != KErrNone )
- {
- //show some critical errors using
- //default symbian error notes
- CActiveScheduler::Current()->Error( err );
- }
-
- __LOG( "[CUPnPAppFileSharingDialog]\t CUPnPAppFileSharingDialog::\
-HandleSharingProgress end");
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::HandleSharingDone
-// Function informs when file sharing is done
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::HandleSharingDone(
- CUPnPFileSharingEngine& /*aEngine*/, TInt aError )
- {
- __LOG( "[CUPnPAppFileSharingDialog]\t CUPnPAppFileSharingDialog::\
-HandleSharingDone begin");
-
- //Show information note that sharing is completed
- if ( aError == KErrInUse ||
- aError == KErrNoMemory ||
- aError == KErrDiskFull )
- {
- //show some critical errors using
- //default symbian error notes
- CActiveScheduler::Current()->Error( aError );
- }
-
- __LOG( "[CUPnPAppFileSharingDialog]\t CUPnPAppFileSharingDialog::\
-HandleSharingDone end");
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::HandleSharingConnectionLost
-// Callback to inform if connection has been lost
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::HandleSharingConnectionLost(
- CUPnPFileSharingEngine& aEngine )
- {
- __LOG("CUPnPAppFileSharingDialog::HandleSharingConnectionLost");
-
- TRAPD( err,
- CAknInputBlock::NewLC();
- iFileSharingList->HandleSharingConnectionLost( aEngine );
- CleanupStack::PopAndDestroy() ); //CAknInputBlock
- if ( err != KErrNone )
- {
- //show some critical errors using
- //default symbian error notes
- CActiveScheduler::Current()->Error( err );
- }
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::RunMultiselectionDialogL();
-// Opens album selection dialog and sends selected albums
-// to engine
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::RunMultiselectionDialogL(void)
- {
- __LOG("CUPnPAppFileSharingDialog::RunMultiselectionDialogL");
-
- CUPnPMultiselectionUi* multiselectionDialog;
-
- TInt selectedItem = iFileSharingList->ListBox()->CurrentItemIndex();
-
- TInt visualSharingState;
-
-
- THomeConnectMediaType mediaType;
- if ( selectedItem == ESharingUiSettingItemVisual )
- {
- mediaType =
- EImageAndVideo;
- }
-
- else
- {
- mediaType =
- EPlaylist;
- }
- CArrayFix<TInt>* markedItems = new(ELeave) CArrayFixFlat<TInt>(3);
- CleanupStack::PushL( markedItems );
- multiselectionDialog = CUPnPMultiselectionUi::NewL(
- mediaType,
- &iFileSharingEngine,
- visualSharingState,
- markedItems );
- CleanupStack::PushL( multiselectionDialog );
- TInt ret = multiselectionDialog->ExecuteDlgLD();
-
- CleanupStack::PopAndDestroy( multiselectionDialog );
-
- multiselectionDialog = NULL;
-
- // Set title back
- iTitlePane->SetTextL(*StringLoader::LoadLC( R_SHARINGUI_TITLE_TEXT ));
- CleanupStack::PopAndDestroy();
-
- if ( ret )
- {
- __LOG("CUPnPAppFileSharingDialog::RunMultiselectionDialogL: \
-Calling ShareMediaFilesL..");
- // set selections
- iFileSharingEngine.SetSelectionIndexesL( mediaType, *markedItems );
-
- // Share files asynchronously
- iFileSharingEngine.ShareMediaL( mediaType );
-
- DisplayInfoL( R_SHARINGUI_UPDATING_CONTENT_HEADER,
- R_SHARINGUI_UPDATING_CONTENT_NOTE_TEXT,
- R_SHARINGUI_INFO_QUERY );
- }
- CleanupStack::PopAndDestroy( markedItems );
-
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::GetHelpContext
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::GetHelpContext(
- TCoeHelpContext& aContext) const
- {
- __LOG("CUPnPAppMainDialog::CUPnPAppFileSharingDialog");
-
- aContext.iMajor = TUid::Uid( KHomeConnectUID3 );
- aContext.iContext = KUPNP_HLP_SHARE_CONTENT;
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::CreateCustomControlL
-// From CAknDialog
-// --------------------------------------------------------------------------
-//
-SEikControlInfo CUPnPAppFileSharingDialog::CreateCustomControlL(
- TInt aControlType)
- {
- __LOG( "[CUPnPAppFileSharingDialog]\t CreateCustomControlL");
- iFileSharingList = CUPnPAppFileSharingList::NewL(
- &iFileSharingEngine );
-
- SEikControlInfo controlInfo;
- controlInfo.iControl = NULL;
- controlInfo.iTrailerTextId = 0;
- controlInfo.iFlags = 0;
-
- if ( aControlType == KAknCtLastControlId )
- {
- controlInfo.iControl = iFileSharingList;
- }
- iFileSharingEngine.RequestSharingProgressL();
-
- return controlInfo;
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::DisplayInfoL();
-// Shows message query to user
-// --------------------------------------------------------------------------
-//
-void CUPnPAppFileSharingDialog::DisplayInfoL(TInt aHeaderResourceId,
- TInt aMessageResourceId,
- TInt aDialogResourceId)
- {
- HBufC* noteHeader = StringLoader::LoadL(
- aHeaderResourceId);
- CleanupStack::PushL(noteHeader);
- HBufC* noteMsg = StringLoader::LoadL(
- aMessageResourceId);
- CleanupStack::PushL(noteMsg);
-
- CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL(*noteMsg);
-
- dlg->PrepareLC(aDialogResourceId);
- dlg->QueryHeading()->SetTextL(*noteHeader);
- dlg->RunLD();
-
- CleanupStack::PopAndDestroy(noteMsg);
- CleanupStack::PopAndDestroy(noteHeader);
- }
-
-// --------------------------------------------------------------------------
-// CUPnPAppFileSharingDialog::UpdateFileSharingListL();
-// Get the pointer of iFileSharingList,update the visibity of item
-// --------------------------------------------------------------------------
-//
-EXPORT_C void CUPnPAppFileSharingDialog::UpdateFileSharingListL()
- {
- if( iFileSharingList )
- {
- iFileSharingList->UpdateVisibitySettingItemL();
- }
-
- }
-// End of File