diff -r 04837bf3a628 -r 21be958eb3ce radioapp/radiowidgets/src/radiocarouselitem.cpp --- a/radioapp/radiowidgets/src/radiocarouselitem.cpp Tue Oct 12 11:25:14 2010 +0300 +++ b/radioapp/radiowidgets/src/radiocarouselitem.cpp Fri Oct 15 16:26:27 2010 +0300 @@ -56,6 +56,7 @@ */ RadioCarouselItem::RadioCarouselItem( RadioCarouselItemObserver& observer, QGraphicsItem* parent, bool registerCss ) : HbWidget( parent ), + mFrequency( 0 ), mObserver( observer ), mFavoriteItem( NULL ), mGenreItem( NULL ), @@ -169,7 +170,7 @@ if ( mFlags.testFlag( FavoriteTouchable ) && mFavoriteTouchArea->sceneBoundingRect().contains( mappedHotSpot ) ) { - mObserver.handleIconClicked( *mStation ); + mObserver.handleIconClicked( mFrequency ); } else if ( mFlags.testFlag( RadiotextTouchable ) && mRadiotextItem->sceneBoundingRect().contains( mappedHotSpot ) ) { @@ -284,6 +285,7 @@ void RadioCarouselItem::setStation( const RadioStation& station ) { *mStation = station; + mFrequency = station.frequency(); updateLayout(); @@ -295,7 +297,7 @@ */ uint RadioCarouselItem::frequency() const { - return mStation->frequency(); + return mFrequency; } /*! @@ -305,6 +307,7 @@ { if ( station ) { *mStation = *station; + mFrequency = station->frequency(); updateLayout(); } @@ -325,26 +328,29 @@ mNameItem->setText( mStation->frequencyString() ); } - if ( mStation->hasRadiotext() ) { - mRadiotextItem->setText( mStation->radioText() ); - } else { - if ( mStation->hasDynamicPs() ) { - mRadiotextItem->setText( mStation->dynamicPsText() ); - } else if ( hasName ) { - const QString loc = hbTrId( "txt_rad_list_l1_mhz_small" ); - mRadiotextItem->setText( loc.arg( mStation->frequencyString() ) ); + if ( mObserver.isAntennaAttached() ) { + + if ( mStation->hasRadiotext() ) { + mRadiotextItem->setText( mStation->radioText() ); } else { - mRadiotextItem->setText( "" ); + if ( mStation->hasDynamicPs() ) { + mRadiotextItem->setText( mStation->dynamicPsText() ); + } else if ( hasName ) { + const QString loc = hbTrId( "txt_rad_list_l1_mhz_small" ); + mRadiotextItem->setText( loc.arg( mStation->frequencyString() ) ); + } else { + mRadiotextItem->setText( "" ); + } } - } - mUrlItem->setText( mStation->url() ); - if ( mStation->hasUrl() ) { - HbStyle::setItemName( mUrlItem, URL_LABEL ); - setFlags( UrlVisible | UrlTouchable ); - } else { - HbStyle::setItemName( mUrlItem, "" ); // Clear the name so the item disappears from layout - clearFlags( UrlVisible | UrlTouchable ); + mUrlItem->setText( mStation->url() ); + if ( mStation->hasUrl() ) { + HbStyle::setItemName( mUrlItem, URL_LABEL ); + setFlags( UrlVisible | UrlTouchable ); + } else { + HbStyle::setItemName( mUrlItem, "" ); // Clear the name so the item disappears from layout + clearFlags( UrlVisible | UrlTouchable ); + } } updateFavoriteIcon( mStation->isFavorite() ); @@ -360,16 +366,12 @@ { LOG_FORMAT( "RadioCarouselItem::setFrequency: %d", frequency ); - if ( mStation->hasName() && mStation->frequency() == frequency ) { - mNameItem->setText( mStation->name() ); - } else { - mNameItem->setText( RadioStation::parseFrequency( frequency ) ); - } - - + QString text = RadioStation::parseFrequency( frequency ); if ( !mObserver.isInManualSeek() ) { *mStation = mObserver.findStation( frequency ); } + mFrequency = frequency; + mNameItem->setText( text ); } /*!