#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include "ui_mainwindow.h" class Playlist; class Player; class Library; class LibraryConfig; class RadioModel; class QSortFilterProxyModel; class SystemTrayIcon; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); void SetHiddenInTray(bool hidden); protected: void resizeEvent(QResizeEvent* event); void closeEvent(QCloseEvent* event); private slots: void QueueFiles(const QList& urls); void FilePathChanged(const QString& path); void ReportError(const QString& message); void MediaStopped(); void MediaPaused(); void MediaPlaying(); void PlayIndex(const QModelIndex& index); void StopAfterCurrent(); void LibraryDoubleClick(const QModelIndex& index); void ClearLibraryFilter(); void VolumeWheelEvent(int delta); void TrayClicked(QSystemTrayIcon::ActivationReason reason); private: void SaveGeometry(); private: static const int kStateVersion; static const char* kSettingsGroup; Ui::MainWindow ui_; Playlist* playlist_; Player* player_; Library* library_; RadioModel* radio_model_; QSortFilterProxyModel* library_sort_model_; SystemTrayIcon* tray_icon_; }; #endif // MAINWINDOW_H