--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homesync/contentmanager/mediaservant/src/msfillruleeditview.cpp Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,276 @@
+/*
+* Copyright (c) 2008 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: CMSFillRuleEditView class implementation
+*
+*/
+
+
+#include <mediaservant.rsg>
+#include <hlplch.h>
+#include <StringLoader.h>
+#include <aknlistquerydialog.h>
+
+#include "msfillview.h"
+#include "msengine.h"
+#include "msfillruleeditlist.h"
+#include "msfillruleeditview.h"
+#include "msappui.h"
+#include "msconstants.h"
+#include "msdebug.h"
+
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView::CMSFillRuleEditView()
+// --------------------------------------------------------------------------
+//
+CMSFillRuleEditView::CMSFillRuleEditView( CMSAppUi& aAppUi )
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::CMSFillRuleEditView"));
+
+ iAppUi = &aAppUi;
+ }
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView::ConstructL()
+// --------------------------------------------------------------------------
+//
+void CMSFillRuleEditView::ConstructL()
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::ConstructL"));
+
+ BaseConstructL( R_MS_FILL_EDIT_VIEW );
+ }
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView::~CMSFillRuleEditView()
+// --------------------------------------------------------------------------
+//
+CMSFillRuleEditView::~CMSFillRuleEditView()
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::~CMSFillRuleEditView"));
+
+ DoDeactivate();
+ }
+
+// --------------------------------------------------------------------------
+// TUid CMSFillRuleEditView::Id()
+// --------------------------------------------------------------------------
+//
+TUid CMSFillRuleEditView::Id() const
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::Id"));
+
+ return KMSFillEditViewId;
+ }
+
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView::HandleCommandL(TInt aCommand)
+// --------------------------------------------------------------------------
+//
+void CMSFillRuleEditView::HandleCommandL( TInt aCommand )
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::HandleCommandL"));
+
+ switch (aCommand)
+ {
+ case EAknCmdOpen:
+ {
+ iContainer->OpenSelectedListboxItemL();
+ break;
+ }
+ case EAknSoftkeyDone:
+ {
+ iAppUi->MSEngine()->StopOperation();
+ iAppUi->FillRuleController()->UpdateArrayL();
+ iAppUi->ChangeViewL( KMSFillEditViewId, KMSFillViewId );
+ break;
+ }
+ case EMSCmdRemoveRule:
+ {
+ iContainer->RemoveCurrentRuleL();
+ break;
+ }
+ case EAknCmdHelp :
+ {
+ TRAP_IGNORE( HlpLauncher::LaunchHelpApplicationL(
+ iEikonEnv->WsSession(),
+ iEikonEnv->EikAppUi()->AppHelpContextL() ));
+ break;
+ }
+ default:
+ {
+ AppUi()->HandleCommandL(aCommand);
+ }
+ break;
+
+ }
+ }
+
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView::DoActivateL()
+// --------------------------------------------------------------------------
+//
+void CMSFillRuleEditView::DoActivateL(
+ const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
+ const TDesC8& /*aCustomMessage*/)
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::DoActivateL"));
+
+ if ( !iContainer )
+ {
+ // create settings screen
+ iContainer = CMSFillRuleEditList::NewL(*iAppUi,
+ *this );
+ iContainer->SetMopParent( this );
+
+ // now control receives keyboard events
+ iAppUi->AddToStackL( *this, iContainer );
+ iContainer->ActivateL();
+ }
+
+ // Set title text
+ HBufC* titleText = NULL;
+
+ switch ( iContainer->ListMediaType() )
+ {
+ case ECmImage:
+ {
+ titleText = StringLoader::LoadLC(
+ R_MS_EDIT_IMAGE_RULE_VIEW_TITLE );
+ break;
+ }
+ case ECmVideo:
+ {
+ titleText = StringLoader::LoadLC(
+ R_MS_EDIT_VIDEO_RULE_VIEW_TITLE );
+ break;
+ }
+ case ECmAudio:
+ {
+ titleText = StringLoader::LoadLC(
+ R_MS_EDIT_MUSIC_RULE_VIEW_TITLE );
+ break;
+ }
+ default:
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::DoActivateL \
+ list has no media type"));
+ break;
+ }
+ }
+
+ if ( titleText )
+ {
+ SetTitlePaneTextL( *titleText );
+ CleanupStack::PopAndDestroy ( titleText );
+ }
+ }
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView::DoDeactivate()
+// --------------------------------------------------------------------------
+//
+void CMSFillRuleEditView::DoDeactivate()
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::DoDeactivate"));
+
+ ClearCurrentNaviPaneText();
+
+ if ( iContainer )
+ {
+ AppUi()->RemoveFromStack( iContainer );
+ }
+
+ delete iContainer; // Deletes the container class object.
+ iContainer = NULL;
+ }
+
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView:DynInitMenuPaneL
+// --------------------------------------------------------------------------
+//
+void CMSFillRuleEditView::DynInitMenuPaneL( TInt aResourceId,
+ CEikMenuPane* aMenuPane )
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::DynInitMenuPaneL"));
+
+ if ( aResourceId == R_MS_FILL_EDIT_MENU && iContainer )
+ {
+ // check if the list is empty
+ if ( iContainer->IsCurrentRuleAdditional() == EFalse )
+ {
+ // Hide command
+ aMenuPane->SetItemDimmed(EMSCmdRemoveRule, ETrue);
+ }
+ }
+ }
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView:ShowTemplateQueryL
+// --------------------------------------------------------------------------
+//
+TBool CMSFillRuleEditView::ShowTemplateQueryL( TInt aResourceId,
+ TInt aQueryHeading,
+ CDesCArray* aRuleNames,
+ TInt &aSelected )
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::ShowTemplateQueryL"));
+
+ TBool ret( EFalse );
+
+ // construct and show template query
+ CAknListQueryDialog* query =
+ new ( ELeave ) CAknListQueryDialog( &aSelected );
+ query->PrepareLC( aResourceId );
+
+ // read header text
+ HBufC* header = StringLoader::LoadLC( aQueryHeading );
+ query->SetHeaderTextL( header->Des() );
+
+ // set item array
+ query->SetItemTextArray( aRuleNames );
+ query->SetOwnershipType( ELbmDoesNotOwnItemArray );
+ CleanupStack::PopAndDestroy( header );
+
+ if ( query->RunLD() )
+ {
+ ret = ETrue;
+ }
+
+ return ret;
+ }
+
+// --------------------------------------------------------------------------
+// CMSFillRuleEditView:ShowQueryL
+// --------------------------------------------------------------------------
+//
+TBool CMSFillRuleEditView::ShowQueryL( TInt aResourceId )
+ {
+ LOG(_L("[MediaServant]\t CMSFillRuleEditView::ShowQueryL"));
+
+ TBool ret( EFalse );
+ CAknQueryDialog* query= CAknQueryDialog::NewL( CAknQueryDialog::ENoTone );
+ CleanupStack::PushL( query );
+ if ( query->ExecuteLD( aResourceId ) )
+ {
+ ret = ETrue;
+ }
+ CleanupStack::Pop( query );
+ return ret;
+ }
+
+// End of File