009b69297135175daff45a16456e4663db18e6d0
[someplayer] / src / libraryform.h
1 #ifndef LIBRARYFORM_H
2 #define LIBRARYFORM_H
3
4 #include <QWidget>
5 #include "someplayer.h"
6
7 #include <QStandardItemModel>
8 #include <QStandardItem>
9 #include <QModelIndex>
10
11 namespace Ui {
12     class LibraryForm;
13 }
14
15 using SomePlayer::DataObjects::Library;
16 using SomePlayer::DataObjects::Track;
17
18 enum LibraryFormListState {STATE_NONE, STATE_ARTIST, STATE_ALBUM, STATE_TRACK, STATE_PLAYLIST, STATE_PLAYLIST_TRACK};
19
20 class LibraryForm : public QWidget
21 {
22     Q_OBJECT
23
24 public:
25         explicit LibraryForm(Library *lib, QWidget *parent = 0);
26     ~LibraryForm();
27 signals:
28         void player();
29 private slots:
30         void _player();
31         void _view_button();
32         void _dynamic_button();
33         void _playlists_button();
34         void _add_button();
35         void _back_button();
36         void _process_list_click(QModelIndex);
37
38 private:
39     Ui::LibraryForm *ui;
40         Library *_lib;
41         QStandardItemModel *_model;
42         LibraryFormListState _state;
43         QString _current_artist;
44         QString _current_album;
45         QList<Track> _current_tracks;
46
47         void _add_artist(QString artist);
48         void _add_album(QString artist, QString album);
49         void _add_track(Track track);
50         void _add_playlist(QString name);
51 };
52
53 #endif // LIBRARYFORM_H