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