logsui/logsapp/src/logsmainwindow.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 04 May 2010 12:39:37 +0300
changeset 0 4a5361db8937
child 8 6c9acdc6adc0
child 10 b04270301d3b
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* 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 "logsmainwindow.h"
#include "logslogger.h"
#include "logsforegroundwatcher.h"
#include <QKeyEvent>
#include <xqserviceutil.h>

// -----------------------------------------------------------------------------
// LogsMainWindow::LogsMainWindow
// -----------------------------------------------------------------------------
//
LogsMainWindow::LogsMainWindow() : HbMainWindow(), mForeground(false)
{
    if ( viewport() ){
        viewport()->grabGesture(Qt::SwipeGesture);
    }
    mWatcher = new LogsForegroundWatcher(this);
    connect( mWatcher, SIGNAL(losingForeground()), this, SIGNAL(appFocusLost()) );
    connect( mWatcher, SIGNAL(gainingForeground()), this, SIGNAL(appFocusGained()) );
}

// -----------------------------------------------------------------------------
// LogsMainWindow::~LogsMainWindow
// -----------------------------------------------------------------------------
//
LogsMainWindow::~LogsMainWindow()
{
    if ( viewport() ){
        viewport()->ungrabGesture(Qt::SwipeGesture);
    }
}

// -----------------------------------------------------------------------------
// LogsMainWindow::sendAppToBackground
// -----------------------------------------------------------------------------
//
void LogsMainWindow::sendAppToBackground()
{
    LOGS_QDEBUG( "logs [UI] -> LogsMainWindow::sendAppToBackground" );
    mForeground = false;
    XQServiceUtil::toBackground(true);
    LOGS_QDEBUG( "logs [UI] <- LogsMainWindow::sendAppToBackground" );
}

// -----------------------------------------------------------------------------
// LogsMainWindow::bringAppToForeground
// -----------------------------------------------------------------------------
//
void LogsMainWindow::bringAppToForeground()
{
    LOGS_QDEBUG( "logs [UI] -> LogsMainWindow::bringAppToForeground" );
    if ( !mForeground ){
        mForeground = true;
        show();
        raise();
    }
    LOGS_QDEBUG( "logs [UI] <- LogsMainWindow::bringAppToForeground" );
}

// -----------------------------------------------------------------------------
// LogsMainWindow::isForeground
// -----------------------------------------------------------------------------
//
bool LogsMainWindow::isForeground() const
{
    return mForeground;
}

// -----------------------------------------------------------------------------
// LogsMainWindow::keyPressEvent
// -----------------------------------------------------------------------------
//
void LogsMainWindow::keyPressEvent( QKeyEvent *event )
{
    LOGS_QDEBUG_2( "LogsMainWindow::keyPressEvent, key", event->key() );
    if ( event->key() == Qt::Key_Call || event->key() == Qt::Key_Yes ) {
        // Handling at window level seems to be only way to avoid other
        // applications to handle call key as well.
        emit callKeyPressed();
        event->accept();
        return;
    }
    HbMainWindow::keyPressEvent(event);
}