diff -r ebdbd102c78a -r 2eacb6118286 phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp --- a/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp Fri May 14 15:51:57 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/*! -* Copyright (c) 2010 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: Handles phone indicators. -* -*/ - -#include "phoneindicatorcontroller.h" -#include "phoneindicators.h" - -#include -#include - -#ifdef Q_OS_SYMBIAN -#include -#include -#include -#include -#endif - -PhoneIndicatorController::PhoneIndicatorController(QObject *parent): - QObject(parent), m_logsModel(0), m_missedCallsFilter(0) -{ -#ifdef Q_OS_SYMBIAN - m_setManager = new XQSettingsManager(this); - - XQSettingsKey settingsKey( XQSettingsKey::TargetCentralRepository, - KCRUidLogs.iUid, KLogsNewMissedCalls ); - - bool ok = connect( m_setManager, - SIGNAL( valueChanged(const XQSettingsKey & ,const QVariant &)), - this, SLOT(updateMissedCallIndicator(XQSettingsKey, - QVariant))); - ASSERT( ok ); - ok = false; - ok = m_setManager->startMonitoring( settingsKey ); - ASSERT(ok); - - qRegisterMetaType("PhoneIndicatorInfo"); - -#endif -} - -PhoneIndicatorController::~PhoneIndicatorController() -{ -#ifdef Q_OS_SYMBIAN - XQPublishAndSubscribeSettingsKey missedCallCountKey( - (qint32)KCRUidLogs.iUid, (quint32)KLogsNewMissedCalls ); - m_setManager->stopMonitoring(missedCallCountKey); - delete m_setManager; - delete m_missedCallsFilter; - delete m_logsModel; -#endif -} - -void PhoneIndicatorController::setActiveCallData( - const TDesC &text, const TDesC &icon ) -{ - m_cli = QString::fromUtf16 (text.Ptr (), text.Length ()); - m_callImage = QString::fromUtf16 (icon.Ptr (), icon.Length ()); -} - -void PhoneIndicatorController::clearActiveCallData() -{ - m_cli.clear(); - m_callImage.clear(); - disableActiveCallIndicator(); -} - -void PhoneIndicatorController::enableActiveCallIndicator() -{ - if (!m_cli.isEmpty()){ - QString indicatorType(indicatorName(PhoneActiveCallIndicator)); - QVariantMap parameters; - - parameters.insert( - QVariant(HbIndicatorInterface::PrimaryTextRole ).toString(), - m_cli); - - parameters.insert(QVariant( HbIndicatorInterface::DecorationNameRole).toString(), - m_callImage); - - m_indicator.activate(indicatorType, parameters); - } -} -void PhoneIndicatorController::disableActiveCallIndicator() -{ - QString indicatorType(indicatorName(PhoneActiveCallIndicator)); - m_indicator.deactivate(indicatorType); -} - -void PhoneIndicatorController::updateMissedCallIndicator( - const XQSettingsKey &key, const QVariant &value) -{ -#ifdef Q_OS_SYMBIAN - if ( key.key() == (quint32)KLogsNewMissedCalls ){ - if ( value.toInt() == 0 ){ - QString indicatorType(indicatorName(PhoneMissedCallIndicator)); - m_indicator.deactivate(indicatorType); - delete m_missedCallsFilter; - m_missedCallsFilter = NULL; - delete m_logsModel; - m_logsModel = NULL; - } else { - m_logsModel = new LogsModel(LogsModel::LogsFullModel); - m_missedCallsFilter = new LogsFilter(LogsFilter::Missed); - connect( m_missedCallsFilter, - SIGNAL(rowsInserted(const QModelIndex &, int, int )), - this, SLOT(setMissedallIndicatorData())); - m_missedCallsFilter->setMaxSize(value.toInt() + 1); - m_missedCallsFilter->setSourceModel(m_logsModel); - } - } -#endif -} - -void PhoneIndicatorController::setMissedallIndicatorData() -{ -#ifdef Q_OS_SYMBIAN - - XQSettingsKey settingsKey( XQSettingsKey::TargetCentralRepository, - KCRUidLogs.iUid, KLogsNewMissedCalls ); - QString indicatorType(indicatorName(PhoneMissedCallIndicator)); - - int missedCallCount = m_setManager->readItemValue( settingsKey, - XQSettingsManager::TypeInt ).toInt(); - - if ( missedCallCount > 0 ) { - QVariantMap parameters; - QString lastMissedCallFrom; - int repeatedMissedCalls(0); - - if ( m_missedCallsFilter->rowCount() > 0 ){ - lastMissedCallFrom = m_missedCallsFilter->data( - m_missedCallsFilter->index(0,0), - Qt::DisplayRole).toStringList().takeFirst(); - repeatedMissedCalls = 1; - } - for( int i = 1; i < missedCallCount && i - < m_missedCallsFilter->rowCount(); i++ ){ - QStringList displayData = m_missedCallsFilter->data( - m_missedCallsFilter->index(i,0), - Qt::DisplayRole).toStringList(); - if ( lastMissedCallFrom == displayData.at(0) ){ - repeatedMissedCalls++; - } else { - i = missedCallCount; // Break - } - } - // First row - parameters.insert( - QVariant( HbIndicatorInterface::PrimaryTextRole ).toString(), - ( hbTrId("txt_phone_dblist_ln_missed_calls", - missedCallCount))); - - // Second row - if ( missedCallCount >= repeatedMissedCalls ) - { - parameters.insert( - QVariant( HbIndicatorInterface::SecondaryTextRole ).toString(), - lastMissedCallFrom ); - } - - // icon - //QList icons = m_missedCallsFilter->data( - // m_missedCallsFilter->index(0,0), - // Qt::DecorationRole).value >(); - //QString iconName = icons.first().value().iconName(); - QString iconName = "qtg_mono_missed_call_unseen"; - parameters.insert( - QVariant( HbIndicatorInterface::DecorationNameRole ).toString(), - iconName ); - - m_indicator.activate(indicatorType, parameters); - } else { - m_indicator.deactivate( indicatorType ); - } -#endif -}