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