--- 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;