radioapp/radiowidgets/inc/radiostationcarousel.h
changeset 16 f54ebcfc1b80
parent 14 63aabac4416d
child 19 afea38384506
--- 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 <QAbstractItemModel>
 #include <HbIcon>
 
+// 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<uint,QModelIndex>  mModelIndexes;
 
-    HbIcon                  mBackground;
     HbIcon                  mFavoriteIcon;
     HbIcon                  mNonFavoriteIcon;
 
     QTimer*                 mRadioTextTimer;
 
     QString                 mRadioTextHolder;
+    
+    int                     mScrollPos;
+
+    ScanningHelper*         mScanningHelper;
 	
 #ifdef USE_DEBUGGING_CONTROLS
     RadioFadingLabel*       mRdsLabel;