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
{