radioapp/radiouiengine/src/radiomonitorservice.cpp
changeset 32 189d20c34778
parent 28 075425b8d9a4
child 37 451b2e1545b2
child 47 74b7c6e79031
--- a/radioapp/radiouiengine/src/radiomonitorservice.cpp	Fri Jun 11 13:38:32 2010 +0300
+++ b/radioapp/radiouiengine/src/radiomonitorservice.cpp	Wed Jun 23 18:12:57 2010 +0300
@@ -17,6 +17,7 @@
 
 // System includes
 #include <QTimer>
+#include <QRegExp>
 
 // User includes
 #include "radiomonitorservice.h"
@@ -44,15 +45,15 @@
  *
  */
 RadioMonitorService::RadioMonitorService( RadioUiEnginePrivate& engine ) :
-    XQServiceProvider( RADIO_MONITOR_SERVICE, &engine.api() ),
+    XQServiceProvider( RADIO_SERVICE +"."+ RADIO_MONITOR_SERVICE, &engine.api() ),
     mUiEngine( engine ),
     mRadioStatus( RadioStatus::UnSpecified ),
     mNotificationTimer( new QTimer( this ) )
 {
     mNotificationTimer->setSingleShot( true );
     mNotificationTimer->setInterval( NOTIFICATION_DELAY );
-    Radio::connect( mNotificationTimer.data(),  SIGNAL(timeout()),
-                    this,                       SLOT(sendNotifications()) );
+    Radio::connect( mNotificationTimer, SIGNAL(timeout()),
+                    this,               SLOT(sendNotifications()) );
 
     publishAll();
 }
@@ -125,7 +126,7 @@
     notification.setValue( RadioNotificationData( RadioServiceNotification::FavoriteCount, stationModel.favoriteCount() ) );
     notificationList.append( notification );
 
-    notification.setValue( RadioNotificationData( RadioServiceNotification::Frequency, station.frequency() ) );
+    notification.setValue( RadioNotificationData( RadioServiceNotification::Frequency, RadioStation::parseFrequency( station.frequency() ) ) );
     notificationList.append( notification );
 
     if ( !station.name().isEmpty() ) {
@@ -140,7 +141,8 @@
     }
 
     if ( !station.radioText().isEmpty() ) {
-        notification.setValue( RadioNotificationData( RadioServiceNotification::RadioText, station.radioText() ) );
+        const QString trimmedRadioText = trimHtmlTags( station.radioText() );
+        notification.setValue( RadioNotificationData( RadioServiceNotification::RadioText, trimmedRadioText ) );
         notificationList.append( notification );
     }
 
@@ -219,7 +221,8 @@
     }
 
     if ( station.hasDataChanged( RadioStation::RadioTextChanged ) ) {
-        notification.setValue( RadioNotificationData( RadioServiceNotification::RadioText, station.radioText() ) );
+        const QString trimmedRadioText = trimHtmlTags( station.radioText() );
+        notification.setValue( RadioNotificationData( RadioServiceNotification::RadioText, trimmedRadioText ) );
         list.append( notification );
     }
 
@@ -243,7 +246,7 @@
 {
     Q_UNUSED( reason );
     if ( !mUiEngine.api().isScanning() ) {
-        RUN_NOTIFY( Frequency, frequency );
+        RUN_NOTIFY( Frequency, RadioStation::parseFrequency( frequency ) );
         RadioStation station;
         if ( mUiEngine.api().stationModel().findFrequency( frequency, station ) && !station.name().isEmpty() ) {
             RUN_NOTIFY( Name, station.name() );
@@ -287,6 +290,18 @@
 /*!
  *
  */
+QString RadioMonitorService::trimHtmlTags( const QString& html )
+{
+    QString trimmed = html;
+    QRegExp rex( "<.+>" );
+    rex.setMinimal( true );
+    trimmed.remove( rex );
+    return trimmed;
+}
+
+/*!
+ *
+ */
 void RadioMonitorService::notify( const QVariant& notification )
 {
     mNotificationTimer->stop();