Big commit:
[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 #include "playlist.h"
11
12 namespace Ui {
13     class LibraryForm;
14 }
15
16 using SomePlayer::DataObjects::Library;
17 using SomePlayer::DataObjects::Track;
18 using SomePlayer::DataObjects::Playlist;
19
20 enum LibraryFormListState {STATE_NONE, STATE_ARTIST, STATE_ALBUM, STATE_TRACK, STATE_PLAYLIST, STATE_PLAYLIST_TRACK, STATE_DYNAMIC};
21
22 class LibraryForm : public QWidget
23 {
24     Q_OBJECT
25
26 public:
27         explicit LibraryForm(Library *lib, QWidget *parent = 0);
28     ~LibraryForm();
29 signals:
30         void player();
31         void busy(QString);
32         void done();
33 private slots:
34         void _player();
35         void _view_button();
36         void _dynamic_button();
37         void _playlists_button();
38         void _add_button();
39         void _delete_button();
40         void _back_button();
41         void _use_button();
42         void _process_list_click(QModelIndex);
43
44 private:
45     Ui::LibraryForm *ui;
46         Library *_lib;
47         QStandardItemModel *_model;
48         LibraryFormListState _state;
49         QString _current_artist;
50         QString _current_album;
51         Playlist _current_playlist;
52         QList<Track> _current_tracks;
53
54         void _add_artist(QString artist);
55         void _add_album(QString artist, QString album);
56         void _add_track(Track track);
57         void _add_playlist(QString name);
58         void _delete_track(Track track);
59 };
60
61 #endif // LIBRARYFORM_H