/* * Copyright 2008 Jason A. Donenfeld */ #ifndef PLAYERWINDOW_H #define PLAYERWINDOW_H #include #include #include #include #include #include #include class Song; class QBuffer; class QProgressBar; class AutoSizingList; class QAction; class SearchLineEdit; class Credentials; class CollectionFilter; class CollectionModel; class QPushButton; class PlayerWindow : public QMainWindow { Q_OBJECT public: PlayerWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0); private slots: void songDoubleClicked(const QModelIndex &index); void playIndex(const QModelIndex &index); void nextTriggered(); void previousTriggered(); void pauseTriggered(); void playTriggered(); void stopTriggered(); void aboutToFinish(qint32 msecToEnd); void playerStateChanged(Phonon::State /*newState*/, Phonon::State /*oldState*/); void searchChanged(const QString&); void updateSearch(); void songFinished(); void setupTable(const QList); void moveToCurrent(); private: QProgressBar *m_downloadProgress; CollectionModel *m_model; CollectionFilter *m_filter; AutoSizingList *m_treeView; QAction *m_playAction; QAction *m_pauseAction; QAction *m_stopAction; QAction *m_nextAction; QAction *m_previousAction; Phonon::VolumeSlider *m_volumeSlider; Phonon::SeekSlider *m_seekSlider; Phonon::MediaObject *m_mediaObject; SearchLineEdit *m_searchEdit; QTimer m_searchTimer; QTimer m_aboutToFinishTimer; double m_suggestedRatio1; double m_suggestedRatio2; double m_suggestedRatio3; int m_suggestedWidthTotal; Credentials *m_credentials; QPushButton *m_moveToCurrent; void setupUi(); void setupPhonon(); void updateControls(); void playCurrentTrack(); }; #endif //PLAYERWINDOW_H