--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssossettings/src/ipssetview.cpp Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,194 @@
+/*
+* Copyright (c) 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: This file implements class CIpsSetView.
+*
+*/
+
+
+#include "emailtrace.h"
+#include <ecom/implementationproxy.h>
+#include <msvstd.h>
+#include <aknViewAppUi.h>
+//<cmail>
+#include "FreestyleEmailUiConstants.h"
+//</cmail>
+#include <ipssossettings.rsg>
+
+#include "ipssetview.h"
+#include "ipssetui.h"
+#include "../../ipssosplugin/inc/ipsplgsosbaseplugin.hrh"
+
+// CONTANTS
+const TInt KSubViewCountZero = 0;
+
+// interface implementation table
+const TImplementationProxy ImplementationTable[] =
+ {
+ IMPLEMENTATION_PROXY_ENTRY(
+ IPS_SET_ECOM_IMPLEMENTATION_UID,
+ CIpsSetView::NewL )
+ };
+
+// CESMailSettingsUiPlugin implementation
+
+CIpsSetView* CIpsSetView::NewL()
+ {
+ FUNC_LOG;
+ CIpsSetView* self = new (ELeave) CIpsSetView();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+void CIpsSetView::ConstructL()
+ {
+ FUNC_LOG;
+ BaseConstructL();
+ TCallBack callbackFunc( RunSettingsDlgL, this );
+ iAsyncCallback = new (ELeave) CAsyncCallBack( callbackFunc, CActive::EPriorityStandard );
+ }
+
+CIpsSetView::~CIpsSetView()
+ {
+ FUNC_LOG;
+ delete iAsyncCallback;
+ delete iCustomMessage;
+ }
+
+// Constructor
+CIpsSetView::CIpsSetView()
+ {
+ FUNC_LOG;
+ }
+
+TUid CIpsSetView::Id() const
+ {
+ FUNC_LOG;
+ return TUid::Uid( IPS_SET_ECOM_IMPLEMENTATION_UID );
+ }
+
+void CIpsSetView::DoActivateL(
+ const TVwsViewId& aPrevViewId,
+ TUid /*aCustomMessageId*/,
+ const TDesC8& aCustomMessage )
+ {
+ FUNC_LOG;
+ iPrevViewId = aPrevViewId;
+ delete iCustomMessage;
+ iCustomMessage = NULL;
+ iCustomMessage = aCustomMessage.AllocL();
+ iAsyncCallback->CallBack();
+ }
+
+void CIpsSetView::DoDeactivate()
+ {
+ FUNC_LOG;
+ }
+
+TPtrC CIpsSetView::MailSettingsSubviewCaption(
+ TFSMailMsgId /*aAccountId*/,
+ TInt /*aSubviewIndex*/,
+ TBool /*aLongCaption*/ )
+ {
+ FUNC_LOG;
+ return TPtrC( KNullDesC );
+ }
+
+TInt CIpsSetView::MailSettingsSubviewCount()
+ {
+ FUNC_LOG;
+ return KSubViewCountZero;
+ }
+
+TBool CIpsSetView::CanHandlePIMSync()
+ {
+ FUNC_LOG;
+ return EFalse;
+ }
+
+TPtrC CIpsSetView::LocalizedProtocolName()
+ {
+ FUNC_LOG;
+ return TPtrC( KNullDesC );
+ }
+
+TBool CIpsSetView::IsSelectedForPIMSync()
+ {
+ FUNC_LOG;
+ return EFalse;
+ }
+
+void CIpsSetView::SelectForPIMSync( TBool /*aSelectForSync*/ )
+ {
+ FUNC_LOG;
+ }
+
+TInt CIpsSetView::PIMSettingsSubviewCount()
+ {
+ FUNC_LOG;
+ return KSubViewCountZero;
+ }
+
+TPtrC CIpsSetView::PIMSettingsSubviewCaption(
+ TFSMailMsgId /*aAccountId*/,
+ TInt /*aSubviewIndex*/,
+ TBool /*aLongCaption*/ )
+ {
+ FUNC_LOG;
+ return TPtrC( KNullDesC );
+ }
+
+
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ TInt& aTableCount )
+ {
+ aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+ return ImplementationTable;
+ }
+
+TInt CIpsSetView::RunSettingsDlgL( TAny* aSelfPtr )
+ {
+ FUNC_LOG;
+ CIpsSetView* self = static_cast<CIpsSetView*>( aSelfPtr );
+
+ TSubViewActivationData subView;
+ TPckgBuf<CESMailSettingsPlugin::TSubViewActivationData> subViewData( subView ); //<cmail>
+ subViewData.Copy( *self->iCustomMessage );
+ subView = subViewData();
+
+ TInt buttonId( KErrNotFound );
+ CIpsSetUi* setUi = CIpsSetUi::NewL( subView.iAccount.Id(), subView.iLaunchFolderSettings );//<cmail>
+
+ // leaves if user choose cancel in queries,
+ // then just exit settings
+ TRAP_IGNORE( buttonId = setUi->ExecuteLD( R_IPS_SET_SETTINGS_DIALOG ) );
+
+ if( buttonId == EAknSoftkeyExit )
+ {
+ // Exit Freestyle app
+ User::Exit( KErrCancel );
+ }
+ else
+ {
+ // go back to previous view
+ self->AppUi()->ActivateViewL( self->iPrevViewId,
+ TUid::Uid(KMailSettingsReturnFromPluginSettings),
+ *self->iCustomMessage );
+ }
+ return KErrNone;
+ }
+// End of File
+