]> git.sur5r.net Git - minitube/blob - src/channelsview.h
Upload 3.9.3-2 to unstable
[minitube] / src / channelsview.h
1 #ifndef CHANNELSVIEW_H
2 #define CHANNELSVIEW_H
3
4 #include <QtGui>
5 #include "view.h"
6
7 class VideoSource;
8 class ChannelsModel;
9
10 class ChannelsView : public QListView, public View {
11
12     Q_OBJECT
13
14 public:
15     ChannelsView(QWidget *parent = 0);
16     
17 signals:
18     void activated(VideoSource *videoSource);
19
20 public slots:
21     void appear();
22     void disappear();
23
24 protected:
25     void mouseMoveEvent(QMouseEvent *event);
26     void leaveEvent(QEvent *event);
27     void paintEvent(QPaintEvent *event);
28
29 private:
30     enum SortBy {
31         SortByName = 0,
32         SortByAdded,
33         SortByUpdated,
34         SortByLastWatched,
35         SortByMostWatched
36     };
37
38 private slots:
39     void itemEntered(const QModelIndex &index);
40     void itemActivated(const QModelIndex &index);
41     void toggleShowUpdated(bool enable);
42     void setSortBy(SortBy sortBy);
43     void setSortByName() { setSortBy(SortByName); }
44     void setSortByUpdated() { setSortBy(SortByUpdated); }
45     void setSortByAdded() { setSortBy(SortByAdded); }
46     void setSortByLastWatched() { setSortBy(SortByLastWatched); }
47     void setSortByMostWatched() { setSortBy(SortByMostWatched); }
48     void markAllAsWatched();
49     void unwatchedCountChanged(int count);
50
51 private:
52     void updateQuery(bool transition = false);
53     void setupActions();
54
55     ChannelsModel *channelsModel;
56     QList<QAction*> statusActions;
57     bool showUpdated;
58     SortBy sortBy;
59     QString errorMessage;
60     QAction *markAsWatchedAction;
61
62 };
63
64 #endif // CHANNELSVIEW_H