diff -r e4c884866116 -r 6a40edd41841 logsui/logsengine/logssymbianos/src/logsforegroundwatcher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/logsengine/logssymbianos/src/logsforegroundwatcher.cpp Mon Oct 04 00:17:41 2010 +0300 @@ -0,0 +1,92 @@ +/* +* 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 "logsforegroundwatcher.h" +#include "logslogger.h" +#include + + +// ----------------------------------------------------------------------------- +// Currently no other way to monitor first app foreground switch in case +// mainwindow is not made yet visible. +// ----------------------------------------------------------------------------- +// +LogsForegroundWatcher::LogsForegroundWatcher(QObject* parent) : QObject(parent) +{ + CCoeEnv* env = CCoeEnv::Static(); + if (env) { + TRAP_IGNORE(env->AddForegroundObserverL(*this)); + } +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +LogsForegroundWatcher::~LogsForegroundWatcher() +{ + CCoeEnv* env = CCoeEnv::Static(); + if (env) { + env->RemoveForegroundObserver(*this); + } +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void LogsForegroundWatcher::ensureBackgroundStartup() +{ + CApaCommandLine* commandLine = 0; + CApaCommandLine::GetCommandLineFromProcessEnvironment(commandLine); + if ( commandLine ){ + TApaCommand command = commandLine->Command(); + if (command != EApaCommandBackground) { + LOGS_QDEBUG( "logs [UI] -> LogsForegroundWatcher::ensureBackgroundStartup"); + TRAPD( err, commandLine->SetCommandL( EApaCommandBackground ) ); + if ( !err ){ + RProcess thisProcess; + TRAP_IGNORE( commandLine->SetProcessEnvironmentL(thisProcess) ) + } + LOGS_QDEBUG( "logs [UI] <- LogsForegroundWatcher::ensureBackgroundStartup"); + } + delete commandLine; + } +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void LogsForegroundWatcher::HandleGainingForeground() +{ + LOGS_QDEBUG( "logs [UI] -> LogsForegroundWatcher::HandleGainingForeground" ); + emit gainingForeground(); + LOGS_QDEBUG( "logs [UI] <- LogsForegroundWatcher::HandleGainingForeground" ); +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void LogsForegroundWatcher::HandleLosingForeground() +{ + LOGS_QDEBUG( "logs [UI] -> LogsForegroundWatcher::HandleLosingForeground" ); + emit losingForeground(); + LOGS_QDEBUG( "logs [UI] <- LogsForegroundWatcher::HandleLosingForeground" ); +} +