diff -r a5692c68d772 -r 593f946f4fec controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp --- a/controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp Fri Jun 25 17:12:20 2010 +0800 +++ b/controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp Wed Sep 29 10:09:58 2010 +0800 @@ -47,13 +47,13 @@ if( mProfileModel ) { QString strRing = loadStringValue(); - if( strRing.contains( "No_Sound.wav", Qt::CaseInsensitive) ) + if( QFileInfo(strRing) == QFileInfo(g_strNoTone) ) { setDescription( hbTrId("txt_cp_list_no_tone" ) ); //sepcial handling about NoTone } else { - setDescription( strRing.section(QDir::separator (),-1) ); + setDescription( QFileInfo(strRing).baseName() ); } } else @@ -62,18 +62,43 @@ } mSettingManager = new XQSettingsManager(); XQCentralRepositorySettingsKey key(KCRUidProfileEngine.iUid,KProEngSilenceMode); - + + //Monitoring the active ring tone + XQCentralRepositorySettingsKey keyForActiveRingTone(KCRUidProfileEngine.iUid,KProEngActiveRingTone); + QVariant silenceMode = mSettingManager->readItemValue( key,XQSettingsManager::TypeInt ); setEnabled( !silenceMode.toInt() ); mSettingManager->startMonitoring( key,XQSettingsManager::TypeInt ); + mSettingManager->startMonitoring(keyForActiveRingTone, XQSettingsManager::TypeString); connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)), this, SLOT(settingValueChanged(XQSettingsKey, QVariant))); } void CpPersonalizationEntryItemData::settingValueChanged( const XQSettingsKey& key, const QVariant& value ) { - Q_UNUSED(key); - setEnabled( !value.toInt() ); + switch (key.key()) { + case KProEngActiveRingTone: + { + QString strRing = loadStringValue(); + if( QFileInfo(strRing) == QFileInfo(g_strNoTone) ) + { + setDescription( hbTrId("txt_cp_list_no_tone" ) ); //sepcial handling about NoTone + } + else + { + setDescription( QFileInfo(strRing).baseName() ); + } + break; + } + case KProEngSilenceMode: + { + setEnabled( !value.toInt() ); + break; + + } + default: + break; + } } CpPersonalizationEntryItemData::~CpPersonalizationEntryItemData() @@ -116,6 +141,7 @@ default: if( m_profileID <0 ) { + strRing = mProfileModel->ringTone(); } else @@ -171,8 +197,10 @@ void CpPersonalizationEntryItemData::handleOk(const QString &strFname) { if(strFname.length()) - { - setDescription( strFname.section(QDir::separator (),-1) ); + { + //lower level services(tone fetcher or music fetcher) + //will guarantee strFname is a valid absolute file path. + setDescription(QFileInfo(strFname).baseName()); } else {