controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp
changeset 33 0cfa53de576f
parent 28 e0b83131558d
--- a/controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp	Thu Aug 05 11:28:29 2010 +0800
+++ b/controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp	Tue Aug 24 10:56:32 2010 +0800
@@ -47,7 +47,7 @@
     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
         }
@@ -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