--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/AppSrc/CLogsDocument.cpp Wed Sep 01 12:29:52 2010 +0100
@@ -0,0 +1,228 @@
+/*
+* Copyright (c) 2002 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:
+* Logs document class
+*
+*/
+
+
+// INCLUDE FILES
+#include <aknapp.h>
+
+#include "CLogsDocument.h"
+#include "CLogsEngine.h"
+#include "CLogsAppUi.h"
+#include "LogsUID.h"
+#include <featmgr.h> //Feature manager
+
+#include "LogsDebug.h"
+#include "LogsTraces.h"
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// ==================== LOCAL FUNCTIONS ====================
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::CLogsDocument
+// ----------------------------------------------------------------------------
+//
+CLogsDocument::CLogsDocument( CAknApplication& aApp )
+ : CAknDocument( aApp )
+ {
+ TRACE_ENTRY_POINT;
+ TRACE_EXIT_POINT;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::ConstructL
+// ----------------------------------------------------------------------------
+//
+void CLogsDocument::ConstructL()
+ {
+ TRACE_ENTRY_POINT;
+ CCoeEnv::Static()->AddForegroundObserverL( *this );
+ iEngine = CLogsEngine::NewL();
+
+ //Set up FeatureManager
+ //This must be called in the scope of the thread before calling
+ //any other FeatureManager methods.
+ FeatureManager::InitializeLibL();
+
+ TRACE_EXIT_POINT;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::NewL
+// ----------------------------------------------------------------------------
+//
+CLogsDocument* CLogsDocument::NewL( CAknApplication& aApp )
+ {
+ TRACE_ENTRY_POINT;
+ CLogsDocument* self = new( ELeave ) CLogsDocument( aApp );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop(); // self
+
+ TRACE_EXIT_POINT;
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::~CLogsDocument
+// ----------------------------------------------------------------------------
+//
+CLogsDocument::~CLogsDocument()
+ {
+ TRACE_ENTRY_POINT;
+ CCoeEnv::Static()->RemoveForegroundObserver( *this );
+ delete iEngine;
+
+ //Free allocated FeatureManager
+ FeatureManager::UnInitializeLib();
+
+ //ECom clear up (done here as in CLogsAppUi dtor is too early as view framework
+ //destroys the view only after appui has been destroyed).
+
+ //Signal the destruction of interface implementation to ECOM.
+ REComSession::DestroyedImplementation( TUid::Uid(ELogSettingsViewId) );
+
+ //Direct users of ECOM plugins must call REComSession::FinalClose() method when all
+ //implementations they have created have been destroyed.
+ REComSession::FinalClose();
+
+ TRACE_EXIT_POINT;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::CreateAppUiL
+// ----------------------------------------------------------------------------
+//
+CEikAppUi* CLogsDocument::CreateAppUiL()
+ {
+ TRACE_ENTRY_POINT;
+ TRACE_EXIT_POINT;
+ return ( new( ELeave ) CLogsAppUi( iEngine ) ); //Ownership transferred to framework.
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::Engine
+// ----------------------------------------------------------------------------
+//
+CLogsEngine* CLogsDocument::Engine()
+ {
+ TRACE_ENTRY_POINT;
+ TRACE_EXIT_POINT;
+ return iEngine;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::HandleGainingForeground
+// ----------------------------------------------------------------------------
+//
+void CLogsDocument::HandleGainingForeground() //Non-leaving wrapper
+ {
+ TRACE_ENTRY_POINT;
+ TRAPD( err, HandleGainingForegroundL() );
+ if( err )
+ {
+ CCoeEnv::Static()->HandleError( err );
+ }
+
+ TRACE_EXIT_POINT;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::HandleGainingForegroundL
+// ----------------------------------------------------------------------------
+//
+void CLogsDocument::HandleGainingForegroundL() //Leaving
+ {
+ TRACE_ENTRY_POINT;
+ CLogsAppUi* ptr = STATIC_CAST(CLogsAppUi*, iAppUi);
+
+
+ //Reset execution mode back to foreground
+ ptr->SetExecutionMode( ELogsInForeground );
+
+ //Update process name from the caption (calls eventually CLogsDocument::UpdateTaskNameL)
+ CEikonEnv::Static()->UpdateTaskNameL();
+ TRACE_EXIT_POINT;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::HandleLosingForeground
+// ----------------------------------------------------------------------------
+//
+void CLogsDocument::HandleLosingForeground() //Non-leaving wrapper
+ {
+ TRACE_ENTRY_POINT;
+
+ TRAPD( err, HandleLosingForegroundL() );
+ if( err )
+ {
+ CCoeEnv::Static()->HandleError( err );
+ }
+ TRACE_EXIT_POINT;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::HandleLosingForegroundL
+// ----------------------------------------------------------------------------
+//
+void CLogsDocument::HandleLosingForegroundL() //Leaving version
+ {
+ TRACE_ENTRY_POINT;
+ //Update process name from the caption (calls eventually CLogsDocument::UpdateTaskNameL)
+ CEikonEnv::Static()->UpdateTaskNameL();
+
+ CLogsAppUi* ptr = STATIC_CAST( CLogsAppUi*, iAppUi );
+
+ if ( ptr->ExecutionMode() == ELogsInBackground_ExitOrEndPressed )
+ {
+ iEngine->FreeResourcesForBGModeL(); //Deletes objects to free some memory
+ }
+
+
+ TRACE_EXIT_POINT;
+ }
+
+// ----------------------------------------------------------------------------
+// CLogsDocument::UpdateTaskNameL
+// ----------------------------------------------------------------------------
+//
+void CLogsDocument::UpdateTaskNameL( CApaWindowGroupName* aWgName )
+ {
+ TRACE_ENTRY_POINT;
+ CEikDocument::UpdateTaskNameL( aWgName ); //Updates the task name from application's caption
+ TRACE_EXIT_POINT;
+ }
+
+// End of File
+