diff -r 57a65a3a658c -r 06f47423ecee remotemgmt_plat/syncml_ds_error_reporting_api/tsrc/SyncStatusSpy/src/SyncStatusSpyAppUi.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/syncml_ds_error_reporting_api/tsrc/SyncStatusSpy/src/SyncStatusSpyAppUi.cpp Fri Mar 12 15:46:48 2010 +0200 @@ -0,0 +1,181 @@ +/* +* 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" +* 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: +* +*/ + + +#include +#include +#include +#include + +#include // BaflUtils +#include //CApaWindowGroupName +#include +#include +#include + + +#include "SyncStatusSpyAppUi.h" +#include "SyncStatusSpySettingItemList.h" +#include "SyncStatusSpySettingItemList.hrh" + +#include "CenrepUtils.h" +#include // TDataType + +/** + * Construct the CSyncStatusSpyAppUi instance + */ +CSyncStatusSpyAppUi::CSyncStatusSpyAppUi() + { + + } + +/** + * The appui's destructor removes the container from the control + * stack and destroys it. + */ +CSyncStatusSpyAppUi::~CSyncStatusSpyAppUi() + { + if ( iSyncStatusSpySettingItemList != NULL ) + { + RemoveFromStack( iSyncStatusSpySettingItemList ); + delete iSyncStatusSpySettingItemList; + iSyncStatusSpySettingItemList = NULL; + delete iSettings; + iSettings = NULL; + } + delete iDocHandler; + } + +/** + * @brief Completes the second phase of Symbian object construction. + * Put initialization code that could leave here. + */ +void CSyncStatusSpyAppUi::ConstructL() + { + + BaseConstructL( EAknEnableSkin | + EAknEnableMSK ); + InitializeContainersL(); + + CCenrepUtils::CreateSyncLogDirL(); + iDocHandler = CDocumentHandler::NewL(); + + // security policies for P&S reading and writing + _LIT_SECURITY_POLICY_PASS( KNSmlPSWritePolicy ); // no checks done when writing + _LIT_SECURITY_POLICY_PASS( KNSmlPSReadPolicy ); // no checks done when reading + + // Define P&S data field for sync ON/OFF flag (may fail e.g. if exists already) + RProperty::Define( KPSUidDataSynchronizationInternalKeys, // category + KDataSyncStatus, // field + RProperty::EInt, // type + KNSmlPSReadPolicy, // read policy + KNSmlPSWritePolicy ); // write policy + } + + +void CSyncStatusSpyAppUi::InitializeContainersL() + { + iSettings = CSyncStatusSpySettingItemListSettings::NewL(); + iSyncStatusSpySettingItemList = new ( ELeave ) CSyncStatusSpySettingItemList( *iSettings, this ); + iSyncStatusSpySettingItemList->SetMopParent( this ); + iSyncStatusSpySettingItemList->ConstructFromResourceL( R_SYNC_STATUS_SPY_SETTING_ITEM_LIST_SYNC_STATUS_SPY_SETTING_ITEM_LIST ); + iSyncStatusSpySettingItemList->ActivateL(); + AddToStackL( iSyncStatusSpySettingItemList ); + } + + +/** + * Handle a command for this appui (override) + * @param aCommand command id to be handled + */ +void CSyncStatusSpyAppUi::HandleCommandL( TInt aCommand ) + { + _LIT( KPrivateFile,"C:\\logs\\Sync\\SyncStatus.txt" ); + TBool commandHandled = EFalse; + + switch ( aCommand ) + { // code to dispatch to the AppUi's menu and CBA commands is generated here + case ESyncStatusSpyAppUiPublishMenuItemCommand: + RProperty::Set( KPSUidDataSynchronizationInternalKeys, + KDataSyncStatus, + EDataSyncRunning12 ); + + // Set sync stopped to P&S + RProperty::Set( KPSUidDataSynchronizationInternalKeys, KDataSyncStatus, EDataSyncNotRunning ); + commandHandled = ETrue; + break; + + case ESyncStatusSpyAppUiView_logMenuItemCommand: + { + TDataType empty; + iDocHandler->OpenFileEmbeddedL( KPrivateFile, empty ); + commandHandled = ETrue; + } + break; + + case ESyncStatusSpyAppUiHideMenuItemCommand: + { + TApaTask task(iEikonEnv->WsSession( )); + task.SetWgId(CEikonEnv::Static()->RootWin().Identifier()); + task.SendToBackground(); + commandHandled = ETrue; + } + break; + + case ESyncStatusSpyAppUiDelete_logMenuItemCommand: + CCenrepUtils::ClearSyncLogL(); + commandHandled = ETrue; + break; + + default: + break; + } + + + if ( !commandHandled ) + { + if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit ) + { + Exit(); + } + } + } + +/** + * Override of the HandleResourceChangeL virtual function + */ +void CSyncStatusSpyAppUi::HandleResourceChangeL( TInt aType ) + { + CAknAppUi::HandleResourceChangeL( aType ); + + } + +/** + * Override of the HandleForegroundEventL virtual function + */ +void CSyncStatusSpyAppUi::HandleForegroundEventL(TBool aForeground) + { + // Call Base class method + CAknAppUi::HandleForegroundEventL(aForeground); + + if(aForeground) + { + iSyncStatusSpySettingItemList->LoadSettingValuesL(); + iSyncStatusSpySettingItemList->LoadSettingsL(); + iSyncStatusSpySettingItemList->DrawDeferred(); + } + }