diff -r a3a1ae9acec6 -r da5135c61bad meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp --- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp Mon Mar 15 12:39:10 2010 +0200 +++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp Wed Mar 31 21:08:33 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 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" @@ -25,13 +25,13 @@ #include "cesmrattendeefield.h" #include "cesmrtrackingfieldlabel.h" #include "cesmrtrackstatus.h" -#include "cesmrviewerattachmentsfield.h" #include "cesmrviewerattendeesfield.h" #include "cesmrresponsefield.h" -#include "cesmrresponsereadyfield.h" #include "cesmrviewerfromfield.h" +#include "cesmrfieldbuilderinterface.h" +#include "CFSMailCommon.h" -#include +#include // DEBUG #include "emailtrace.h" @@ -74,33 +74,45 @@ } // ---------------------------------------------------------------------------- -// CESMRFieldBuilderPluginExtension::ExtensionL +// CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL // ---------------------------------------------------------------------------- // TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL( - EMRCFSMailBoxCapability aCapa ) + TMRCFSMailBoxCapability aCapa ) { FUNC_LOG; + iESMRStatic.ConnectL(); iESMRStaticAccessed = ETrue; - TBool response(EFalse); + return HasCapability( iESMRStatic.DefaultFSMailBoxL(), aCapa ); + } - if (aCapa == EMRCFSAttendeeStatus) - { - response = iESMRStatic.DefaultFSMailBoxL().HasCapability( - EFSMBoxCapaMeetingRequestAttendeeStatus ); - } +// ---------------------------------------------------------------------------- +// CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL +// ---------------------------------------------------------------------------- +// +TBool CESMRFieldBuilderPluginExtension::CFSMailBoxCapabilityL( + const TDesC& aEmailAddress, + TMRCFSMailBoxCapability aCapa ) + { + FUNC_LOG; + + iESMRStatic.ConnectL(); + iESMRStaticAccessed = ETrue; - return response; + CFSMailBox* mailBox = iESMRStatic.MailBoxL( aEmailAddress ); + TBool result = HasCapability( *mailBox, aCapa ); + delete mailBox; + + return result; } // ---------------------------------------------------------------------------- // CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL // ---------------------------------------------------------------------------- // -TBool CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL( - TBool aForceResetDefaultMRMailbox ) +TBool CESMRFieldBuilderPluginExtension::MRCanBeOriginateedL() { FUNC_LOG; TBool retValue( EFalse ); @@ -112,8 +124,7 @@ CleanupStack::PushL( calUtils2 ); if ( calUtils2->MRViewersEnabledL() ) { - TRAPD( err, - iESMRStatic.DefaultFSMailBoxL( aForceResetDefaultMRMailbox ) ); + TRAPD( err, iESMRStatic.DefaultFSMailBoxL() ); if ( KErrNone == err ) { @@ -191,6 +202,9 @@ User::Leave( KErrArgument ); } } + // Set field mode + field->SetFieldMode( EESMRFieldModeEdit ); + return field; } @@ -207,11 +221,6 @@ CESMRField* field = NULL; switch ( aField.iFieldId ) { - case EESMRFieldAttachments: - { - field = CESMRViewerAttachmentsField::NewL(); - } - break; case EESMRFieldAttendee: { field = CESMRViewerAttendeesField::NewL( CCalAttendee::EReqParticipant ); @@ -227,11 +236,6 @@ field = CESMRResponseField::NewL( aResponseObserver ); break; } - case EESMRFieldResponseReadyArea: - { - field = CESMRResponseReadyField::NewL( aResponseObserver ); - break; - } case EESMRFieldOrganizer: { field = CESMRViewerFromField::NewL(); @@ -262,5 +266,46 @@ return field; } + +// ----------------------------------------------------------------------------- +// CESMRFieldBuilderPluginExtension::HasCapability +// ----------------------------------------------------------------------------- +// +TBool CESMRFieldBuilderPluginExtension::HasCapability( + const CFSMailBox& aMailBox, + MESMRBuilderExtension::TMRCFSMailBoxCapability aCapability ) const + { + TBool response(EFalse); + + switch ( aCapability ) + { + case EMRCFSAttendeeStatus: + { + response = aMailBox.HasCapability( + EFSMBoxCapaMeetingRequestAttendeeStatus ); + break; + } + + case EMRCFSRemoveFromCalendar: + { + response = aMailBox.HasCapability( EFSMBoxCapaRemoveFromCalendar ); + break; + } + + case EMRCFSSupportsAttachmentsInMR: + { + response = aMailBox.HasCapability( EFSMboxCapaSupportsAttahmentsInMR ); + } + break; + + default: + { + break; + } + } + + return response; + } + //EOF