radioapp/radiowidgets/src/radiostationitem.cpp
branchGCC_SURGE
changeset 37 451b2e1545b2
parent 26 6bcf277166c1
parent 33 11b6825f0862
--- a/radioapp/radiowidgets/src/radiostationitem.cpp	Fri Jun 11 16:24:13 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-// System includes
-#include <HbStyleLoader>
-#include <HbPushButton>
-#include <HbAnchorLayout>
-#include <HbMessageBox>
-
-// User includes
-#include "radiostationitem.h"
-#include "radiostationcarousel.h"
-#include "radiouiengine.h"
-#include "radiofadinglabel.h"
-#include "radiostationmodel.h"
-#include "radiologger.h"
-
-//static const char* FILE_PATH_WIDGETML   = ":/layout/radiostationitem.widgetml";
-//static const char* FILE_PATH_CSS        = ":/layout/radiostationitem.css";
-static const char* GENRE_LABEL            = "tv:genre_label";
-static const char* NAME_LABEL             = "tv:name_label";
-static const char* RADIOTEXT_LABEL        = "tv:radiotext_label";
-static const char* URL_LABEL              = "tv:url_label";
-//static const char* FAVORITE_BUTTON      = "favorite_button";
-
-const char* SEEKING_TEXT = "txt_rad_list_tuning";
-const char* CONNECT_HEADSET_TEXT = "txt_rad_list_connect_wireless_antenna_headset_with";
-
-/*!
- *
- */
-RadioStationItem::RadioStationItem( RadioStationCarousel& carousel ) :
-    HbAbstractViewItem( &carousel ),
-    mCarousel( carousel ),
-    mLayout( 0 ),
-    mNameLabel( 0 ),
-    mIconButton( 0 ),
-    mGenreLabel( 0 ),
-    mRadiotextLabel( 0 ),
-    mUrlLabel( 0 )
-{
-    setFlag( QGraphicsItem::ItemIsFocusable, true );
-}
-
-/*!
- * From HbAbstractViewItem
- *
- */
-HbAbstractViewItem* RadioStationItem::createItem()
-{
-    RadioStationItem* item = new RadioStationItem( *this ); // Calls copy constructor
-//    item->setParent( &mCarousel );
-//    item->setParentItem( &mCarousel );
-//    item->setItemView( itemView() );
-//    item->updateChildItems();
-    return item;
-}
-
-/*!
- * From HbAbstractViewItem
- */
-void RadioStationItem::updateChildItems()
-{
-    if ( !mLayout )
-    {
-        mIconButton = new HbPushButton( this );
-        QPixmap background( QSize( 50, 50 ) );
-        background.fill( Qt::transparent );
-        mIconButton->setBackground( HbIcon( background ) );
-        mIconButton->setIcon( mCarousel.nonFavoriteIcon() );
-        mIconButton->setMaximumSize( 50, 50 );
-        connectAndTest( mIconButton, SIGNAL(clicked()), this, SLOT(toggleFavorite()));
-
-        mNameLabel = new RadioFadingLabel( this );
-        mNameLabel->setAlignment( Qt::AlignCenter );
-        mNameLabel->setObjectName( NAME_LABEL );
-        HbFontSpec spec = mNameLabel->fontSpec();
-        spec.setRole( HbFontSpec::Primary );
-        mNameLabel->setFontSpec( spec );
-
-        spec.setRole( HbFontSpec::Secondary );
-
-        mGenreLabel = new RadioFadingLabel( this );
-        mGenreLabel->setAlignment( Qt::AlignCenter );
-        mGenreLabel->setObjectName( GENRE_LABEL );
-        mGenreLabel->setTextColor( Qt::white );
-
-        mRadiotextLabel = new RadioFadingLabel( this );
-        mRadiotextLabel->setAlignment( Qt::AlignCenter );
-        mRadiotextLabel->setObjectName( RADIOTEXT_LABEL );
-        mRadiotextLabel->setTextWrapping( Hb::TextWordWrap );
-//        mRadiotextLabel->setFadingEnabled( true );    TODO
-//        mRadiotextLabel->setFontSpec( spec );
-        mRadiotextLabel->setTextColor( Qt::white );
-
-        mUrlLabel = new RadioFadingLabel( this );
-        mUrlLabel->setAlignment( Qt::AlignCenter );
-        mUrlLabel->setObjectName( URL_LABEL );
-        mUrlLabel->setTextColor( Qt::white );
-
-        mLayout = new HbAnchorLayout();
-
-        mLayout->setAnchor( mLayout, Hb::TopEdge, mIconButton, Hb::TopEdge, 20.0 );
-        mLayout->setAnchor( mLayout, Hb::LeftEdge, mIconButton, Hb::LeftEdge, 20.0 );
-
-        mLayout->setAnchor( mIconButton, Hb::CenterVEdge, mGenreLabel, Hb::CenterVEdge, 0.0 );
-        mLayout->setAnchor( mIconButton, Hb::RightEdge, mGenreLabel, Hb::LeftEdge, 20.0 );
-        mLayout->setAnchor( mLayout, Hb::RightEdge, mGenreLabel, Hb::RightEdge, -70.0 );
-
-        mLayout->setAnchor( mGenreLabel, Hb::BottomEdge, mNameLabel, Hb::TopEdge, 0.0 );
-        mLayout->setAnchor( mLayout, Hb::LeftEdge, mNameLabel, Hb::LeftEdge, 10.0 );
-        mLayout->setAnchor( mLayout, Hb::RightEdge, mNameLabel, Hb::RightEdge, -10.0 );
-
-        mLayout->setAnchor( mNameLabel, Hb::BottomEdge, mRadiotextLabel, Hb::TopEdge, 10.0 );
-        mLayout->setAnchor( mLayout, Hb::LeftEdge, mRadiotextLabel, Hb::LeftEdge, 10.0 );
-        mLayout->setAnchor( mLayout, Hb::RightEdge, mRadiotextLabel, Hb::RightEdge, -10.0 );
-
-        mLayout->setAnchor( mRadiotextLabel, Hb::BottomEdge, mUrlLabel, Hb::TopEdge, 10.0 );
-        mLayout->setAnchor( mLayout, Hb::LeftEdge, mUrlLabel, Hb::LeftEdge, 10.0 );
-        mLayout->setAnchor( mLayout, Hb::RightEdge, mUrlLabel, Hb::RightEdge, -10.0 );
-        mLayout->setAnchor( mLayout, Hb::BottomEdge, mUrlLabel, Hb::BottomEdge, -10.0 );
-
-        setLayout( mLayout );
-    }
-
-    update();
-}
-
-/*!
- * Private slot
- *
- */
-void RadioStationItem::toggleFavorite()
-{
-    RadioUiEngine* uiEngine = carousel()->uiEngine();
-    if ( uiEngine ) {
-        uiEngine->stationModel().setData( modelIndex(), mFrequency, RadioStationModel::ToggleFavoriteRole );
-    }
-}
-
-/*!
- *
- */
-uint RadioStationItem::frequency() const
-{
-    return mFrequency;
-}
-
-/*!
- *
- */
-void RadioStationItem::update( const RadioStation* station )
-{
-    QModelIndex index = modelIndex();
-    if ( !( station && station->isValid() ) && !index.isValid() ) {
-        return;
-    }
-
-    RadioUiEngine* uiEngine = carousel()->uiEngine();
-    if ( !mCarousel.isInScanningMode() && uiEngine ) {
-        RadioStation tempStation = ( station && station->isValid() ) ? *station
-                        : index.data( RadioStationModel::RadioStationRole ).value<RadioStation>();
-
-        mNameLabel->setTextWithoutFading( nameOrFrequency( tempStation ) );
-
-        mGenreLabel->setText( uiEngine->genreToString( tempStation.genre(), GenreTarget::Carousel ) );
-
-        if ( !tempStation.radioText().isEmpty() ) {
-            mRadiotextLabel->setText( tempStation.radioText() );
-        } else if ( !tempStation.dynamicPsText().isEmpty() ) {
-            mRadiotextLabel->setText( tempStation.dynamicPsText() );
-        } else {
-            mRadiotextLabel->setText( "" );
-        }
-
-        mUrlLabel->setText( tempStation.url() );
-
-        mFrequency = tempStation.frequency();
-
-        updateFavoriteIcon( tempStation.isFavorite() );
-    }
-}
-
-/*!
- *
- */
-void RadioStationItem::setFrequency( uint frequency )
-{
-    LOG_FORMAT( "RadioStationItem::setFrequency: %d", frequency );
-
-    mNameLabel->setTextWithoutFading( parseFrequency( frequency ) );
-    mGenreLabel->setTextWithoutFading( "" );
-    mRadiotextLabel->setTextWithoutFading( "" );
-    mUrlLabel->setTextWithoutFading( "" );
-    mFrequency = frequency;
-    updateFavoriteIcon( false );
-}
-
-/*!
- *
- */
-void RadioStationItem::cleanRdsData()
-{
-    mNameLabel->setTextWithoutFading( "" );
-    mGenreLabel->setTextWithoutFading( "" );
-    mRadiotextLabel->setTextWithoutFading( "" );
-    mUrlLabel->setTextWithoutFading( "" );
-}
-
-/*!
- *
- */
-void RadioStationItem::handleLongPress( const QPointF& /*coords*/ )
-{
-    QString text = QString( "Selected frequency: %1" ).arg( mFrequency );
-//    HbMessageBox::information( text );
-}
-
-/*!
- *
- */
-void RadioStationItem::updateFavoriteIcon( bool isFavorite )
-{
-    if ( !mCarousel.isInScanningMode() ) {
-        if ( isFavorite ) {
-            mIconButton->setIcon( mCarousel.favoriteIcon() );
-        } else {
-            mIconButton->setIcon( mCarousel.nonFavoriteIcon() );
-        }
-    } else {
-        mIconButton->setIcon( HbIcon( "" ) );
-    }
-}
-
-/*!
- *
- */
-RadioStationCarousel* RadioStationItem::carousel()
-{
-    return static_cast<RadioStationCarousel*>( itemView() );
-}
-
-/*!
- *
- */
-QString RadioStationItem::parseFrequency( const uint frequency )
-{
-    //TODO: Frequency localization temporarily disabled
-    QString loc = "%L1 Mhz";// "txt_rad_list_l1_mhz_big" );
-    return loc.arg( RadioStation::parseFrequency( frequency ) );
-}
-
-/*!
- *
- */
-QString RadioStationItem::nameOrFrequency( const RadioStation& station, uint frequency )
-{
-    if ( frequency == 0 ) {
-        frequency = station.frequency();
-    }
-
-    QString text = "";
-    if ( station.isValid() && !station.name().isEmpty() ) {
-        text = station.name();
-    } else {
-        text = parseFrequency( frequency );
-    }
-
-    return text;
-}