]> git.sur5r.net Git - minitube/blob - src/MainWindow.h
1eb025102b174e359ce5c560b1a3c50b5e2a1f21
[minitube] / src / MainWindow.h
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QtGui>
5 #include "faderwidget/FaderWidget.h"
6 #include "searchlineedit.h"
7 #include <phonon/audiooutput.h>
8 #include <phonon/volumeslider.h>
9 #include <phonon/mediaobject.h>
10 #include <phonon/seekslider.h>
11 #include "View.h"
12 #include "SearchView.h"
13 #include "MediaView.h"
14 #include "AboutView.h"
15
16 class MainWindow : public QMainWindow {
17
18     Q_OBJECT
19
20 public:
21     MainWindow();
22     ~MainWindow();
23
24 protected:
25     void closeEvent(QCloseEvent *);
26     bool eventFilter(QObject *obj, QEvent *event);
27
28 private slots:
29     void fadeInWidget(QWidget *oldWidget, QWidget *newWidget);
30     void goBack();
31     void showSearch();
32     void showMedia(QString query);
33     void visitSite();
34     void donate();
35     void about();
36     void quit();
37     void fullscreen();
38     void compactView(bool enable);
39     void stop();
40     void stateChanged(Phonon::State newState, Phonon::State oldState);
41     void searchFocus();
42     void tick(qint64 time);
43     void totalTimeChanged(qint64 time);
44     void setDefinitionMode(QString definitionName);
45     void toggleDefinitionMode();
46     void clearRecentKeywords();
47
48     // volume shortcuts
49     void volumeUp();
50     void volumeDown();
51     void volumeMute();
52     void volumeChanged(qreal newVolume);
53     void volumeMutedChanged(bool muted);
54
55     // fullscreen toolbar
56     void showFullscreenToolbar(bool show);
57     void showFullscreenPlaylist(bool show);
58
59 private:
60     void initPhonon();
61     void createActions();
62     void createMenus();
63     void createToolBars();
64     void createStatusBar();
65     void readSettings();
66     void writeSettings();
67     void showWidget(QWidget*);
68     static QString formatTime(qint64 time);
69
70     // view mechanism
71     QPointer<FaderWidget> faderWidget;
72     QStackedWidget *views;
73     QStack<QWidget*> *history;
74
75     // view widgets
76     SearchView *searchView;
77     MediaView *mediaView;
78     QWidget *aboutView;
79
80     // actions
81     QAction *addGadgetAct;
82     QAction *backAct;
83     QAction *quitAct;
84     QAction *siteAct;
85     QAction *donateAct;
86     QAction *aboutAct;
87     QAction *searchFocusAct;
88
89     // media actions
90     QAction *skipAct;
91     QAction *pauseAct;
92     QAction *stopAct;
93     QAction *fullscreenAct;
94     QAction *compactViewAct;
95     QAction *webPageAct;
96     QAction *copyPageAct;
97     QAction *copyLinkAct;
98     QAction *downloadAct;
99     QAction *volumeUpAct;
100     QAction *volumeDownAct;
101     QAction *volumeMuteAct;
102
103     // playlist actions
104     QAction *removeAct;
105     QAction *moveDownAct;
106     QAction *moveUpAct;
107     QAction *fetchMoreAct;
108     QAction *clearAct;
109
110     // menus
111     QMenu *fileMenu;
112     QMenu *viewMenu;
113     QMenu *playlistMenu;
114     QMenu *helpMenu;
115
116     // toolbar
117     QToolBar *mainToolBar;
118     SearchLineEdit *toolbarSearch;
119
120     // phonon
121     Phonon::SeekSlider *seekSlider;
122     Phonon::VolumeSlider *volumeSlider;
123     Phonon::MediaObject *mediaObject;
124     Phonon::AudioOutput *audioOutput;
125     QLabel *currentTime;
126     QLabel *totalTime;
127
128     bool m_fullscreen;
129     bool m_maximized;
130
131 };
132
133 #endif