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