]> git.sur5r.net Git - minitube/blob - src/MediaView.h
Initial import
[minitube] / src / MediaView.h
1 #ifndef __MEDIAVIEW_H__
2 #define __MEDIAVIEW_H__
3
4 #include <QtGui>
5 #include <QtNetwork>
6 #include <phonon>
7 #include "View.h"
8 #include "ListModel.h"
9 #include "thaction.h"
10 #include "thblackbar.h"
11 #include "searchparams.h"
12 #include "playlistwidget.h"
13
14 class MediaView : public QWidget, public View {
15     Q_OBJECT
16
17 public:
18     MediaView(QWidget *parent);
19     ~MediaView();
20     void initialize();
21
22     // View
23     void appear() {}
24     void disappear();
25     QMap<QString, QVariant> metadata() {
26         QMap<QString, QVariant> metadata;
27         if (searchParams) {
28             metadata.insert("title", searchParams->keywords());
29             metadata.insert("description", tr("You're watching \"%1\"").arg(searchParams->keywords()));
30         }
31         return metadata;
32     }
33
34     void setMediaObject(Phonon::MediaObject *mediaObject);
35
36 public slots:
37     void search(SearchParams *searchParams);
38     void pause();
39     void stop();
40     void skip();
41     void fullscreen();
42     void exitFullscreen();
43     void openWebPage();
44     void removeSelected();
45     void moveUpSelected();
46     void moveDownSelected();
47
48 private slots:
49     // list/model
50     void itemActivated(const QModelIndex &index);
51     void selectionChanged (const QItemSelection & selected, const QItemSelection & deselected);
52     void activeRowChanged(int);
53     void selectVideos(QList<Video*> videos);
54     // phonon
55     void stateChanged(Phonon::State newState, Phonon::State oldState);
56     void aboutToFinish();
57     void currentSourceChanged(const Phonon::MediaSource source);
58     void showVideoContextMenu(QPoint point);
59     // bar
60     void searchMostRelevant();
61     void searchMostRecent();
62     void searchMostViewed();
63
64 private:
65
66     SearchParams *searchParams;
67
68     QSplitter *splitter;
69     QByteArray splitterState;
70
71     PlaylistWidget *playlistWidget;
72     QListView *listView;
73     ListModel *listModel;
74
75     // sortBar
76     THBlackBar *sortBar;
77     THAction *mostRelevantAction;
78     THAction *mostRecentAction;
79     THAction *mostViewedAction;
80
81     // phonon
82     Phonon::MediaObject *mediaObject;
83     Phonon::VideoWidget *videoWidget;
84
85     QNetworkReply *networkReply;
86
87 };
88
89 #endif // __MEDIAVIEW_H__