phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine.cpp
author hgs
Fri, 09 Jul 2010 15:40:55 +0300
changeset 50 377c906a8701
parent 46 bc5a64e5bc3c
permissions -rw-r--r--
201027

/*
 * 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 <networkhandlingproxy.h>
#include "infowidgetengine.h"
#include "infowidgetnetworkhandler.h"
#include "infowidgetsathandler.h"
#include "infowidgetlogging.h"
#include "infowidgetpreferences.h"

/*!
  \class InfoWidgetEngine
  \brief Engine functionality of 
         Operator info widget
*/


/*!
   Constructor. 
 */
InfoWidgetEngine::InfoWidgetEngine(QObject *parent): 
    QObject(parent),
    m_networkHandler(new InfoWidgetNetworkHandler),
    m_satHandler(new InfoWidgetSatHandler)
{
    DPRINT << ": IN";
    
    // Connect network handler signals 
    QObject::connect(
        m_networkHandler.data(), SIGNAL(networkError(int, int)),
        this, SLOT(handleNetworkError(int, int))); 
    QObject::connect(
        m_networkHandler.data(), SIGNAL(networkDataChanged()),
        this, SLOT(updateNetworkDataToModel()));

    // Connect SAT handler signals 
    QObject::connect(m_satHandler.data(), 
            SIGNAL(handleError(int, int)),
                this, SLOT(handleSatError(int, int))); 
    QObject::connect(m_satHandler.data(), 
            SIGNAL(handleMessage(int)),
                this, SLOT(updateSatDataToModel())); 

    // Update initial model data
    updateNetworkDataToModel();
    updateSatDataToModel();
    
    DPRINT << ": OUT";
}

/*!
   Destructor. 
 */
InfoWidgetEngine::~InfoWidgetEngine()
{
    DPRINT;
}    

/*!
   Getter for model data. 
 */
const InfoWidgetEngine::ModelData& InfoWidgetEngine::modelData() const
{
    DPRINT;
    return m_modelData; 
}

/*!
   Updates Network Handler's network data to model. 
 */
void InfoWidgetEngine::updateNetworkDataToModel()
{
    DPRINT;
    if (m_networkHandler->isOnline()) {
        DPRINT << ": online, update data";
        m_modelData.setServiceProviderName(
                m_networkHandler->serviceProviderName());

        m_modelData.setServiceProviderNameDisplayRequired(
                m_networkHandler->serviceProviderNameDisplayRequired());
    
        m_modelData.setMcnName(m_networkHandler->mcnName()); 
        m_modelData.setMcnIndicatorType(
                m_networkHandler->mcnIndicatorType());
        
        m_modelData.setHomeZoneIndicatorType(
            m_networkHandler->homeZoneIndicatorType());
        m_modelData.setHomeZoneTextTag(
                m_networkHandler->homeZoneTextTag());
    } else {
        DPRINT << ": offline, clear data";
        m_modelData.setServiceProviderName("");
        m_modelData.setMcnName("");
        m_modelData.setHomeZoneTextTag(""); 
    }
    emit modelChanged();
}

/*!
   Updates SAT handler's SAT data to model.
 */
void InfoWidgetEngine::updateSatDataToModel()
{
    DPRINT;
    if (m_satHandler) {
        m_modelData.setSatDisplayText(
                m_satHandler->satDisplayText());
        
        emit modelChanged(); 
    } 
}

/*!
   Updates line handler's data to model. 
 */
void InfoWidgetEngine::updateLineDataToModel()
{
    DPRINT;
}

/*!
   Network error handler.  
 */
void InfoWidgetEngine::handleNetworkError(
        int operation, int errorCode)
{
    DWARNING << ": operation: " << operation << 
            " error code: " << errorCode; 
}

/*!
   SAT error handler. 
 */
void InfoWidgetEngine::handleSatError(
        int operation, int errorCode)
{
    DWARNING << ": operation: " << operation << 
            " error code: " << errorCode; 
}

/*!
   Line error handler. 
 */
void InfoWidgetEngine::handleLineError(
        int operation, int errorCode)
{
    DWARNING << ": operation: " << 
            operation << " error code: " << errorCode; 
}

/*!
   InfoWidgetEngine::handlePreferencesChanged
 */
void InfoWidgetEngine::handlePreferencesChanged(
        InfoWidgetPreferences::Options options)
{
    DPRINT; 
    if (options.testFlag(InfoWidgetPreferences::DisplayMcn)){
            m_networkHandler->enableMcn(); 
        } else {
            m_networkHandler->disableMcn();
        }
    if (options.testFlag(InfoWidgetPreferences::DisplaySatText)){
            m_satHandler->connect(true);
        } else {
            m_satHandler->connect(false);
        }
}

/*!
   Called when widget is deactivated 
   and widget should suspend all 
   possible activities 
 */
void InfoWidgetEngine::suspend() 
{
    DPRINT;
    m_networkHandler->suspend(); 
}

/*!
   Called when widget is activated 
   and widget can resume activities
 */
void InfoWidgetEngine::resume()
{
    DPRINT;
    m_networkHandler->resume(); 
}


// End of File.