radioapp/radiouiengine/src/radiostationmodel.cpp
changeset 50 c44f9bb56771
parent 41 3a6b55c6390c
child 53 bb6ed1806599
--- a/radioapp/radiouiengine/src/radiostationmodel.cpp	Thu Sep 02 20:26:56 2010 +0300
+++ b/radioapp/radiouiengine/src/radiostationmodel.cpp	Fri Sep 17 08:29:29 2010 +0300
@@ -35,14 +35,14 @@
 static QString parseLine( const RadioStation& station )
 {
     QString line = "";
-    const QString parsedFrequency = qtTrId( "txt_rad_dblist_l1_mhz" ).arg( RadioStation::parseFrequency( station.frequency() ) );
-    line.append( parsedFrequency );
 
     QString name = station.name();
     if ( !name.isEmpty() )
     {
-        line.append( " - " );
         line.append( name.trimmed() );
+    } else {
+        const QString parsedFrequency = qtTrId( "txt_rad_dblist_l1_mhz" ).arg( RadioStation::parseFrequency( station.frequency() ) );
+        line.append( parsedFrequency );
     }
 
     LOG_FORMAT( "RadioStationModel: Returning line %s", GETSTRING(line) );
@@ -99,16 +99,44 @@
     if ( role == Qt::DisplayRole ) {
         RadioStation station = stationAt( index.row() );
         QString firstLine = parseLine( station );
-        if ( d->mDetailLevel.testFlag( RadioStationModel::ShowGenre ) ) {
-            QStringList list;
-            list.append( firstLine );
-            QString genre = " "; // Empty space so that the listbox generates the second row
-            if ( station.genre() != -1 ) {
-                genre = d->mUiEngine.api().genreToString( station.genre(), GenreTarget::StationsList );
+        QString name = station.name();
+
+        if ( !name.isEmpty() ) {
+            if ( currentStation().frequency() == station.frequency() ) {
+                if ( d->mDetailLevel.testFlag( RadioStationModel::ShowGenre ) ) {
+                    QStringList list;
+                    list.append( firstLine );
+                    QString genre = " "; // Empty space so that the listbox generates the second row
+                    if ( station.genre() != -1 ) {
+                        genre = d->mUiEngine.api().genreToString( station.genre(), GenreTarget::StationsList );
+                    }
+                    list.append( genre );
+
+                    return list;
+                }
+            } else {
+                QStringList list;
+                list.append( firstLine );
+                QString parsedFrequency = " "; // Empty space so that the listbox generates the second row
+                parsedFrequency = qtTrId( "txt_rad_dblist_l1_mhz" ).arg( RadioStation::parseFrequency( station.frequency() ) );
+                list.append( parsedFrequency );
+                return list;
             }
-            list.append( genre );
-
-            return list;
+        } else {
+            if ( currentStation().frequency() != station.frequency() ) {
+                QStringList list;
+                list.append( firstLine );
+                return list;
+            } else {
+                QStringList list;
+                list.append( firstLine );
+                QString genre = " "; // Empty space so that the listbox generates the second row
+                if ( station.genre() != -1 ) {
+                    genre = d->mUiEngine.api().genreToString( station.genre(), GenreTarget::StationsList );
+                }
+                list.append( genre );
+                return list;
+            }
         }
 
         return firstLine;
@@ -541,6 +569,15 @@
 }
 
 /*!
+ * Finds number of local stations
+ */
+int RadioStationModel::localCount()
+{
+    Q_D( const RadioStationModel );
+    return d->locals().count();
+}
+
+/*!
  * Changes the favorite status of a station by its frequency. If the station does
  * not yet exist, it is added.
  */
@@ -594,7 +631,7 @@
     LOG_FORMAT( "RadioStationModel::renameStation, presetIndex: %d, name: %s", presetIndex, GETSTRING(name) );
     RadioStation station;
     if ( findPresetIndex( presetIndex, station ) != RadioStation::NotFound ) {
-        station.setUserDefinedName( name );
+        station.setUserDefinedName( name.left(15) ); // Only 15 characters allowed
         saveStation( station );
     }
 }
@@ -674,6 +711,7 @@
 {
     Q_D( RadioStationModel );
     LOG_TIMESTAMP( "Finished dynamic PS check." );
+    LOG("RadioStationModel::dynamicPsCheckEnded");
     if ( d->mCurrentStation->psType() != RadioStation::Dynamic && !d->mCurrentStation->dynamicPsText().isEmpty() )
     {
         d->mCurrentStation->setPsType( RadioStation::Static );