diff -r 63aabac4416d -r f54ebcfc1b80 radioapp/radiowidgets/inc/radiostationcarousel.h --- a/radioapp/radiowidgets/inc/radiostationcarousel.h Fri Apr 16 14:58:55 2010 +0300 +++ b/radioapp/radiowidgets/inc/radiostationcarousel.h Mon May 03 12:31:41 2010 +0300 @@ -24,28 +24,59 @@ #include #include +// User includes +#include "radiowidgetsexport.h" + // Forward declarations class RadioUiEngine; class RadioStation; class RadioStationItem; class RadioStationCarousel; -class RadioStationFilterModel; +class RadioStationModel; class RadioFadingLabel; +class QTimeLine; // Class declaration -class RadioStationCarousel : public HbGridView +class ScanningHelper : public QObject { Q_OBJECT - Q_PROPERTY(HbIcon background READ background WRITE setBackground) - Q_PROPERTY(HbIcon favoriteIcon READ favoriteIcon WRITE setFavoriteIcon) - Q_PROPERTY(HbIcon nonFavoriteIcon READ nonFavoriteIcon WRITE setNonFavoriteIcon) + +public: + + ScanningHelper( RadioStationCarousel& carousel ); + + void start(); + +private slots: + + void startSlide(); + void startNumberScroll(); + void numberScrollUpdate( int value ); public: - RadioStationCarousel( RadioUiEngine& uiEngine, QGraphicsItem* parent = 0 ); + RadioStationCarousel& mCarousel; + uint mCurrentFrequency; + uint mPreviousFrequency; + RadioStationItem* mStationItem; + QTimeLine* mNumberScrollingTimeLine; + QModelIndex mModelIndex; + +}; - void setBackground( const HbIcon& background ); - HbIcon background() const; +// Class declaration +class WIDGETS_DLL_EXPORT RadioStationCarousel : public HbGridView +{ + Q_OBJECT + Q_PROPERTY(HbIcon favoriteIcon READ favoriteIcon WRITE setFavoriteIcon) + Q_PROPERTY(HbIcon nonFavoriteIcon READ nonFavoriteIcon WRITE setNonFavoriteIcon) + Q_PROPERTY( int autoScrollTime READ autoScrollTime WRITE setAutoScrollTime ) + + friend class ScanningHelper; + +public: + + RadioStationCarousel( RadioUiEngine* uiEngine = 0 ); void setFavoriteIcon( const HbIcon& favoriteIcon ); HbIcon favoriteIcon() const; @@ -53,19 +84,33 @@ void setNonFavoriteIcon( const HbIcon& nonFavoriteIcon ); HbIcon nonFavoriteIcon() const; - RadioUiEngine& uiEngine(); + void setAutoScrollTime( const int time ); + int autoScrollTime() const; + + void init( RadioUiEngine* uiEngine ); + + void setStationModel( RadioStationModel* stationModel ); + + RadioUiEngine* uiEngine(); bool isAntennaAttached() const; + void setScanningMode( bool scanning ); + bool isInScanningMode() const; + + void cleanRdsData(); + void animateNewStation( const RadioStation& station ); + void setItemVisibility( bool visible ); + signals: void frequencyChanged( uint frequency, int commandSender ); + void scanAnimationFinished(); public slots: void setFrequency( uint frequency ); - void setSeekingText(); - void updateHeadsetStatus( bool connected ); + void updateAntennaStatus( bool connected ); private slots: @@ -78,6 +123,7 @@ void updateFrequencies(); void updateLoopedPos(); void radioTextPlusCheckEnded(); + void delayedScroll(); #ifdef USE_DEBUGGING_CONTROLS void setRdsAvailable( bool available ); @@ -87,21 +133,19 @@ // from base class QGraphicsItem - void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ); - void mouseMoveEvent( QGraphicsSceneMouseEvent* event ); void mouseReleaseEvent( QGraphicsSceneMouseEvent* event ); void resizeEvent( QGraphicsSceneResizeEvent* event ); RadioStationItem* currentStationItem(); - RadioStationFilterModel* filterModel() const; + RadioStationModel* stationModel() const; void scrollToIndex( const QModelIndex& index, int time ); private: // data - RadioUiEngine& mUiEngine; + RadioUiEngine* mUiEngine; bool mAntennaAttached; @@ -115,13 +159,16 @@ QMap mModelIndexes; - HbIcon mBackground; HbIcon mFavoriteIcon; HbIcon mNonFavoriteIcon; QTimer* mRadioTextTimer; QString mRadioTextHolder; + + int mScrollPos; + + ScanningHelper* mScanningHelper; #ifdef USE_DEBUGGING_CONTROLS RadioFadingLabel* mRdsLabel;