diff -r c76a0b1755b9 -r 2be0b271d017 phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp --- a/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp Fri Sep 17 08:29:19 2010 +0300 +++ b/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp Mon Oct 04 00:16:48 2010 +0300 @@ -69,6 +69,10 @@ this, SLOT(updateDivertIndicator(XQSettingsKey, QVariant))); + fetchMissedCalls( + m_setManager->readItemValue( + PhoneIndicatorControllerKeys::missedCallsSettingsKey).toInt()); + m_setManager->startMonitoring( PhoneIndicatorControllerKeys::missedCallsSettingsKey ); m_setManager->startMonitoring( PhoneIndicatorControllerKeys::unconditionalCFKey, XQSettingsManager::TypeByteArray); @@ -84,7 +88,6 @@ updateDiverIndicator(cfStatus & KCFVoiceForwarded); } #endif - connect(&m_indicator,SIGNAL(userActivated(QString,QVariantMap)), this,SLOT(handleInteraction(QString,QVariantMap))); } @@ -104,12 +107,14 @@ void PhoneIndicatorController::setActiveCallData() { + PHONE_TRACE m_cli = hbTrId("txt_phone_dblist_ongoing_call"); - m_callImage = "qtg_mono_call";//QString::fromUtf16 (icon.Ptr (), icon.Length ()); + m_callImage = "qtg_mono_call"; } void PhoneIndicatorController::clearActiveCallData() { + PHONE_TRACE m_cli.clear(); m_callImage.clear(); disableActiveCallIndicator(); @@ -117,6 +122,7 @@ void PhoneIndicatorController::enableActiveCallIndicator() { + PHONE_TRACE if (!m_cli.isEmpty()){ QString indicatorType(indicatorName(PhoneActiveCallIndicator)); QVariantMap parameters; @@ -133,6 +139,7 @@ } void PhoneIndicatorController::disableActiveCallIndicator() { + PHONE_TRACE QString indicatorType(indicatorName(PhoneActiveCallIndicator)); m_indicator.deactivate(indicatorType); } @@ -141,29 +148,17 @@ const XQSettingsKey &key, const QVariant &value) { #ifdef Q_OS_SYMBIAN - + PHONE_TRACE if (compareKeys(key, PhoneIndicatorControllerKeys::missedCallsSettingsKey) ){ - 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 { - if(!m_logsModel){ - m_logsModel = new LogsModel(LogsModel::LogsFullModel); - } - if(!m_missedCallsFilter){ - m_missedCallsFilter = new LogsFilter(LogsFilter::Missed); - connect( m_missedCallsFilter, - SIGNAL(rowsInserted(const QModelIndex &, int, int )), - this, SLOT(setMissedallIndicatorData())); - m_missedCallsFilter->setSourceModel(m_logsModel); - } - m_missedCallsFilter->setMaxSize(value.toInt() + 1); - } - } + QString indicatorType(indicatorName(PhoneMissedCallIndicator)); + m_indicator.deactivate(indicatorType); + // deleting null pointer has no effect. + delete m_missedCallsFilter; + m_missedCallsFilter = NULL; + delete m_logsModel; + m_logsModel = NULL; + fetchMissedCalls(value.toInt()); + } #endif } @@ -188,7 +183,7 @@ void PhoneIndicatorController::setMissedallIndicatorData() { #ifdef Q_OS_SYMBIAN - + PHONE_TRACE QString indicatorType(indicatorName(PhoneMissedCallIndicator)); int missedCallCount = m_setManager->readItemValue( @@ -225,10 +220,7 @@ iconName ); } m_indicator.activate(indicatorType, parameters); - } else { - m_indicator.deactivate( indicatorType ); } - #endif } @@ -283,7 +275,7 @@ service = "logs"; interface = XQI_LOGS_VIEW; operation = XQOP_LOGS_SHOW; - map.insert(XQLOGS_VIEW_INDEX , QVariant((int)XQService::LogsViewAll)); + map.insert(XQLOGS_VIEW_INDEX , QVariant((int)XQService::LogsViewMissed)); map.insert(XQLOGS_SHOW_DIALPAD, QVariant(false)); map.insert(XQLOGS_DIALPAD_TEXT, QVariant(QString())); args.append(QVariant(map)); @@ -311,7 +303,25 @@ return; } m_request->setArguments(args); - m_request->send(); - + m_request->send(); } } + +void PhoneIndicatorController::fetchMissedCalls(int count) +{ + PHONE_TRACE1(count) + + if(count > 0 ){ + if(!m_logsModel){ + m_logsModel = new LogsModel(LogsModel::LogsFullModel); + } + if(!m_missedCallsFilter){ + m_missedCallsFilter = new LogsFilter(LogsFilter::Missed); + connect( m_missedCallsFilter, + SIGNAL(rowsInserted(const QModelIndex &, int, int )), + this, SLOT(setMissedallIndicatorData())); + m_missedCallsFilter->setSourceModel(m_logsModel); + } + m_missedCallsFilter->setMaxSize(count + 1); + } +}