]> git.sur5r.net Git - minitube/blob - src/MediaView.h
Fixed pause action status tip
[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 "thblackbar.h"
11 #include "searchparams.h"
12 #include "playlistwidget.h"
13 #include "loadingwidget.h"
14 #include "videoareawidget.h"
15
16 class MediaView : public QWidget, public View {
17     Q_OBJECT
18
19 public:
20     MediaView(QWidget *parent);
21     ~MediaView();
22     void initialize();
23
24     // View
25     void appear() {}
26     void disappear();
27     QMap<QString, QVariant> metadata() {
28         QMap<QString, QVariant> metadata;
29         if (searchParams) {
30             metadata.insert("title", searchParams->keywords());
31             metadata.insert("description", tr("You're watching \"%1\"").arg(searchParams->keywords()));
32         }
33         return metadata;
34     }
35
36     void setMediaObject(Phonon::MediaObject *mediaObject);
37
38 public slots:
39     void search(SearchParams *searchParams);
40     void pause();
41     void stop();
42     void skip();
43     void skipVideo();
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     void handleError(QString message);
58     // phonon
59     void stateChanged(Phonon::State newState, Phonon::State oldState);
60     void aboutToFinish();
61     void currentSourceChanged(const Phonon::MediaSource source);
62     void showVideoContextMenu(QPoint point);
63     // bar
64     void searchMostRelevant();
65     void searchMostRecent();
66     void searchMostViewed();
67     // timer
68     void timerPlay();
69
70 private:
71
72     SearchParams *searchParams;
73
74     QSplitter *splitter;
75
76     PlaylistWidget *playlistWidget;
77     QListView *listView;
78     ListModel *listModel;
79
80     // sortBar
81     THBlackBar *sortBar;
82     QAction *mostRelevantAction;
83     QAction *mostRecentAction;
84     QAction *mostViewedAction;
85
86     // phonon
87     Phonon::MediaObject *mediaObject;
88     Phonon::VideoWidget *videoWidget;
89
90     // loadingWidget
91     VideoAreaWidget *videoAreaWidget;
92     LoadingWidget *loadingWidget;
93
94     bool timerPlayFlag;
95
96     QTimer *errorTimer;
97     Video *skippedVideo;
98 };
99
100 #endif // __MEDIAVIEW_H__